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 :

Erreur formulaire de mot de passe


Sujet :

PHP & Base de données

Vue hybride

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

    Informations forums :
    Inscription : Octobre 2003
    Messages : 546
    Par défaut Erreur formulaire de mot de passe
    Bonjour,
    j'espère que vous allez bien.

    J'ai créé un formulaire qui modifie un mot de passe dans une base, mais il me retourne cette erreur.

    Error:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''e36b5cc8dfbefe0f8aa32c881213e40b' from utilisateurs WHERE nom='Fernandes' AND p' at line 1

    Sauriez-vous pourquoi ??

    Le code de la page de traitement :

    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
    <?php
     
    											//session_start(); // Ici on continue la session
    	require('control-session2.php');
     
     
    				include("inc/connexion_utilisateurs.php");
    				include("inc/fonctions.php");
     
     
    					$nom=$_POST['nom'];
    					$prenom=$_POST['prenom'];
    					$mdp=$_POST['newmdp'];
     
    					$mdpcrypte= md5('$mdp');
     
    					$query="UPDATE passwd='$mdpcrypte' from utilisateurs WHERE nom='$nom' AND prenom='$prenom'";
    					$result=mysql_query($query) or die('Error:'.mysql_error());
     
     
     
    				?>
    Je sais que c'est du MD5, mais ce n'est pas moi qui ait fait la base, et il y a déjà plein de mots de passe chiffrés avec ce dernier.

    Merci beaucoup pour votre aide
    quaresma

  2. #2
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Bonjour

    Ton instruction SQL est incorrecte; voir https://dev.mysql.com/doc/refman/8.0/en/update.html

    UPDATE TableName Set FieldName = Value WHERE ...Note que ton code PHP est non sécurisé (je suppose que tu n'as pas le choix et que tu dois rester en PHP 5).

    Si ton script est accessible publiquement, tu as des risques d'injections SQL. Essaie peut-être au moins de sécuriser tes variables $_POST...

    (si je donne comme prénom Toto' or '1'='1 il y a des chances que je change les mots de passe de l'intégralité de tes utilisateurs; gloups)

  3. #3
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Bonjour,

    La syntaxe d'une requête UPDATE est la suivante :

    Donc dans votre code :
    Code PHP : 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
    //session_start(); // Ici on continue la session
    require('control-session2.php');
     
    include("inc/connexion_utilisateurs.php");
    include("inc/fonctions.php");
     
    $nom = $_POST['nom'];
    $prenom = $_POST['prenom'];
    $mdp = $_POST['newmdp'];
     
    $mdpcrypte = md5('$mdp');
     
    $query = "
    	UPDATE utilisateurs 
    	SET passwd = '$mdpcrypte' 
    	FROM utilisateurs 
    	WHERE nom = '$nom' 
    		AND prenom='$prenom'
    ";
     
    $result = mysql_query($query) or die('Error:'.mysql_error());
    ?>

    Ensuite...
    1) les commandes mysql_ sont obsolètes !
    Passez à PDO !

    2) Aérez votre code comme je l'ai fait ; ça le rendra plus lisible !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    546
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 546
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    1) les commandes mysql_ sont obsolètes !
    Passez à PDO !

    2) Aérez votre code comme je l'ai fait ; ça le rendra plus lisible !
    Bonjour,
    merci pour ta réponse.

    J'ai fait les modifications, mais j'ai toujours une erreur.

    Error:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM utilisateurs WHERE nom = 'Fernandes' AND prenom='Damien'' at line 3

  5. #5
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Citation Envoyé par quaresma Voir le message
    WHERE nom = 'Fernandes' AND prenom='Damien'' at line 3
    Derrière le mot Damien tu as deux apostrophes. Une seule suffit.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    546
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 546
    Par défaut
    Non
    Je ferme juste le ""

    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
    <?php
     
    	require('control-session2.php');
     
     
    				include("inc/connexion_utilisateurs.php");
    				include("inc/fonctions.php");
     
     
    					$nom=$_POST['nom'];
    					$prenom=$_POST['prenom'];
    					$mdp=$_POST['newmdp'];
     
    					$mdpcrypte= md5('$mdp');
     
    					$query="UPDATE utilisateurs 
    	SET passwd = '$mdpcrypte' 
    	FROM utilisateurs 
    	WHERE nom = '$nom' 
    	AND prenom='$prenom'";
     
    					$result=mysql_query($query) or die('Error:'.mysql_error());
     
     
     
    				?>

  7. #7
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Retire le FROM utilisateurs !

    La bonne syntaxe en SQL :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UPDATE utilisateurs
    SET passwd = '$mdpcrypte' 
    WHERE nom = '$nom' 
    	AND prenom ='$prenom'
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    546
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 546
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    1) les commandes mysql_ sont obsolètes !
    Passez à PDO !

    2) Aérez votre code comme je l'ai fait ; ça le rendra plus lisible !
    Bonjour,
    est-ce que tu sais si les commandes mysql_ vont disparaitre prochainement ??

    Ce serait un gros souci pour nous comme on a un gros Intranet fait qu'avec ce genre de commandes :\

    Merci beaucoup pour ta réponse
    quaresma

  9. #9
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Réponse en anglais ici :
    https://stackoverflow.com/questions/...nctions-in-php

    Les fonctions mysql_ ont été supprimées en 2015 dans PHP 7.0
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    546
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 546
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Réponse en anglais ici :
    https://stackoverflow.com/questions/...nctions-in-php

    Les fonctions mysql_ ont été supprimées en 2015 dans PHP 7.0
    Merci pour ta réponse

    Ah oui
    Il y a un bon moment déjà oO

    Je suis en CDD, donc je ne resterai pas dans cette société, mais tu crois qu'il y aura un souci un jour s'ils ne passent pas au PDO ??

  11. #11
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Ben si par hasard ils décident de mettre à jour leur PHP en version 7+...
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

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

Discussions similaires

  1. [Debutant] Formulaire login mot de passe
    Par Oliviers dans le forum Sécurité
    Réponses: 5
    Dernier message: 03/04/2018, 19h30
  2. Formulaire Login/mot de passe
    Par white_tiger dans le forum IHM
    Réponses: 12
    Dernier message: 18/03/2007, 10h07
  3. ouverture formulaire avec mot de passe
    Par man18 dans le forum Sécurité
    Réponses: 2
    Dernier message: 25/01/2007, 17h19
  4. Ouverture formulaire avec mot de passe
    Par mavean dans le forum Access
    Réponses: 9
    Dernier message: 08/06/2006, 14h58
  5. Formulaire Login/mot de passe - Conserver une variable
    Par GraphiKa dans le forum Access
    Réponses: 3
    Dernier message: 30/09/2005, 15h29

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