Insertion dans une table avec condition
Résolu
delavega470
Messages postés
298
Date d'inscription
Statut
Membre
Dernière intervention
-
delavega470 Messages postés 298 Date d'inscription Statut Membre Dernière intervention -
delavega470 Messages postés 298 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je veux insérer une valeur avec insert into dans une table mais j'ai une condition a ajouter je ne sais pas comment faire cela , pourrai je avoir un coup de main svp!!.
il m'insert pas dans la colone mdp. je veux qu'il insert un mot de passe pour chaque utilisateur qui va creer son mdp
je veux insérer une valeur avec insert into dans une table mais j'ai une condition a ajouter je ne sais pas comment faire cela , pourrai je avoir un coup de main svp!!.
il m'insert pas dans la colone mdp. je veux qu'il insert un mot de passe pour chaque utilisateur qui va creer son mdp
<?php if(isset($_POST['Valider'])) { $email=$_POST['email_p']; $mdp=sha1($_POST['password']); $mdconf=sha1($_POST['confpassword']); include('codes/bdcon.php'); // Vérification de l'element existant $req1= $bdd ->query('SELECT id_uti from utilisateur where email="'.$email.'" '); $resultat = $req1->fetch(); if ($resultat AND $mdp==$mdconf) { include('codes/bdcon.php'); $reponse = $bdd->query('INSERT INTO utilisateur (mdp) VALUE("'.$mdp.'")'); echo '<font >compte activé! </font>'; } else { echo '<font color="red"> mot de passe différent ou email incorrect</font> '; } } ?>
A voir également:
- Insertion dans une table avec condition
- Table ascii - Guide
- Insertion table des matières word - Guide
- Excel cellule couleur si condition texte - Guide
- Touche insertion clavier - Guide
- Insertion filigrane word - Guide
5 réponses
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...
<!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>
<?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