J'ai mis en place une connexion pdo et la passe en tant que variable dans une fonction. Tout cela fonctionne très bien et la fonction retourne correctement. Si j'exécute la fonction dans une instruction conditionnelle avec la variable PDO et un nom qui s'exécute correctement - si le nom est dans la base de données, il résonne correctement sinon il résonne aussi correctement. Ce que je veux faire est de passer la valeur d'un post de formulaire à la fonction afin qu'elle vérifie si elle existe dans la base de données. Voici mon code:
La fonction vérifie si le nombre de colonnes est un.
function user_exists($pdo, $username) {
$stmt = $pdo->prepare('SELECT COUNT(uid) FROM users WHERE username = :username');
$stmt->execute(['username' => $username]);
$result = $stmt->fetchColumn();
return ($result == 1);
}
Si l'utilisateur admin existe dans la base de données echo 'exists' - Juste pour le test.
if(user_exists($pdo,'admin') == true) {
echo "exists";
} else {
echo "doesnt exist";
}
Vérifie des deux champs ont été saisis alors je veux vérifier si le nom d'utilisateur est entré dans la base de données, mais je fais quelque chose de mal.
if(!empty($_POST) === true) {
$username = $_POST['username'];
$pwood = $_POST['password'];
if(empty($username) === true || empty($pwood) === true) {
echo "You need to enter a username and password";
} else if (user_exists($pdo,$_POST['username']) == false){
echo 'We can\'t find that username. Please try again or register';
}
}
cette ligne if (! Empty ($ _ POST) === true) { ' – Akintunde007
Merci beaucoup parfait . Je ne suis pas sûr de savoir pourquoi. La valeur de post n'est pas vide .... –
@GrumpyCrouton, l'utilisation de variables globales est * non * recommandée. Voir https://stackoverflow.com/questions/5166087/php-global-in-functions ou https://stackoverflow.com/questions/1557787/are-global-variables-in-php-considered-bad-practice-if -so-why –