Insertion des informations dans ma base de données

borelluc31 Messages postés 6 Statut Membre -  
jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   -
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

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    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
  2. borelluc31 Messages postés 6 Statut Membre
     
    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
  3. borelluc31 Messages postés 6 Statut Membre
     
    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
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      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
    2. borelluc31 Messages postés 6 Statut Membre
       
      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
      1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832 > borelluc31 Messages postés 6 Statut Membre
         
        N'oublie pas de marquer le sujet en RESOLU ( sous ton premier message)

        L'équipe Jordane.
        0