Inscription
Asmaeab
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
Felice_ Messages postés 265 Date d'inscription Statut Membre Dernière intervention -
Felice_ Messages postés 265 Date d'inscription Statut Membre Dernière intervention -
Salut,
J'ai un problème avec mon code
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
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. |
A voir également:
- Inscription
- Wetransfer gratuit sans inscription - Guide
- Twitter inscription - Guide
- Vinted inscription - Guide
- Paypal inscription - Guide
- Instagram inscription - Guide
3 réponses
Tu es que tes lignes :
Sont juste ? Ce n'est pas plutôt :
?
$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);
?
Me voilà de retour,
j ai modifié mon code
mon problème toujours est que rien ne s'ajoute sur ma pase de données
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
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 ?