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 :

Modification de données dans bdd


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bahamas

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 57
    Points : 35
    Points
    35
    Par défaut Modification de données dans bdd
    Bonjour,

    Malgré les cours et tutoriel PHP sur ce sujet, je ne parviens pas à modifier le mot de passe d'un membre selon son token.
    J'ai essayé de 2 manières différentes mais aucunes d'elles effectuent la moindre opération dans ma bdd alors que je suis bien connecté ..
    Je vous montre les 2 manières que j'ai utilisé :

    1ère:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $req = $bdd->prepare('UPTDATE membres SET mdp = :mdp WHERE token = :token') ; 
    	$req->execute(array(
    	'mdp' => $motDePasse,
    	'token' => $token));
    2ème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $req = $bdd->prepare('UPDATE membres SET mdp = :mdp WHERE token = :token');
    $req->bindParam(':mdp', $motDePasse, PDO::PARAM_STR);
    $req->bindParam(':token', $token, PDO::PARAM_STR);
    			$req->execute();
    Vous auriez une solution ? Merci !

    Le tout donne ceci
    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
    <?php
    include 'connection.php';
    $motDePasse = $_POST['motDePasse'];
    $reMotDePasse = $_POST['reMotDePasse'];
    $token = $_POST['token'];
    echo $token;
    if($motDePasse == $reMotDePasse){
    	if(preg_match('`^([[:alnum:]]{8,16})$`',$motDePasse)){
    		$motDePasse = sha1($motDePasse);
    		$req = $bdd->prepare('UPDATE membres SET mdp = :mdp WHERE token = :token');
    		$req->bindParam(':mdp', $motDePasse, PDO::PARAM_STR);
    		$req->bindParam(':token', $token, PDO::PARAM_STR);
    		$req->execute();
    		 // $req = $bdd->prepare('UPTDATE membres SET mdp = :mdp WHERE token = :token') ; 
    		 // $req->execute(array(
    		 // 'mdp' => $motDePasse,
    		// 'token' => $token));
    		echo 'Fait ?';
    	} else {
    		echo '<body onLoad="alert(\'Vos mots de passe ne contiennent pas 8 à 16 caractères. Veuillez recommencer.\')" >';
    	}
    } else {
    	echo '<body onLoad="alert(\'Vos mots de passe ne sont pas semblable. Veuillez recommencer.\')" >';
    }
    ?>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je suppose que ton echo montre bien un token présent dans la table.

    Est-ce que les erreurs PDO sont actives sur ta connexion ?
    http://www.php.net//manual/fr/pdo.error-handling.php
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bahamas

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 57
    Points : 35
    Points
    35
    Par défaut
    Oui oui il me montre le bon token ainsi que le mot de passe ainsi que les erreur PDO. Sur ma page, j'ai juste le "Fait ?" qui ne m'aide pas trop ^^

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 55
    Points : 49
    Points
    49
    Par défaut
    Récemment j'ai eu un soucis similaire, je l'ai résolu en modifiant ma connexion à la base comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $bdd = new PDO('mysql:host='.$host.';dbname='.$base,$user,$pwd);
    Si ça peut t'aider...

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    ainsi que les erreur PDO
    quelles erreurs PDO ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bahamas

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 57
    Points : 35
    Points
    35
    Par défaut
    Je me connecte de la même manière malheureusement
    Quand il y a des erreurs, elles s'affichent mais la il y en a pas, j'ai fait un restart de WAMP et aucun effet.

    La seule choses d'affiché c'est mon "Fait ?" :\

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Août 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 55
    Points : 49
    Points
    49
    Par défaut
    A mon avis ça vient pas du code que tu nous as montré.
    T'as vérifié le contenu de chaque variable, ainsi que le type de chaque champ de la base de données ?

    EDIT : On sait jamais, peut-être que les quotes sont pas bonnes. Voici un exemple de requête qui marche chez moi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $req = $bdd->prepare("UPDATE `membres` SET `mdp` = :mdp WHERE `token` = :token");
    			$req->bindParam(":mdp", $motDePasse, PDO::PARAM_STR);
    			$req->bindParam(":token", $token, PDO::PARAM_STR);

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bahamas

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 57
    Points : 35
    Points
    35
    Par défaut
    Aaaah j'espérais trop mais non même résultat, ma bdd ne se modifie toujours pas alors que j'arrife a faire de recherche et récupérer des entrées sur d'autres pages :s

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Août 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 55
    Points : 49
    Points
    49
    Par défaut
    Et ça fonctionne si tu fais un INSERT, à la place de ton UPDATE ?

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bahamas

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 57
    Points : 35
    Points
    35
    Par défaut
    Je viens d'essayer un INSERT et aucun problème de ce coté la, il a bien apparu dans ma base de donné.

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bahamas

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 57
    Points : 35
    Points
    35
    Par défaut
    Je viens de résoudre à moitié le problème. J'ai réussi a faire passé la variable $token de page en page mais pas à cette page.

    Je présente le code de la page d'avant:

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    <?php
    	/* il faut demarrer la session*/
    	session_start();
     
    	if (empty($_SESSION['id'])) //les membres connecte ne peuvent pas s'inscrire
     
    ?>
     
    <?php 
    	include 'connection.php';
    ?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    		<link href="css/main.css" rel="stylesheet" type="text/css"> 
    		<title>TrocEvol.com</title>
        </head>
        <body>
    		<div id="en-tete">
    			<h1>TrocEvol</h1>
    		</div>
    		<p>
    		blaaaaaaaaaa;
    		</p>
    		<div id = "menu" > 
    			<ul>
    				<li><a href="index.php" id="bouton" >Home</a></li>
    				<li><a href="inscription.php" id="bouton" >Inscription</a></li>	
    				<li><a href="identification.php" id="bouton" >S'identifier</a></li>
    				<li><a href="recherche.php" id="bouton" >Rechercher</a></li>	
    			</ul>
    		</div>
    		<div id="contenu">
    		<?php
    		$token = $_GET['token'];
    		echo $token;
    		?>
    			<fieldset>
    			<p>
    				<h1><u>Réinitialisation du mot de passe</u></h1><br>
    				<form method="post" action="verifreset.php">
    					Rentrer votre nouveau mot de passe ainsi qu'une deuxième fois afin de terminer la réinitialisation.
    						<table>
    							<tr>
    								<td>Nouveau mot de passe: </td>
    								<td width="20px"></td>
    								<td><input type="password" name="motDePasse" /> <br></td>
    							</tr>
    							<tr>
    								<td>Retaper votre mot de passe: </td> 
    								<td width="20px"></td>
    								<td><input type="password" name="reMotDePasse" /> <br></td>
    								<td><input type="hidden" name="token"  value="<?php $token; ?>"/> <br></td>
    							</tr>
    						</table>
    						<input type="submit" value="Envoyer !"/>
    					</fieldset>
    				</form>
    		</div>
        </body>
    </html>
    Et je pense que la ligne de code qui pose problème est celle-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td><input type="hidden" name="token"  value="<?php $token; ?>"/> <br></td>
    Mettre le "type" en hidden est correct non ?

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bahamas

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2013
    Messages : 57
    Points : 35
    Points
    35
    Par défaut
    C'est bon j'ai trouvé ! Il fallait mettre <?php echo $token; ?> !!!! ^^

  13. #13
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Donc quand tu nous disait que tu voyais bien le token provenant du formulaire ce n'etait pas vrai.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. [C#] Récupération d'une donnée dans BDD Access
    Par Kerod dans le forum Windows Forms
    Réponses: 8
    Dernier message: 29/07/2014, 19h29
  2. [MySQL] problème ajout donnée dans BDD via php
    Par Skeud007 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 29/05/2006, 23h41
  3. Réponses: 11
    Dernier message: 16/05/2006, 12h34
  4. Réponses: 6
    Dernier message: 15/02/2006, 14h02
  5. [MySQL] vérifier données dans BDD
    Par ardamus dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 16/01/2006, 17h21

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