Mon authentification PHP5 ne fonctionne pas.
Aprexia
Messages postés
82
Date d'inscription
Statut
Membre
Dernière intervention
-
dariumis Messages postés 571 Date d'inscription Statut Membre Dernière intervention -
dariumis Messages postés 571 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Lorsque je me connecte grâce à mon formulaire d'authentification, cela fonctionne.
Lorsque je me déconnecte, cela fonctionne aussi.
Mais lorsque je clique sur page suivante, je suis déconnecté.
print_r($_SESSION['Auth']) me montre que ma variable de session reste vide. Ce qui me parait bizarre puisque lorsqu'elle est vérifiée dans isLogged() elle est bien remplie.
Comment se fait-il que cette variable se réinitialise à chaque chargement de mon index?
model/User.php
controller.php
view.php
et enfin, index.php
Lorsque je me connecte grâce à mon formulaire d'authentification, cela fonctionne.
Lorsque je me déconnecte, cela fonctionne aussi.
Mais lorsque je clique sur page suivante, je suis déconnecté.
print_r($_SESSION['Auth']) me montre que ma variable de session reste vide. Ce qui me parait bizarre puisque lorsqu'elle est vérifiée dans isLogged() elle est bien remplie.
Comment se fait-il que cette variable se réinitialise à chaque chargement de mon index?
model/User.php
static function isLogged(){ if(isset($_SESSION['Auth']) && isset($_SESSION['Auth']['login'])){ extract($_SESSION['Auth']); try{ $Mysql = new Mysql(); $Resulats = $Mysql->TabResSQL("SELECT * FROM users WHERE login='".$login."' AND pass='".md5($pass)."'"); foreach ($Resulats as $Valeur) { return true; } return false; } catch (MySQLExeption $e) { echo $e -> RetourneErreur(); } } return false; } static function levelZone(){ if(isset($_SESSION['Auth']) and isset($_SESSION['Auth']['login']) and isset($_SESSION['Auth']['pass'])){ extract($_SESSION['Auth']); try{ $Mysql = new Mysql(); $Resulats = $Mysql->TabResSQL("SELECT login, pass, level FROM users WHERE login='".$login."' AND pass='".md5($pass)."'"); foreach ($Resulats as $Valeur) { return $Valeur['level']; } return false; } catch (MySQLExeption $e) { echo $e -> RetourneErreur(); } } return false; }
controller.php
function verifAuth(){ if(!isset($_SESSION['Auth'])){ echo '1: $_SESSION[\'Auth\'] n\'existe pas <br/>'; initAuth(); return false; } else{ print_r($_SESSION['Auth']); if($_SESSION['Auth']['login'] != ''){ echo 'Connexion 2. <br/>'; return true; } else{ if(!isset($_POST['login']) || !isset($_POST['pass'])){ echo 'Veuillez entrer un login et un mot de passe. <br/>'; return false; } else{ $_SESSION['Auth']['login'] = $_POST['login']; $_SESSION['Auth']['pass'] = $_POST['pass']; if(User::isLogged()){ switch(User::levelZone()){ case 0: $_SESSION['Auth']['level'] = 'Membre'; break; case 1: $_SESSION['Auth']['level'] = 'Administrateur'; break; } foreach(User::select($_SESSION['Auth']['login']) as $User){ $_SESSION['Auth']['pseudo'] = $User['pseudo']; } echo 'Connexion 1. <br/>'; return true; } else{ echo 'Le login et le mot de passe ne correspondent pas. <br/>'; initAuth(); return false; } } } } } function initAuth (){ $_SESSION['Auth'] = array( "login" =>'', "pass" =>'', "pseudo" =>'', "level" =>'' ); } function logOut (){ session_destroy(); header('location: '.getServerRoot().'/index.php'); exit; }
view.php
<?php if (!verifAuth()){ ?> <h1>Connexion</h1> <form method="post" action="<?php getIncludesFolder()."view/view.php"?>"> <p>Login: <input type="text" name="login"></p> <p>mot de passe: <input type="password" name="pass"></p> <p><input type="submit" name="connexion" value="Connexion"></p> </form> <?php } else{ require(getThemeCourant().'/index.php'); } ?>
et enfin, index.php
<?php include('config.php'); if(!isset($_SESSION)){ echo'Pas de session <br/>'; session_start(); } include(getIncludesFolder().'controller/'.'controller.php'); include(getIncludesFolder().'view/'.'view.php'); ?>
A voir également:
- Mon authentification PHP5 ne fonctionne pas.
- Double authentification google - Guide
- Désactiver l'authentification à deux facteurs instagram sans se connecter ✓ - Forum Instagram
- Application d'authentification facebook - Guide
- J'ai perdu mon code d'authentification discord - Forum Discord
- Authentification transcash - Forum Instagram
3 réponses
j'ai pas lu tous tes code, mais tu pense bien à démarrer tes session: session_start en première ligne de code??