Bonjour,
Voila je rencontre un petit problème avec mon code j'ai une erreur fatale lorsque j'essaie de vérifier la l'existance d'un email déjà présent dans ma BDD.
Fatal error: Uncaught Error: Call to a member function prepare() on string in C:\xampp\htdocs\website\users.php:32 Stack trace: #0 {main} thrown in C:\xampp\htdocs\website\users.php on line 32
La ligne 32 est celle-ci ---> $req = $dbb->prepare("SELECT * FROM users WHERE email = :email");
if (empty($errors)) {
$req = $dbb->prepare("SELECT * FROM users WHERE email = :email");
$req->bindValue(':email', $email, PDO::PARAM_STR);
$req->execute();
Merci d'avance,
Bonjour,
Cela veut dire que la connexion à PDO ne s'est pas fait.
Peut-on voir cette connexion (en cachant tes identifiant) ?
Ci-dessous le code, les identifiants sont inclus dans une page qui est inclue en début de fichier. Lorsque je teste la connection à la BDD je n'ai pas de message d'erreur.
<?php
require_once('bdd.php');
$titre = 'Insription';
if (!empty($_POST)) {
$post = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);
extract($_POST);
$errors = [];
if (empty($name) || strlen($name) < 3) {
array_push($errors, 'Le nom est requis et doit faire au moins trois caractères.');
}
if (empty($email)) {
array_push($errors, 'L\'adresse email n\'est pas valide.');
} elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
array_push($errors, 'Format de l\'adresse email incorrect');
}
if (empty($password) || strlen($password) < 6) {
array_push($errors, 'Mot de passe requis d\'au moins 6 caractères.');
}
if (empty($register_confirm)) {
array_push($errors, 'Confirmation du mot de passe requise.');
} elseif (($register_confirm != $password)) {
array_push($errors, 'Invalidation - Les mots de passe ne correspondent pas');
}
if (empty($errors)) {
$req = $dbb->prepare("SELECT * FROM users WHERE email = :email");
$req->bindValue(':email', $email, PDO::PARAM_STR);
$req->execute();
if ($req->rowCount() > 0) {
array_push($errors, 'Un utilisateur est déjà enregistré avec cet email.');
}
if (empty($errors)) {
$req = $dbb->prepare('INSERT INTO users(name, email, password, create_date) VALUES (:name, :email, :password, NOW()');
$req->binValue(':name', $name, PDO::PARAM_STR);
$req->binValue(':email', $email, PDO::PARAM_STR);
$req->binValue(':password', password_hash($password, PASSWORD_ARGON2I), PDO::PARAM_STR);
$req->execute();
}
}
}
Merci, erreur dans mon code, à savoir la page qui est inclue en début de fichier, la variable était $ddb à la place de $dbb
Encore merci