Inscription
Asmaeab
Messages postés
7
Statut
Membre
-
Felice_ Messages postés 271 Statut Membre -
Felice_ Messages postés 271 Statut Membre -
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
- Tchat gratuit sans inscription - Accueil - Réseaux sociaux
- Paypal 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 ?