Requête à une base de données erronée

Résolu/Fermé
Signaler
Messages postés
150
Date d'inscription
jeudi 9 février 2017
Statut
Membre
Dernière intervention
30 janvier 2019
-
Messages postés
150
Date d'inscription
jeudi 9 février 2017
Statut
Membre
Dernière intervention
30 janvier 2019
-
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 :

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

Messages postés
34142
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 novembre 2021
3 847
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                                                                 
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41989 internautes nous ont dit merci ce mois-ci

Messages postés
17684
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 novembre 2021
947
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 !
  }
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41989 internautes nous ont dit merci ce mois-ci

Messages postés
150
Date d'inscription
jeudi 9 février 2017
Statut
Membre
Dernière intervention
30 janvier 2019
53
ok super, merci beaucoup de votre aide !!! ;)
Messages postés
17684
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 novembre 2021
947
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");
                        }