Utilisation de PDO ave PHP pour valider un formilaire [Résolu/Fermé]

Signaler
Messages postés
442
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2015
-
Alain_42
Messages postés
5374
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
-
Bonjour,

Depuis un temps j'utilise les PDO comme système de requête dans la base des données mysql, j'ai fait un formulaire d'inscription qui apparemment fonctionne très bien, toutes les vérifications fonctionne parfaitement bien et même lors de l'insertion les données sont bien apparemment envoyé dans la base des données, mais quand j'entre dans ma table pour vérifier je ne trouve rien, j'ai supprimé et récrée la table mais il n'y pas eu de changement, j'ai recommencer à coder le formulaire mais j'ai le même problème, il y a t-il quelqu'un qui peut m'aider ? Voici mon formulaire d'inscription :

<div id="oUsuisJe">Vous êtes ici :</div>

<div class="contenuLeft left">
<form action="" method="post" name="form1" id="form1">
<?php
$renderForm=true;
    if (isset($_POST['Soumettre']) && $_POST['Soumettre'] == 'Soumettre') {
extract($_POST);
              if ((isset($_POST['pseudo']) && !empty($_POST['pseudo'])) && (isset($_POST['password']) && !empty($_POST['password'])) 
     && (isset($_POST['email']) && !empty($_POST['email'])) && (isset($_POST['nom']) && !empty($_POST['nom']))
     && (isset($_POST['prenom']) && !empty($_POST['prenom']))&& (isset($_POST['sexe']) && !empty($_POST['sexe'])))
     
     //On verifie si le mot de passe et celui de la verification sont identiques
   if($_POST['password']==$_POST['pass_confirm'])
   {
   //On verifie si le mot de passe a 6 caracteres ou plus
   if(strlen($_POST['password'])>=6)
   {
     
   {
   //Vérification de l'email
   /*Verifier si le domaine n'est pas occupé*/
   
   $query = $connexion->prepare('SELECT pseudo FROM 'dh_membres' WHERE pseudo = :pseudo');
   $query->execute(array('pseudo'=> $_POST['pseudo']));
   $nb_membre=$query->fetch();

    
   if(!$nb_membre) /*si il n'y a pas de resultat*/
   {
   /*si le pseudo n'est pas occupé*/
   $req=$connexion->prepare('INSERT INTO 'dh_membres'('pseudo', 'password', 'email', 'nom', 'prenom', 'adresse', 'sexe') VALUES
   (:pseudo, :password, :email, :nom,:prenom,:adresse,:sexe)');
   $req->execute(array('pseudo'=>$_POST['pseudo'], 'password'=>md5($_POST['password']), 'email'=>$_POST['email'],'nom'=>$_POST['nom'], 'prenom'=>$_POST['prenom']
   , 'adresse'=>$_POST['adresse'], 'sexe'=>$_POST['sexe'], 'sexe'=>$_POST['sexe']));
    
    $succes = 'Félicitation ! Vous êtes incris, dans Dream House</br> Pour gerer vos demaines, veuillez consulter votre email afin de confimez votre inscription';
   echo '<div class="succes">'.$succes.'</div><!--succes-->';
   }
             else { 
                $erreur = '<div class="already">Un autre membre utilise le pseudo '.$pseudo.', trouvez un autre</br> Ex.: '.$pseudo.'2013 ou '.$pseudo.'007</div>'; 
             }
    }
    }
      else 
    { 
                $erreur = 'Le mot de passe doit contenir plus aumoins 6 caracteres'; 
             }//si le mot de passe contient moins de 6 caracteres
    
     }
     else 
    { 
                $erreur = 'Les mots de passe introduits ne sont pas identiques'; 
             }//si le premier mot de paasse est différent du deuxième
             
             else { 
          $erreur = 'Tous les champs en * sont obligatoire.'; 
       }  
    }
 // échec de l'envoi
   if (isset($erreur)) {
   echo '<div id="info" class="error">'.$erreur.'</div><!--error-->';
     } if($renderForm){
  ?>
 
<label for="pays"><h3>Inscription</h3></label>
<br/>
<label for="pseudo">Pseudo</label><br/>
<input id="pseudo" name="pseudo" type="text" value="<?php if (isset($_POST['pseudo'])) echo htmlentities(trim($_POST['pseudo'])); ?>" />
<br/><label for="password">password</label>
<br/>
<input id="password" name="password" type="password" value="<?php if (isset($_POST['password'])) echo htmlentities(trim($_POST['password'])); ?>" />

<br/><label for="password2">password</label>
<br/>
<input id="password2" name="pass_confirm" type="password" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>" />

<br/><label for="email">email</label><br/>
<input id="email" name="email" type="text" value="<?php if (isset($_POST['email'])) echo htmlentities(trim($_POST['email'])); ?>" />


<br/><label for="nom">nom</label><br/>
<input id="nom" name="nom" type="text" value="<?php if (isset($_POST['nom'])) echo htmlentities(trim($_POST['nom'])); ?>" />

<br/><label for="prenom">prenom</label><br/>
<input id="prenom" name="prenom" type="text" value="<?php if (isset($_POST['prenom'])) echo htmlentities(trim($_POST['prenom'])); ?>" />


<br/><label for="adresse">adresse</label>
<br/>
<input id="adresse" name="adresse" type="text" value="<?php if (isset($_POST['adresse'])) echo htmlentities(trim($_POST['adresse'])); ?>" />

<br/>
<label for="Sexe">Sexe</label>

<select  name="sexe" id="Sexe" value="<?php if (isset($_POST['sexe'])) echo htmlentities(trim($_POST['sexe'])); ?>" >
     <option value="Homme" >Homme</option>
     <option value="Femme">Femme</option>
</select>

<br/>
           <input type="submit" name="Soumettre" class="btns" value="Soumettre" /> 

</form>
 <?php
  }
  ?> 
  </div>
  
  <div class="contenuRight right">
<h3>Domaines Enregistrés</h3>

<?php
//membresList ();
?>
<br/><br/>
<a href="" class="big_btns center" title="Membres de la communauté">Voir les membres ?</a>

<br/>

<br/><br/>
<h3>Actions</h3>
<p>
Cher utilisateur, vous avez ici la possibilité de voir ainsi que de regler le satut de votre domaine..
</p>
<ul>
<li><a href="?page=account&page=eddingdomaine">Gerer</a></li>
<li><a href="?page=account&page=eddingdomaine">Modifier un domaine</a></li>
</ul>
<br/>

</div>
 
 
  <div class="clear"></div>



2 réponses

Messages postés
5374
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
869
salut,

pourquoi fais tu extract($_POST) ce qui transforme tous les $_POST['champ_x'] en $champ_x

et qu'ensuite tu utilies $_POST['....
.
de plus dans une requette le nom de la table ne doit pas être entre ' '
et si tu mets des ' il faut que le début et la fin soit "

 $req=$connexion->prepare("INSERT INTO dh_membres('pseudo', 'password', 'email', 'nom', 'prenom', 'adresse', 'sexe') VALUES
   (:pseudo, :password, :email, :nom,:prenom,:adresse,:sexe)");


et je mettrait
if(count($nb_membre)==0)
glodybiss
Messages postés
442
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2015
9
Salut Alain, le problème est résolu mais par contre je ne suis pas à mesure d'enregistrer la date dans tes mes champs, le type de champ dans ma base des données est TIMESTAMP et la valeur par défaut de la teble j'ai mis CURRENT_TIMESTAMP mais quand je fais ma requête rien n'entre dans ma table date, voici à quoi ressemble ce que je fais.

INSERT INTO dh_domaine_cmd ('commande_type', 'categorie', 'domaine_choice', 'years_nbr', 'commande_by', 'commande_ref', 'commande_date') VALUE
			(:commande_type, :categorie,:domaine_choice, :years_nbr, :commande_by, :commande_ref, :commande_date)');
			$req->execute(array('commande_type'=>$_POST['commande_type'], 'categorie'=>$_POST['categorie'], 'domaine_choice'=>$_POST['domaine_choice'],
			'years_nbr'=>$_POST['years_nbr'],'commande_by'=>$_POST['commande_by'],'commande_ref'=>$_POST['commande_ref'], 'commande_date'=>time()));


le nom de mon champ qui doit contenir la date et l'heure c'est "commande_date"
Messages postés
5374
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
869
il doit te manquer des " la fct time() n'est pas interprétée

essayes comme ça:

$req="INSERT INTO dh_domaine_cmd ('commande_type', 'categorie', 'domaine_choice', 'years_nbr', 'commande_by', 'commande_ref', 'commande_date') VALUE
			(:commande_type, :categorie,:domaine_choice, :years_nbr, :commande_by, :commande_ref, :commande_date)')";
			$req->execute(array('commande_type'=>$_POST['commande_type'], 'categorie'=>$_POST['categorie'], 'domaine_choice'=>$_POST['domaine_choice'],
			'years_nbr'=>$_POST['years_nbr'],'commande_by'=>$_POST['commande_by'],'commande_ref'=>$_POST['commande_ref'], 'commande_date'=>time()))";