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   -
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

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    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
  2. 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 !
      }
    1
  3. piratabord Messages postés 163 Date d'inscription   Statut Membre Dernière intervention   58
     
    ok super, merci beaucoup de votre aide !!! ;)
    0
  4. 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");
                            }
    -1