Menu

Requête à une base de données erronée [Résolu/Fermé]

piratabord 13 Messages postés jeudi 9 février 2017Date d'inscription 13 février 2017 Dernière intervention - 13 févr. 2017 à 00:05 - Dernière réponse : piratabord 13 Messages postés jeudi 9 février 2017Date d'inscription 13 février 2017 Dernière intervention
- 13 févr. 2017 à 19:13
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 ;)

Afficher la suite 

4 réponses

jordane45 20546 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 19 avril 2018 Dernière intervention - Modifié par jordane45 le 13/02/2017 à 10:54
+1
Utile
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                                                                 
Cette réponse vous a-t-elle aidé ?  
yg_be 5215 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 18 avril 2018 Dernière intervention - 13 févr. 2017 à 11:33
+1
Utile
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 !
  }
Cette réponse vous a-t-elle aidé ?  
piratabord 13 Messages postés jeudi 9 février 2017Date d'inscription 13 février 2017 Dernière intervention - 13 févr. 2017 à 19:13
0
Utile
ok super, merci beaucoup de votre aide !!! ;)
yg_be 5215 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 18 avril 2018 Dernière intervention - 13 févr. 2017 à 00:43
-1
Utile
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");
                        }