Requête à une base de données erronée
Résolu
piratabord
Messages postés
163
Date d'inscription
Statut
Membre
Dernière intervention
-
piratabord Messages postés 163 Date d'inscription Statut Membre Dernière intervention -
piratabord Messages postés 163 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voici ce que je veux faire :
J'ai une page html que je ne veux afficher uniquement si $_SESSION['id'] est "isset". Pour ça, voici le code que j'ai :
Mais, en plus de ça, je veux savoir si le joueur en question a activé son compte ou pas. Si il l'a fait, on affiche la page, sinon, on le redirige vers index.php. Voici le code :
Mon problème, est que je n'ai aucune idée de comment il faut faire pour vérifier à la fois si la session est isset, et si le compte a été validé...
C'est certainement tout bête, mais si quelqu'un a une solution...
Merci d'avance pour votre aide ;)
Voici ce que je veux faire :
J'ai une page html que je ne veux afficher uniquement si $_SESSION['id'] est "isset". Pour ça, voici le code que j'ai :
if(isset($_SESSION['id']))
{
$requser = $bdd->prepare("SELECT * FROM joueurs WHERE id = ?");
$requser->execute(array($_SESSION['id']));
$user = $requser->fetch();
//on affiche la page html
}
Mais, en plus de ça, je veux savoir si le joueur en question a activé son compte ou pas. Si il l'a fait, on affiche la page, sinon, on le redirige vers index.php. Voici le code :
if(isset($_SESSION['id']))
{
$requser = $bdd->prepare("SELECT * FROM joueurs WHERE id = ?");
$requser->execute(array($_SESSION['id']));
$user = $requser->fetch();
$requete = $bdd->query("SELECT * FROM joueurs WHERE id =".$_SESSION['id']"");
while($data = $requete->fetch())
{
$etat = $data['activation'];
if($etat == 1)
{
//On affiche la page
}
else
{
header("Location: index.php");
}
}
}
Mon problème, est que je n'ai aucune idée de comment il faut faire pour vérifier à la fois si la session est isset, et si le compte a été validé...
C'est certainement tout bête, mais si quelqu'un a une solution...
Merci d'avance pour votre aide ;)
4 réponses
-
Bonjour,
Voici ton code corrigé et remis en forme//TOUJOURS récupérer PROPREMENT les variables AVANT de les utiliser $id = isset($_SESSION['id']) ? $_SESSION['id'] : NULL; if($id){ $sql = "SELECT * FROM joueurs WHERE id = :id "; $datas = array(':id'=>$id); try{ $requser = $bdd->prepare($sql); $requser->execute($datas); $user = $requser->fetch(); }catch (Exception $e){ //en cas d'erreur dans la requete echo " Error ! ".$e->getMessage(); } $etat = !empty($user) ? $user['activation'] : 0; if($etat == 1){ //On affiche la page } else { header("Location: index.php"); exit(); //toujours faire un exit apres une redirection ! } }
Cordialement,
Jordane -
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
suggestion:$id = isset($_SESSION['id']) ? $_SESSION['id'] : NULL; if($id){ $sql = "SELECT * FROM joueurs WHERE id = :id "; $datas = array(':id'=>$id); try{ $requser = $bdd->prepare($sql); $requser->execute($datas); $user = $requser->fetch(); }catch (Exception $e){ //en cas d'erreur dans la requete echo " Error ! ".$e->getMessage(); } $etat = !empty($user) ? $user['activation'] : 0; if($etat == 1){ //On affiche la page } else { header("Location: index.php"); exit(); //toujours faire un exit apres une redirection ! } } else { header("Location: index.php"); exit(); //toujours faire un exit apres une redirection ! } -
ok super, merci beaucoup de votre aide !!! ;)
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonsoir, je propose:if(isset($_SESSION['id'])) { $requser = $bdd->prepare("SELECT * FROM joueurs WHERE id = ?"); $requser->execute(array($_SESSION['id'])); $user = $requser->fetch(); $requete = $bdd->query("SELECT * FROM joueurs WHERE id =".$_SESSION['id']""); $data = $requete->fetch(); $etat = $data['activation']; if($etat == 1) { //On affiche la page } else { header("Location: index.php"); } } else { header("Location: index.php"); }