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

PHP & Base de données Discussion :

unknown column in 'where clause' [MySQL]


Sujet :

PHP & Base de données

Vue hybride

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

    Informations forums :
    Inscription : Novembre 2009
    Messages : 123
    Par défaut unknown column in 'where clause'
    Bonjour,

    je viens faire appel à vous car j'ai un soucis ac mon formulaire de connection, en effet lorsque j'entre mes identifiants, il est censer me rediriger mais il me dit :" unknown column 'Benjamin' in 'where clause' " Benjamin représentant le nom d'utilisateur.
    Je vous laisse mon code ci-dessous

    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
    24
    25
    26
    27
    28
    29
    30
    31
    <?php	
    	if (isset($_POST['logger'])){
    		$login = ($_POST['logger']);
    	}else{
    		echo("Veuillez entrer votre login");
    	}
    	if (isset($_POST['pass'])){
    		$pass = md5($_POST['pass']);
    	}else{
    		echo("Veuillez entrer votre mot de passe");
    	}
    		if($login && $pass){
    			include('connexion.php');
     
    			$query = "SELECT login FROM logins WHERE login=".$_POST['logger']."";
    			$result = mysql_query($query) or die ('Erreur : Impossible de se connecter '.mysql_error());
    			if(mysql_num_rows($result) == 0){
    				echo("le nom d'utilisateur '$login' n'existe pas");
    			}else{
    				$row = mysql_fetch_array($result);
    				if($_POST['pass'] != $row['pass']){
    					echo("Votre mot de passe est incorrect");
    				}else{
    					header('Location: Accueil.php');
    					mysql_close();
    				}
    			}
    		}else{
    			echo ("Veuillez entré un nom d'utilisateur et/ou un mot de passe");
    		}
    ?>
    J'ai tester avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '".$_POST['logger']."'";  ".$login."";
    et d'autres mais cela ne fonctionne pas.

    est ce que quelqu'un connait ce problème?

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    comme ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query = "SELECT login FROM logins WHERE login='".$_POST['logger']."'";

    de tout facon c'est simple avant de faire ta requête, fait un echo de $query tu vois bien ce que va rendre le SQL, et protège tes valeurs t'es soumis aux injections la

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 123
    Par défaut
    petite rectification que je n'ai pas faite lorsque je faisais des test:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query = "SELECT * FROM logins WHERE login = ".$_POST['logger']."";

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 123
    Par défaut
    Bonjour stealth35 ,

    merci pour ta réponse, cependant j'avais déjà testé en ajoutant des côtes et dès lors lorsque je clique pour me connecté, il veut que je fasse un débogage.. est-ce commun? (je fais mes test sous firefox)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 123
    Par défaut
    Bonjour stealth35 ,

    merci pour ta réponse, cependant j'avais déjà testé en ajoutant des côtes et dès lors lorsque je clique pour me connecté, il veut que je fasse un débogage.. est-ce commun? (je fais mes test sous firefox)

    de plus comment se proteger des injections?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 123
    Par défaut
    j'ai tenté de faire un echo de $query comme tu me l'as conseillé mais il m'affiche un "Parse error [...] on line 18" c'est à dire la ligne de fermeture "?>"
    Je t'avoue que je ne comprend pas bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    [...]
    $query = "SELECT * FROM logins WHERE login='".$_POST['logger']"'";
    $result = mysql_query($query) or die...
    echo ('".$result."');
    ?>
    je suis désolé je suis un peu novice en la matière, pourriez vous m'aider à comprendre?

  7. #7
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Tu semble avoir quelques problème avec la concaténation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $logger = $_POST['logger'];
    $query = 'SELECT * FROM logins WHERE login='.$logger;
    //Ou si logger est une chaine
    $query =  'SELECT * FROM logins WHERE login=\''.$logger.'\';
    $result = mysql_query($query);
    echo $query;
    note : Insérer un paramètre post sans aucune vérification préalable est fortement déconseillé
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par benjamin002 Voir le message
    j'ai tenté de faire un echo de $query comme tu me l'as conseillé mais il m'affiche un "Parse error [...] on line 18" c'est à dire la ligne de fermeture "?>"
    Je t'avoue que je ne comprend pas bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    [...]
    $query = "SELECT * FROM logins WHERE login='".$_POST['logger']"'";
    $result = mysql_query($query) or die...
    echo ('".$result."');
    ?>
    je suis désolé je suis un peu novice en la matière, pourriez vous m'aider à comprendre?
    normale t'as oublié le .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    [...]
    $query = "SELECT * FROM logins WHERE login='".$_POST['logger']."'";
    $result = mysql_query($query) or die...
    echo ('".$result."');
    ?>
    utilise sprintf si t'es pas a l'aise avec ca


    Citation Envoyé par grunk Voir le message
    Tu semble avoir quelques problème avec la concaténation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $query = 'SELECT * FROM logins WHERE login='.$_POST['logger'];
    //Ou
    $query =  'SELECT * FROM logins WHERE login=\'.$_POST['logger'].'\';
    $result = mysql_query($query);
    echo $query;
    note : Insérer un paramètre post sans aucune vérification préalable est fortement déconseillé
    c'est encore pire comme ca...

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 123
    Par défaut
    désolé ce n'était qu'une simple erreur de réecriture je travaille sur 2 pc, je recopie donc d'un pc à l'autre manuellement, d'ou l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $query = "SELECT * FROM logins WHERE login='".$_POST['logger']."'";
    $result = mysql_query($query) or die...
    echo ('".$result."');
    ?>
    qui n'est pas présente sur mon code.

    il me donne toujours le message suivant:

    Parse error: par error in ... on line 18
    qui représente toujours ma ligne de fermeture du code php: ?>

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

Discussions similaires

  1. Unknown column [] in where clause
    Par charlie404 dans le forum Requêtes
    Réponses: 2
    Dernier message: 10/04/2014, 08h28
  2. [MySQL] Unknown column '...' in 'where clause'
    Par kopax dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 01/04/2010, 17h46
  3. [MySQL] Unknown column .. in 'where clause'
    Par lpldtrllt dans le forum PHP & Base de données
    Réponses: 20
    Dernier message: 27/05/2009, 11h20
  4. [MySQL] Unknown column '' in 'where clause'
    Par Creanet dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 15/04/2009, 10h52
  5. Réponses: 2
    Dernier message: 01/01/2009, 20h52

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