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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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().