Mon authentification PHP5 ne fonctionne pas.
Aprexia
Messages postés
101
Statut
Membre
-
dariumis Messages postés 583 Statut Membre -
dariumis Messages postés 583 Statut Membre -
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
- Code a 6 chiffres application d'authentification instagram - Forum Instagram
- Authentification snapchat numéro changer ✓ - Forum Snapchat
- J'ai perdu mon code d'authentification discord - Forum Discord
- Désactiver l'authentification à deux facteurs instagram sans se connecter - 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??