Inscription

Asmaeab Messages postés 7 Statut Membre -  
Felice_ Messages postés 271 Statut Membre -
Salut,
J'ai un problème avec mon code
<?php
try
{
$db = new PDO('mysql:host=localhost;dbname=test', 'root', '');
}
catch (Exception $e)
{
        die('Erreur : ' . $e->getMessage());
}
?>


<?php
 //On est dans le cas traitement
    $mail_erreur1 = NULL;
    $mail_erreur2 = NULL;
    $pwd_erreur = NULL;
    $dateCreation_erreur1 = NULL;
    $dateCreation_erreur2 = NULL;
    $nom_erreur = NULL; 

    //On récupère les variables
    $i = 0; 
    $mail=$_POST['mail'];
    $nom = $_POST['nom'];
    $dateCreation = $_POST['dateCreation'];
    $pwd = $_POST['pwd'];
    $confirm = $_POST['confirm'];

//Vérification du pseudo
    $query=$db->prepare('SELECT COUNT(*) AS nbr FROM clients WHERE nom =:nom');
    $query->bindValue(':nom',$nom, PDO::PARAM_STR);
    $query->execute();
    $name_free=($query->fetchColumn()==0)?1:0;
    $query->CloseCursor();
    if(!$name_free)
    {
        $name_erreur1 = "Votre pseudo est déjà utilisé par un membre";
        $i++;
    }
    
 
//Il faut que l'adresse email n'ait jamais été utilisée
    $query=$db->prepare('SELECT COUNT(*) AS nbr FROM clients WHERE mail =:mail');
    $query->bindValue(':mail',$mail, PDO::PARAM_STR);
    $query->execute();
    $mail_free=($query->fetchColumn()==0)?1:0;
    $query->CloseCursor();

    if(!$mail_free)
    {
        $email_erreur1 = "Votre adresse email est déjà utilisée par un membre";
        $i++;
    }
    //On vérifie la forme maintenant
    if (!preg_match("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-z]{2,4}$#", $mail) || empty($mail))
    {
        $mail_erreur2 = "Votre adresse E-Mail n'a pas un format valide";
        $i++;
    }

if ($pwd != $confirm || empty($confirm) || empty($pass))
    {
        $mdp_erreur = "Votre mot de passe et votre confirmation diffèrent, ou sont vides";
        $i++;
    }
?>
<?php
    if($i==0){
    
        $query=$db->prepare('INSERT INTO clients (nom, mail, pwd)
        VALUES (:nom, :mail, :pwd)');
    $query->bindValue(':nom', $name, PDO::PARAM_STR);
    $query->bindValue(':mail', $mail, PDO::PARAM_INT);
    $query->bindValue(':pwd', $pwd, PDO::PARAM_INT);

   
        $query->execute();

    

}
echo'Inscription terminée';
?>


Je n'ai que l'inscription terminée qui s'affiche
les données ne s'ajoute pas à la base
et si je remplis mes données d une maniere fausse par exemple si l email que je fais rentrer n a pas la forme d un mail aucun msg d erreur ne s affiche
De l'aide svp

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

3 réponses

  1. Felice_ Messages postés 271 Statut Membre 11
     
    Tu es que tes lignes :
    $query->bindValue(':mail', $mail, PDO::PARAM_INT);
        $query->bindValue(':pwd', $pwd, PDO::PARAM_INT);


    Sont juste ? Ce n'est pas plutôt :
    $query->bindValue(':mail', $mail, PDO::PARAM_STR);
        $query->bindValue(':pwd', $pwd, PDO::PARAM_STR);


    ?
    0
    1. Asmaeab Messages postés 7 Statut Membre
       
      Merci pour ta réponse
      oui tu as raison
      maintenant en corrigeant cette faute, j'obtiens une autre erreur :
      Deprecated: mysql_query(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\wamp\www\ProjetAuditCobit\register.php on line 88
      Vous voyez ou est t il le probleme ?
      0
    2. Felice_ Messages postés 271 Statut Membre 11
       
      Dans ton fichier register.php à la ligne 88 tu utilises la fonction mysql_query qui est déprécié, il faut que tu remplaces par par PDO ou à la rigueur par mysqli
      0
  2. Asmaeab Messages postés 7 Statut Membre
     
    Me voilà de retour,
    j ai modifié mon code
    <?php
    //<!--Connexion à la BDD-->
    $bdd = new PDO ('mysql:host=localhost;dbname=espace_membre', 'root', '');

    if(isset($_POST['forminscription']))
    {
    $nom = htmlspecialchars($_POST['nom']);
    $mail= htmlspecialchars($_POST['mail']);
    $mdp = sha1($_POST['mdp']);
    $mdp2 = sha1($_POST['mdp2']);
    $dateCreation=htmlspecialchars($_POST['dateCreation']);

    if(!empty($_POST['nom']) AND $_POST['mdp'] AND $_POST['mail'] AND $_POST['mdp2'] AND $_POST['dateCreation'])
    {
    $nomlenght = strlen($nom);
    if($nomlenght <= 255)
    {
    if(filter_var($mail, FILTER_VALIDATE_EMAIL))
    {
    $reqmail= $bdd->prepare("SELECT * FROM membre WHERE mail =? ");
    $reqmail->execute(array($mail));
    $mailexist= $reqmail->rowCount();
    if($mailexist == 0)
    {
    if($mdp== $mdp2)
    {
    $insertmbr = $bdd->prepare("INSERT INTO membre(nom, mail, motdepasse, dateCreation) VALUES(?,?,?,?)");
    $insertmbr-> execute(array($nom, $mail, $mdp, $dateCreation));
    $_SESSION['comptecree']= " votre compte a bien été créé";
    header("Location: PageAcceuilAudit.php");
    }
    else
    {
    $erreur= "vos mots de passe ne correspondent pas!!";
    }
    }
    else
    {
    $erreur= " Adresse mail déjà utilisée";
    }

    }
    else
    {
    $erreur= "votre adresse mail n'est pas valide";
    }

    }
    else
    {
    $erreur= "votre nom ne doit pas dépasser 255 caractères!!";
    }

    }
    else
    {
    $erreur= "Tous les champs doivent être complétés!!";
    }
    }

    ?>

    mon problème toujours est que rien ne s'ajoute sur ma pase de données
    0
    1. Felice_ Messages postés 271 Statut Membre 11
       
      En général c'est des erreurs dans les requêtes SQL, tu peux les affichées avec un « echo » et nous les montrer ?
      0
  3. Asmaeab Messages postés 7 Statut Membre
     
    Merci pour tes réponses, mais j'ai finalement résolu le problème. En fait c'était juste des petites erreurs dans le code
    0
    1. Felice_ Messages postés 271 Statut Membre 11
       
      N'hésite pas à donner les petites erreurs ça peut aider d'autres…
      0