IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Instruction php "si requete reussi" ?


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Points : 32
    Points
    32
    Par défaut Instruction php "si requete reussi" ?
    Bonjour,

    D'abord désole pour mes question de noob

    Faut croire que j'en suis un

    Je voudrais qu'on m'aide car je ne sais pas comment dire en instruction php

    " si la requete est reussi "
    if ( ! $resultat == ""?OK?"")
    Car j'en n'est bessoin pour verifier si une personne est bien loggué sur un site !

    Donc j'execute la requete

    $requete= ("SELECT * FROM inscription WHERE login = '".$_POST["login"]."' AND motdepass = '".$_POST["motdepass"]."'");
    Mais aprés je doit faire 'IF la requete est reussi, THEN continuer ,ELSE on renvoi une page d'erreur.

    Merci a ceux qui prenne le temp de lire et d'aider.

  2. #2
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Points : 2 273
    Points
    2 273
    Par défaut
    Tu peux tester le nombre de lignes obtenues avec mysql_num_rows();
    ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if(mysql_num_rows($requete) > 0) {
    echo 'des résultats';
    }
    else {
    echo 'pas de résultats';
    }
    D'autre part il faut que tu protèges les valeurs passées en post sinon il y a un risque d'injection de code sql dans ta requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete= ("SELECT * FROM inscription WHERE login = '".mysql_real_escape_string($_POST["login"])."' AND motdepass = '".mysql_real_escape_string($_POST["motdepass"])."'");
    Bye

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Points : 32
    Points
    32
    Par défaut
    Merci de l'aide !

    Maintenant j'ai plus qu'a savoir comment verifier si l'utilisateur est bien loggué

    J'ai fait un :

    session_start();
    Mais sur les autres page, comment je fait pour verifier si une session a bien etait ouverte pour l'user.

    Ya pas un genre de

    session_IsOK

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 27
    Points : 32
    Points
    32
    Par défaut
    Bonsoir
    Tu peu utiliser $_SESSION['nomSession']

    par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if ( empty($_SESSION['user'])) { // erreur }
    else { // le traitement }

  5. #5
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Points : 2 273
    Points
    2 273
    Par défaut
    Si ta requête a marché tu peux par exemple copier le login en session.
    Ensuite tu peux tester si la variable $_SESSION['login'] existe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(!isset($_SESSION['login'])) {
    die('Vous devez être loggué');
    }

  6. #6
    Membre expérimenté
    Avatar de muad'dib
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 013
    Points : 1 381
    Points
    1 381
    Par défaut
    Tu peux aussi utiliser un cookie.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Points : 32
    Points
    32
    Par défaut
    Bon apparement j'ai foiré mon code lol

    J'en parle avec un pote qui s'y conait plutot bien !

    M'enfin la rien que un start session sa plante

    Warning: session_start() [function.session-start]: open(/mnt/104/sdb/a/c/futsal95600/sessions/sess_ea3a53b4420ae5124010bb06f77cfbd6, O_RDWR) failed: No such file or directory (2) in /mnt/104/sdb/a/c/futsal95600/V2/Site/VerificationLogin.php on line 8

    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/104/sdb/a/c/futsal95600/V2/Site/VerificationLogin.php:7) in /mnt/104/sdb/a/c/futsal95600/V2/Site/VerificationLogin.php on line 8

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/104/sdb/a/c/futsal95600/V2/Site/VerificationLogin.php:7) in /mnt/104/sdb/a/c/futsal95600/V2/Site/VerificationLogin.php on line 8
    voici la requête sql qui va être exécutée :
    SELECT * FROM inscription WHERE login = 'lusos' AND motdepass = 'lusos'

  8. #8
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Points : 2 273
    Points
    2 273
    Par défaut
    Apparemment t'es chez Free. Faut créer un dossier 'sessions' à la racine je crois.

  9. #9
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Points : 32
    Points
    32
    Par défaut
    Une fois creer, faut attendre pour que sa marche ?

  10. #10
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Points : 2 273
    Points
    2 273
    Par défaut
    Nan je crois pas.

  11. #11
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Points : 32
    Points
    32
    Par défaut
    Bon alors, apparemment

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    		<?php include('connexion.php'); // appel du script de connexion
     
    			$requete= ("SELECT * FROM inscription WHERE login = '".$_POST["login"]."' AND motdepass = '".$_POST["motdepass"]."'");
    			$resultat=mysql_query($requete);
     
    			echo "voici la requête sql qui va être exécutée : <br />".$requete;
     
    			if ( ! $resultat)//si $resultat contient des valeurs alors je fais le reste
    			{      echo "<h1>echec de la requête</h1>";
    			echo  mysql_error($connexion);//mysql_error(  ) retourne l'erreur qu'a trouvé MySQL
    			}
    			else
    			if ( mysql_affected_rows ( ) ) {//renvoie le nombre de lignes affectées par la dernière requête SQL . On vérifie ici que la 			requête à été exécutée
                echo "<h1>Connexion reussie !</h1>";
    			$_SESSION['login'] = $_POST["login"];
    			}
    			else{
    			echo "<h1>Login / Password mauvais veuillez recommencer.</h1>";
    			}
    			echo '<h3><a href="Accueil.html">Retour a l accueil</a></h3>';
     
    			mysql_close($connexion);
    		?>
    Semble marcher, mais dans une autre page, je met une iframe qui contient sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    if ( empty($_SESSION['login'])) {
    header("Location: http://futsal95600.free.fr/"); }
    else { echo "Login OK" }
    ?>
    Pourtant après un destroy session l'iframe ne me redirige pas !

  12. #12
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 45
    Points : 54
    Points
    54
    Par défaut
    Petite précision quant au mysql_num_rows. Celui-ci ne fonctionne que dans le cas d'un SELECT. Pour les autres ordres il suffit d'utiliser "mysql_affected_rows"

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 27
    Points : 32
    Points
    32
    Par défaut
    Le probleme au niveau de ta iframe est que les entêtes on déjà étées envoyées
    headers_sent() pour être sur.

    Par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (!headers_sent()) {
       header ('Location: http://www.example.com/');
       exit;
    }
    regarde du coté de ob_start() et ob_end_flush() pour régler le problème

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP-JS] Problème de double quote
    Par SONY30 dans le forum Langage
    Réponses: 10
    Dernier message: 01/07/2008, 10h31
  2. Requete avec quote et double quote
    Par swissmade dans le forum VBA Access
    Réponses: 2
    Dernier message: 20/08/2007, 15h01
  3. [Tableaux] quotes dans requete sql
    Par taki_38 dans le forum Langage
    Réponses: 5
    Dernier message: 11/07/2006, 15h09
  4. requete et quote
    Par deubal dans le forum Bases de données
    Réponses: 4
    Dernier message: 18/10/2005, 11h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo