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
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
<?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:

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
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....

//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...
0
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
j'ai inseré dans apres le if mais cela ne marche pas
0
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
Tu peux me montrer le code complet ?
Y compris celui de la connexion à la bdd.
Merci
0
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
<!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>
0
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

<?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());
}
?>
0

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
merci ! problème résolue
0