Bonjour à tous !
Mon problème aujourd'hui se porte sur une requête où je vérifie si l'identifiant est déjà utilisé ou pas et donc il ne me retourne pas l'erreur est m'inscris ..
<?php
require '../db.php';
$errors = [];
$identifiant = trim($_POST['identifiant']);
$password = sha1(trim($_POST['password']));
$passwordRepeat = sha1(trim($_POST['password-repeat']));
$email = trim($_POST['email']);
$age = trim($_POST['age']);
if(!array_key_exists('identifiant', $_POST) || $identifiant == '')
{
$errors['identifiant'] = "Vous n'avez pas renseigné votre identifiant";
}
if(!array_key_exists('identifiant', $_POST) || strlen($identifiant) < 5)
{
$errors['identifiant'] = "Votre identifiant est trop court !";
}
if(!array_key_exists('password', $_POST) || $password == '')
{
$errors['password'] = "Vous n'avez pas renseigné votre mot de passe";
}
if(!array_key_exists('password', $_POST) || strlen($password) < 8)
{
$errors['password'] = "Votre mot de passe est trop court !";
}
if(!array_key_exists('password-repeat', $_POST) || $passwordRepeat != $password)
{
$errors['password-repeat'] = "Vous n'avez pas bien confirmé votre mot de passe";
}
if(!array_key_exists('email', $_POST) || $email == '' || !filter_var($email, FILTER_VALIDATE_EMAIL))
{
$errors['email'] = "Vous n'avez pas renseigné une adresse e-mail valide";
}
if(!array_key_exists('age', $_POST) || $age == '')
{
$errors['age'] = "Vous n'avez pas renseigné votre âge";
}
$req = $db->prepare("SELECT identifiant FROM users WHERE identifiant = $identifiant");
$req->bindParam("identifiant", $identifiant);
$count = $req->rowCount();
if($count)
{
$errors['identifiant'] = "Cet identifiant est déjà utlisé !";
}
$req = $db->prepare("SELECT email FROM users WHERE email = $email");
$req->bindParam("email", $email);
$count = $req->rowCount();
if($count)
{
$errors['email'] = "Cette adresse e-mail est déjà utlisé !";
}
if(!$errors)
{
$insert = "INSERT INTO users(identifiant, password, email, age, date_inscription) VALUES(:identifiant, :password, :email, :age, NOW())";
$req = $db->prepare($insert);
$req->execute(array(
':identifiant'=> $identifiant,
':password' => $password,
':email' => $email,
':age' => $age
));
header('Location: ../../login.php');
}else{
session_start();
$_SESSION['errors'] = $errors;
header('Location: ../../signup.php');
}
?>
Merci à vous !
$req = $db->prepare("SELECT identifiant FROM users WHERE identifiant = :identifiant");
$req = $db->prepare("SELECT email FROM users WHERE email = :email");
Derien
Bonjour,
Vous n'avez pas exécuter vos reqêtes concernant l'email et l'identifiant.