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 :

Syntaxe sur cde SELECT [PHP 5.3]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 58
    Par défaut Syntaxe sur cde SELECT
    Bonjour à tous,

    J'ai une page menu.php, dans laquelle un visiteur d'identifie avec Email et Mdp.
    Voici le script de cette page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    // je mémorise mes variables
    if (isset ($_POST['valider'])){
    	//je récupère les valeurs saisies dans le form
    	$Login=$_POST['Login'];
    	$MotDePasse=$_POST['MotDePasse'];
    }
    ?>
    <body>
    <body><h1>Identification :</h1>
      <form method="post" action="ficheClient.php">
        Email :        <input type="text"   name="Login">     <br>
        Mot de passe : <input type="text"   name="MotDePasse"><br>
                       <input type="submit" neme="valider" value="OK">
      </form>
    Lorsque mon visiteur clique sur OK, une page FicheClient.php s'ouvre et contrôle que l'Email et le Mdp existe dans la table adherents de ma base
    pour pouvoir afficher les infos de ma page.
    J'ai un problème sur le script de ma commande sql SELECT ( après avoir essayé plusieurs syntaxe... je tourne en rond depuis plusieurs jours)
    voici le script de ma page FicheClient.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //je défini ma cde sql qui controle l'accès à la table
    	$sql='SELECT * FROM adherents WHERE Email='.$Login' AND Pwd='.$MotDePasse'';
        $Resultat=mysql_query($sql);
        if (mysql_numrows($Resultat) ==1)
          {
    Merci pour votre aide.
    Vincent

  2. #2
    Membre très actif
    Avatar de The_Sorrow
    Homme Profil pro
    Informaticien multi-threadé
    Inscrit en
    Juin 2009
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Informaticien multi-threadé
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 119
    Par défaut
    Hello,

    tes champs Email et Pwd sont des chaînes de caractère. Du coup, il faudrait que tu les entoure de quotes.
    D'ailleurs, si tu ajoutes un or die(mysql_error()) à la fin de mysql_query($sql), qu'est-ce qui s'affiche ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 58
    Par défaut
    Merci The Sorrow pour ta réponse rapide.
    C'est sympa.
    J'ai rajouter les quotes comme tu m'as préconisé ainsi que la commande d'erreur sql. Voici le code modifié :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    //je défini ma cde sql qui controle l'accès à la table
    	$sql='SELECT * FROM adherents WHERE `Email`='.$Login' AND `Pwd`='.$MotDePasse'';
        $Resultat=mysql_query($sql)or die ('Erreur SQL!'.$sql.'<br/>'.mysql_error());
        if (mysql_numrows($Resultat) ==1)
          {
    ?>
       <h1 align="center"><font color="#0000FF">Bienvenu dans votre espace privé !</font></h1>
    et voici le message que j'obtient à l'ouverture de ma page FicheClient.php :


    ( ! ) Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\wamp\www\FicheClient.php on line 15
    la ligne 15 correspondant à la ligne $sql='SELECT.....

    Merci

  4. #4
    Membre émérite
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Par défaut
    Citation Envoyé par nolliug Voir le message
    Merci The Sorrow pour ta réponse rapide.
    C'est sympa.
    J'ai rajouter les quotes comme tu m'as préconisé ainsi que la commande d'erreur sql. Voici le code modifié :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    //je défini ma cde sql qui controle l'accès à la table
    	$sql='SELECT * FROM adherents WHERE `Email`='.$Login' AND `Pwd`='.$MotDePasse'';
        $Resultat=mysql_query($sql)or die ('Erreur SQL!'.$sql.'<br/>'.mysql_error());
        if (mysql_numrows($Resultat) ==1)
          {
    ?>
       <h1 align="center"><font color="#0000FF">Bienvenu dans votre espace privé !</font></h1>
    et voici le message que j'obtient à l'ouverture de ma page FicheClient.php :


    ( ! ) Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\wamp\www\FicheClient.php on line 15
    la ligne 15 correspondant à la ligne $sql='SELECT.....

    Merci
    Je pense que ca viens des 2 quotes simples après la variable $MotDePasse sans . pour signifier la concaténation.
    Et tu devrais suivre le conseil de The_Sorrow et entourer tes variables de quotes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql='SELECT * FROM adherents WHERE `Email`="'.$Login'" AND `Pwd`="'.$MotDePasse.'"';

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 646
    Billets dans le blog
    20
    Par défaut
    Tes quotes sont pas au bon endroit
    Quant à celles en fin de ligne, inutile de dire qu'elles n'ont à priori rien à faire là, surtout dans le vide...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql='SELECT * FROM adherents WHERE Email=`'.$Login'` AND Pwd=`'.$MotDePasse.'`';
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Membre très actif
    Avatar de The_Sorrow
    Homme Profil pro
    Informaticien multi-threadé
    Inscrit en
    Juin 2009
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Informaticien multi-threadé
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 119
    Par défaut
    Hum, je voulais dire qu'il fallait entourer les valeurs, pas le nom des champs. Je n'ai pas été assez explicite, désolé.
    Je pense que tu as maintenant tout pour que ton code fonctionne.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 58
    Par défaut
    Merci pour vos réponses nombreuses...

    Voici mes modifs de code suivant vos conseils :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
     // intègre à la page les fonctions 
    include("fonctions.php");
    	//je me connecte à la BDD
    	$base=connectMaBase(); 
    	//je défini ma cde sql qui controle l'accès à la table
    		$sql='SELECT * FROM adherents WHERE Email=`'.$Login.'` AND Pwd=`'.$MotDePasse.'`';
        $Resultat=mysql_query($sql)or die ('Erreur SQL!'.$sql.'<br/>'.mysql_error());
        if (mysql_numrows($Resultat) ==1)
          {
    ?>
    Et voici le message d'erreur obtenu :

    Erreur SQL!SELECT * FROM adherents WHERE Email=`` AND Pwd=``
    Unknown column '' in 'where clause'


    Je pense que ce sont mes variable $Login et $MotDePasse qui posent problème car lorsque je les remplace par des valeurs présentes dans la table celà fonctionne.

    Merci

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

Discussions similaires

  1. Question sur un SELECT...... AS....
    Par geant63 dans le forum Langage SQL
    Réponses: 8
    Dernier message: 15/09/2009, 17h17
  2. [MySQL] Erreur de syntaxe sur ma requête SELECT
    Par vincedjs dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 08/03/2006, 11h50
  3. Erreur ORA-01555 sur un select
    Par LRI dans le forum Oracle
    Réponses: 2
    Dernier message: 13/05/2005, 10h42
  4. Faire apparaître un champ texte en cliquant sur un select
    Par yoyot dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/03/2005, 16h16
  5. ajout de colonnes sur une selection
    Par DaxTaz dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 05/08/2004, 17h44

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