Insertion dans une table avec condition
Résolu/Fermé
delavega470
Messages postés
298
Date d'inscription
dimanche 9 février 2014
Statut
Membre
Dernière intervention
24 mars 2020
-
Modifié par delavega470 le 23/05/2016 à 12:06
delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020 - 23 mai 2016 à 16:15
delavega470 Messages postés 298 Date d'inscription dimanche 9 février 2014 Statut Membre Dernière intervention 24 mars 2020 - 23 mai 2016 à 16:15
A voir également:
- Insertion dans une table avec condition
- Table ascii - Guide
- Table des matières word - Guide
- Excel cellule couleur si condition texte - Guide
- Insertion liste déroulante excel - Guide
- Insertion signature word - Guide
5 réponses
jordane45
Messages postés
38350
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 décembre 2024
4 719
23 mai 2016 à 13:45
23 mai 2016 à 13:45
Bonjour,
Tu veux renseigner le mot de pass sur des UTILISATEURS déjà existants ???
Ce n'est donc pas un INSERT que tu dois faire .. mais un UPDATE;
De plus, pour éviter les soucis d'injection SQL.. il vaut mieux utiliser les requêtes préparées.
Sans oublier un bloc try/catch pour intercepter les éventuelles erreurs....
NB: Par défaut l'affichage des erreurs pdo n'est pas active...
Il faut modifier ta connexion comme ceci :
//en modifiant les infos de connexion à la bdd bien entendu...
Tu veux renseigner le mot de pass sur des UTILISATEURS déjà existants ???
Ce n'est donc pas un INSERT que tu dois faire .. mais un UPDATE;
De plus, pour éviter les soucis d'injection SQL.. il vaut mieux utiliser les requêtes préparées.
Sans oublier un bloc try/catch pour intercepter les éventuelles erreurs....
//préparation de la requête $sql = " UPDATE utilisateur SET mdp = :mdp WHERE id_uti = :id_uti "; $datas = array('id_uti'=>$resultat['id_uti'] , ':mdp'=>$mdp); //on exécute la requête try{ $prepare = $bdd->prepare($sql); $reponse = $prepare->execute($datas); }catch(Exception$e){ //en cas de souci dans la requete echo "Erreur ! ". $e->getMessage(); }
NB: Par défaut l'affichage des erreurs pdo n'est pas active...
Il faut modifier ta connexion comme ceci :
<?php //Fichier de connexion à la bdd : cnxBdd.php try{ $bdd = new PDO("mysql:host=localhost;dbname=tabdd;charset=UTF8", 'user', 'password'); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //pour activer l'affichage des erreurs pdo } catch(PDOException $e){ echo 'ERROR: ' . $e->getMessage(); }
//en modifiant les infos de connexion à la bdd bien entendu...
delavega470
Messages postés
298
Date d'inscription
dimanche 9 février 2014
Statut
Membre
Dernière intervention
24 mars 2020
48
23 mai 2016 à 14:14
23 mai 2016 à 14:14
j'ai inseré dans apres le if mais cela ne marche pas
jordane45
Messages postés
38350
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 décembre 2024
4 719
23 mai 2016 à 14:24
23 mai 2016 à 14:24
Tu peux me montrer le code complet ?
Y compris celui de la connexion à la bdd.
Merci
Y compris celui de la connexion à la bdd.
Merci
delavega470
Messages postés
298
Date d'inscription
dimanche 9 février 2014
Statut
Membre
Dernière intervention
24 mars 2020
48
Modifié par delavega470 le 23/05/2016 à 14:27
Modifié par delavega470 le 23/05/2016 à 14:27
<!DOCTYPE html> <html> <head> <link rel="stylesheet" href="css/style.css"> <title>GP_CHU</title> </head> <body> <form method="post" action="#"> <body onload="window.location.href = '#openModal';"> <div id="openModal" class="modalDialog"> <div> <div align="right"> <h2>Création de mot de passe</h2> <table border="0"> <tr><td>Email <em>*</em></td> <td><input type="Email" placeholder="Email" name="email_p" id="email_p"></td> </tr> <?php include("js/espace.js"); ?> <tr><td>Mot de passe<em>*</em></td> <td><input type="password" name="password" required maxlenght="9" onkeydown='return sansEspace();' ></td> </tr> <tr><td>confirmation Mot de passe <em>*</em></td> <td><input type="password" name="confpassword" maxlenght="9" onkeydown='return sansEspace();'></td> </tr> </tr> </tr> </table> <p> Les champs (<em>*</em> ) sont obligatoires!!!<br> </p> <input type="submit" name="Valider"> <?php if(isset($_POST['Valider'])) { $email=$_POST['email_p']; $mdp=sha1($_POST['password']); $mdconf=sha1($_POST['confpassword']); include('codes/bdcon.php'); $req1= $bdd ->query('SELECT id_uti from utilisateur where email="'.$email.'" '); $resultat = $req1->fetch(); if ($resultat AND $mdp==$mdconf) { //préparation de la requête $sql = " UPDATE utilisateur SET mdp = :mdp WHERE id_uti = :id_uti "; $datas = array('id_uti'=>$resultat['id_uti'] , ':mdp'=>$mdp); //on exécute la requête try{ $prepare = $bdd->prepare($sql); $reponse = $prepare->execute($datas); }catch(Exception$e){ //en cas de souci dans la requete echo "Erreur ! ". $e->getMessage(); } } ?> </div> </form> </body> </html>
delavega470
Messages postés
298
Date d'inscription
dimanche 9 février 2014
Statut
Membre
Dernière intervention
24 mars 2020
48
23 mai 2016 à 14:26
23 mai 2016 à 14:26
<?php // Connexion a la base de Données try { $bdd= new PDO('mysql:host=localhost; dbname=gestpiece', 'root','',array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); } // cas d'erreur catch(Exception $e) { die('Erreur:'.$e->getMessage()); } ?>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
delavega470
Messages postés
298
Date d'inscription
dimanche 9 février 2014
Statut
Membre
Dernière intervention
24 mars 2020
48
23 mai 2016 à 16:15
23 mai 2016 à 16:15
merci ! problème résolue