Problème avec les $_SESSION
Bonjour,
Je tente de créer un espace administration sur un blog que je développe, mais je me retrouve face a un problème avec les sessions.
J'ai mon formulaire pour entrez le pseudo et me mot de passe dans le fichier connexion.php :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| if (! mysql_select_db($database))
{
echo "Impossible de sélectionner la base de données !";
}
// Definition de la fonction auth()
function auth()
{
print"<html><body>";
print"<form name='form' method='post' action='listNews.php'>";
print"<table><tr><td align='center'><font color='#0256AA' size='2' face='Verdana'><b>Login :</font></b>";
print"</td></tr><tr><td align='center'><input type='text' name='login' size='15'></td></tr><tr>";
print"<td align='center'><font color='#0256AA' size='2' face='Verdana'><b>Password :</font></b></td></tr><tr>";
print"<td align='center'><input type='password' name='mot_de_passe' size='15'></td></tr><tr><td align='center'><br>";
print"<input type='submit' name='submit' value='Entrez'></td></tr></table></form>";
print"</body></html>";
exit;
}
if( !isset($login) && !isset($mot_de_passe) )
{
// Ouverture de la fonction auth()
auth();
}
else
{
// Requete SQL
$query = "Select count(*) From admin where PSEUDO = '".$login."' and MDP = '".$mot_de_passe."'";
$resultat = mysql_query($query);
if($resultat != 0)
{
// Ici la page de redirection si l'autentification est réussie
print"<script>top.location.replace('authentification.php');</script>";
}
else
{
// Ici le message d'alerte si l'autentification n'est pas réussie
print"alert('Login ou password invalide.');";
// Rappel de la fonction d'identification
auth();
}
}
?> |
L'authentification a lieu dans authentification.php :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| if($_POST["login"] != "" && $_POST["mot_de_passe"] != "")
{
$login = $_POST["login"] ;
$pass = $_POST["mot_de_passe"] ;
//connexion au serveur
$cnx = mysql_connect($host,$pseudo,$password) ;
//sélection de la base de données
$db = mysql_select_db($database) ;
//création de la requête SQL
$sql = "SELECT * FROM admin WHERE PSEUDO= '".$login."' AND MDP= '".$pass."'" ;
//exécution de la requête SQL
$requete = @mysql_query($sql, $cnx) or die($sql."<br>".mysql_error()) ;
//on récupère le résultat
$result = mysql_fetch_object($requete) ;
//si la requête s'est bien passée
if(is_object($result))
{
//enregistrement d'une variable de session, ici le login de l'utilisateur
$_SESSION["login"] = $login ;
header("Location: listNews.php") ;
}//fin if
//sinon on retourne à la page d'inscription
else
{
header("Location: connexion.php") ;
}
}//fin if
//sinon on retourne à la page d'inscription
else
{
header("Location: connexion.php") ;
}//fin si |
et si l'authentification est bonne, l'utilisateur est redirigé vers listNews.php :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| <?php
// Variables de votre base à renseigner
$host = "localhost";
$pseudo = "root";
$password = "";
$database = "test";
$connection = mysql_connect($host,$pseudo,$password) or die ('Erreur Connection'); // Ouverture de la Base
$select_db = mysql_select_db($database)or die ('Base inexistante');
if(!isset($_SESSION["login"]) || $_SESSION["login"] == "")
{
echo "Problème de connection";
//header("Location: connexion.php") ;
}//fin if
else
{
echo("<pre>") ;
print_r($_SESSION) ;
echo("</pre>") ;
echo("Votre identifiant de session est ". $_SESSION["login"] ."<br/>") ;
}
?> |
Mais lorsque l'on arrive sur cette page, il s'affiche "Problème de connection" je ne comprend vraiment pas pourquoi il ne trouve pas ma variable de session.
J’espère que vous pourrez m'aidez, Merci d'avance
PS: Avant tout code pour les trois pages j'ai placé le session_start().