Requete PHP

Par aStunner, il y a 11 ans


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 !

5 réponses

MehdiWEB, il y a 11 ans
$req = $db->prepare("SELECT identifiant FROM users WHERE identifiant = :identifiant"); $req = $db->prepare("SELECT email FROM users WHERE email = :email");

Derien

aStunner, il y a 11 ans

Merci de ta réponse Mehdi mais sa ne résous pas mon problème :/

Carouge10, il y a 11 ans

Bonjour,

Vous n'avez pas exécuter vos reqêtes concernant l'email et l'identifiant.

MehdiWEB, il y a 11 ans

Oui, comme la dit @Carouge10 il faut executer les requetes:

$req->execute();
aStunner, il y a 11 ans

Oui merci à vous je suis aveugle ...