Erreur 500 sur PHP
devdeb22
Messages postés
28
Date d'inscription
Statut
Membre
Dernière intervention
-
Lord Zero Messages postés 459 Date d'inscription Statut Membre Dernière intervention -
Lord Zero Messages postés 459 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un mini code Php où il y une erreur interne mais que je n'arrive pas à identifier.
Voici mon code :
Dans ce code je commence par appeler une fichier qui contient toutes les fonction.
Puis je vérifie si l'utilisateur est connecté (depuis les cookies).
Si il n'est pas logué, dans ce cas il doit saisir son identifiant et mp dans un formulaire.
Je vérifie que le champs password et username sont non-vide.
Si oui, alors j'appel la base de données
Je fais une requette préparé où je prends
Le "username"
Le "subscribed"
Puis ensuite je verifie si le password, correspond et subscrebed =1
si oui alors je dirige l'utilisateur vers une page qui s'appel account1.php
si subscrebed =0
Je dirige l'utilisateur vers une page qui s'appel account2.php
Sinon je lui affiche un message d'erreur.
Je n'arrive pas à identifier mon erreur.
J'ai un mini code Php où il y une erreur interne mais que je n'arrive pas à identifier.
Voici mon code :
<?php
require_once 'inc/functions.php';
reconnect_from_cookie();
if(isset($_SESSION['auth'])){
header('Location: account.php');
exit();
}
if(!empty($_POST) && !empty($_POST['username']) && !empty($_POST['password'])){
require_once 'inc/db.php';
$req = $pdo->prepare('SELECT * FROM users WHERE (username = :username OR email = :username) AND confirmed_at IS NOT NULL');
$req->execute(['username' => $_POST['username']],['subscribed' => $_POST['subscribed']]);
$user = $req->fetch();
if(password_verify($_POST['password'], $user->password) and $_POST['subscribed']=1 ){
$_SESSION['auth'] = $user;
$_SESSION['flash']['success'] = 'Vous êtes maintenant connecté';
header('Location: account.php');
exit();
}
if(password_verify($_POST['password'], $user->password) and $_POST['subscribed']=0 ){
$_SESSION['auth'] = $user;
$_SESSION['flash']['success'] = 'Vous êtes maintenant connecté';
header('Location: account2.php');
exit();
}
else{
$_SESSION['flash']['danger'] = 'Identifiant ou mot de passe incorrecte';
}
}
?>
Dans ce code je commence par appeler une fichier qui contient toutes les fonction.
Puis je vérifie si l'utilisateur est connecté (depuis les cookies).
Si il n'est pas logué, dans ce cas il doit saisir son identifiant et mp dans un formulaire.
Je vérifie que le champs password et username sont non-vide.
Si oui, alors j'appel la base de données
Je fais une requette préparé où je prends
Le "username"
Le "subscribed"
Puis ensuite je verifie si le password, correspond et subscrebed =1
si oui alors je dirige l'utilisateur vers une page qui s'appel account1.php
si subscrebed =0
Je dirige l'utilisateur vers une page qui s'appel account2.php
Sinon je lui affiche un message d'erreur.
Je n'arrive pas à identifier mon erreur.
A voir également:
- Erreur 500 sur PHP
- Erreur 500 - Guide
- Formate pour taxer client 500€ ✓ - Forum Consommation & Internet
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
- Erreur t32 ✓ - Forum Livebox
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
2 réponses
Hello !
C'est ta requête préparée qui est fausse.
Le fait que tu cherches un username et un mail par rapport à une même variable ne me dérange pas (:username), mais je pense que tu as mal écrit les paramètres. Pourquoi subscribed ? Il n'est pas dans la requête.
Try :
ou
ou
Cdt.
C'est ta requête préparée qui est fausse.
$req = $pdo->prepare('SELECT * FROM users WHERE (username = :username OR email = :username) AND confirmed_at IS NOT NULL'); $req->execute(['username' => $_POST['username']],['subscribed' => $_POST['subscribed']]);
Le fait que tu cherches un username et un mail par rapport à une même variable ne me dérange pas (:username), mais je pense que tu as mal écrit les paramètres. Pourquoi subscribed ? Il n'est pas dans la requête.
Try :
$req->execute([':username' => $_POST['username']]);
ou
$req->execute(array(':username' => $_POST['username']));
ou
$req->bindParam(':username', $_POST['username']); $req->execute();
Cdt.
Et en plus, il manque un = dans la comparaison