Insertion des informations dans ma base de données

Fermé
borelluc31 Messages postés 5 Date d'inscription samedi 1 août 2020 Statut Membre Dernière intervention 4 août 2020 - Modifié le 3 août 2020 à 13:02
jordane45 Messages postés 38424 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 février 2025 - 4 août 2020 à 21:54
rebonjour a tous! je pense pouvoir être bien redirigé sur le bon forum d'aide au web master!
et bien je revient avec le même problème posté dans un autre forum pour trouvé quelque reponse à mon problème.
en effet j' ai écrit un programme pour mon site qui inscrivait de nouveau menbre et j'arrive pas a le stoquer les nouveau inscrit dans ma bd.
Apres clic du bouton connexion il me certifie bien que le compte a été crée mais je ne vois aucun enregistrement dans ma bd.
je suis deja à 2semaine de reflexion et sincérement je suis perdu je vous pris de m'aidé s'il vous plait
voici le code dans son intégralité:
<?php
  
 $bdd= new PDO('mysql:host=localhost;dbname=orient','root','');
 array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);
 if (isset($_POST['formsend']))
 {
  if(!empty($_POST['pseudo']) AND !empty($_POST['email']) AND !empty($_POST['password']) AND !empty($_POST['cpassword']))
  {
   $email= htmlspecialchars($_POST['email']);
   $pseudo= htmlspecialchars($_POST['pseudo']);
   $password= sha1($_POST['password']);
   $cpassword= sha1($_POST['cpassword']);
   if ($password==$cpassword)
   {
    $req = $bdd->prepare("INSERT INTO menbre(email, pseudo, mot_de_passe) VALUES (?,?,?)");
    $req -> execute(array($email, $pseudo, $password));
    $reqmail = $bdd->prepare("SELECT * FROM menbre WHERE email=?");
    $reqmail->execute(array($mail));
    $reqmailexist = $reqmail->rowCount();
    if($mailexist ==0)
    {

    }
    else{
     $erreur="adresse email déja utilisé!";
    }
    $_SESSION['comptecrée']= "votre compte a bien été crée!";

    {header ('Location: session.php');exit();}
   }
   else {
    echo $erreur="vos mot de passe ne corespondent pas!";
   }
  }
  else{
   $erreur= "remplir tout les champs!";
  }
  }
  ?>
<!DOCTYPE html>
<html>
<head>
   <meta charset="utf-8" />
  <title>Orient site</title>
  <link rel="stylesheet" type="text/css" href="css/style.css">
  <!--[if lt IE 9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]-->
 </head>
<body class="bodya" text aligne="center">

<p>VEILLEZ ENTREE VOS COORDONEE POUR VISITER VOTRE ESPACE PERSONNEL</p>
<form method="POST" action="">
 <table>
  <tr>
   <td>
<label for="email">VOTRE EMAIL</label></td><td> <input type="mailto" name="email" id="pseudo"placeholder='EX: borelluc@yahoo.fr' ></td>
  </tr>
  <tr>
   <td>
<label for="pseudo">VOTRE PSEUDO</label></td><td> <input type="text" name="pseudo" id="pseudo"placeholder='EX: lucborel@...' ></td>
  </tr>
  <tr>
   <td>
  <label for="pass">MOT DE PASSE:</label></td><td> <input type="password" name="password" id="password" placeholder="aze123..."> </td>
  </tr>
  <tr>
   <td>
  <label for="cpass">CONFIRMATION  PASSE:</label></td><td> <input type="password" name="cpassword" id="cpassword" placeholder="aze123..."> </td>
  </tr>
  <tr>
   <td>
  </td><td> <input type="submit"  name="formsend" value="connexion"></td>

  </tr></table>
 </form>
 <?php
 if (isset($erreur))
 {
  echo '<font color="red">'.$erreur.'</font>';
 }

 ?>
 </body>
</html>


désolé pour la forme ! et bien le truc est que je ne s'ait pas comment le rédigé de comme je l'es vu chez d'autre . ci vous pouvez aussi m'aidez dans ce sens je m’améliorais dans mes poste avenir.
merci d'avance

modération : Pour la mise en forme des sources, au dessus de la zone d'édition de tes messages, il y a des icones pour les enrichissements du texte. Celle qui a cet aspect
<> ▼
permet d'appliquer aux codes, suivant une liste de valeurs, le format correspondant à sa nature.
Un petit tuto là : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

3 réponses

jordane45 Messages postés 38424 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 février 2025 4 734
3 août 2020 à 13:39
Bonjour,

Pour poster ton code, tu dois utiliser les balises de code.
Explications ( à lire ENTIEREMENT ) disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code

Et pour ton souci...
commence par appliquer ce qui est indiqué ici :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

ce qui devrait te donner un code du genre :

//préparation de la requête et des variables
 $sql = "SELECT * FROM menbre WHERE email=?";
 $datas = array($mail);

 //Execution de la requete
try{
  $sth = $bdd -> prepare($sql) ;
  $sth->execute($datas) ;
  $res = $sth->fetchAll(); // on stocke le résultat de la requête dans un array
}catch(Exception $e){
  // en cas d'erreur :
   echo " Erreur ! ".$e->getMessage();
   echo " Les datas : " ;
  print_r($datas);
}

$reqmailexist = !emtpy($res) ? count($res ) : 0 ;
if($mailexist >0){   
  $erreur="adresse email déja utilisé!";
  $_SESSION['comptecree'] = null;
}else{
  if ($password==$cpassword) {
    //préparation de la requête et des variables
    $sql ="INSERT INTO menbre(email, pseudo, mot_de_passe) VALUES (?,?,?)";
    $datas = array($email, $pseudo, $password);
    //Execution de la requete
    try{
      $sth = $bdd -> prepare($sql) ;
      $sth->execute($datas) ;
    }catch(Exception $e){
      // en cas d'erreur :
      echo " Erreur ! ".$e->getMessage();
      echo " Les datas : " ;
      print_r($datas);
      $_SESSION['comptecree'] = null;
    }
    $_SESSION['comptecree']= "votre compte a bien été crée!";
  }else{
     echo "vos mot de passe ne corespondent pas!";
  }
 }



Et également ceci (je te laisse faire les modifications )
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
0
borelluc31 Messages postés 5 Date d'inscription samedi 1 août 2020 Statut Membre Dernière intervention 4 août 2020
3 août 2020 à 14:27
d'abord vraiment merci de vous intéressé a mon problème encore merci!
mais j'ai essayé le code que vous avez donnez précedement et ca m'affiche 3 Erreurs a savoir:

-( ! )Notice: Undefined variable: mail in C:\wamp64\www\ORI\corec.php on line 17

-( ! ) Fatal error: Uncaught Error: Call to undefined function emtpy() in C:\wamp64\www\ORI\corec.php on line 31

-( ! ) Error: Call to undefined function emtpy() in C:\wamp64\www\ORI\corec.php on line 31


bon laaa! je m'y connais pas trop mais je pensse qu'il me dit la qu'il ne voit pas la variable mail a la ligne 17...
0
borelluc31 Messages postés 5 Date d'inscription samedi 1 août 2020 Statut Membre Dernière intervention 4 août 2020
3 août 2020 à 16:32
J'ai essayé de rectifié l'erreur survene à la ligne 17 tout en remplacant mail par email

$datas = array($email);


mais la nouvelle erreur qui affiche est la suivante:

Erreur ! SQLSTATE[42S22]: Column not found: 1054 Champ 'email' inconnu dans where clause Les datas : Array ( [0] => borelluc31@gmail.com )
( ! ) Fatal error: Uncaught Error: Call to undefined function emtpy() in C:\wamp64\www\ORI\corec.php on line 30
( ! ) Error: Call to undefined function emtpy() in C:\wamp64\www\ORI\corec.php on line 30
0
jordane45 Messages postés 38424 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 février 2025 4 734
3 août 2020 à 17:33
Pour

-( ! ) Error: Call to undefined function emtpy() in C:\wamp64\www\ORI\corec.php on line 31

Erreur de ma part...
c'est
 empty 


Pour l'autre erreur...

Erreur ! SQLSTATE[42S22]: Column not found: 1054 Champ 'email' inconnu dans where clause

et bien ça veut dire que dans ta table.. ton champ ne se nomme pas email

PS: le mot "membre" s'écrit avec un M pas un N
0
borelluc31 Messages postés 5 Date d'inscription samedi 1 août 2020 Statut Membre Dernière intervention 4 août 2020
4 août 2020 à 21:49
Sincèrement grand merci a toute l'équipe effectivement le problème venais de mot_de_passe or dans ma base il était écrit mot_de_pass!!!

Très sincèrement merci pour vos réactions et j'espère pouvoir pouvoir ne plus me tromper et être beaucoup plus concentré dans l'avenir.
0
jordane45 Messages postés 38424 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 février 2025 4 734 > borelluc31 Messages postés 5 Date d'inscription samedi 1 août 2020 Statut Membre Dernière intervention 4 août 2020
4 août 2020 à 21:54
N'oublie pas de marquer le sujet en RESOLU ( sous ton premier message)

L'équipe Jordane.
0