Script connexion et accès variables sessions

Fermé
Betcha - Modifié par Betcha le 28/08/2011 à 17:47
Salut à tous,
J'ai fait un petit script de connexion/déconnexion en PHP pour mon site . Il semble fonctionner.
Néanmoins, je n'arrive pas à accéder aux variables de sessions que je définis en me connectant sur d'autres pages.
En effet, après m'être connecté je teste sur une autre page :

<?php 
session_start(); 
echo $_SESSION['login'] 
?> 

Et j'obtiens une erreur : "Notice: Undefined index: login."

Voilà le script en question, merci d'avance pour votre aide.

<?php session_start(); ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
</head> 
<body> 
<?php 
if(!isset($_SESSION['login']))            /* Si l'utilisateur n'est pas connecté on lui propose le formulaire*/
{ 
  echo "Vous n'etes pas connecte, connectez-vous : "; 
?> 
<form method='post' action="" enctype='multipart/form-data'> 
Pseudo : <input name="login" type="text" id="pseudo" size=12/> 
Mot de passe : <input name="pass" type="password" id="mdp" size=12 /> 
<input type="submit" value="Se connecter" /> 
</form> 
  <?php 
} 
else 
{ 
  $login=$_SESSION['login'];           /*Sinon, on lui signale qu'il est connecté et on lui propose de se déconnecter*/
  echo "Connecte en tant que $login"; 
  ?> 
   
<form method='post' action="" enctype='multipart/form-data'> 
<input type="submit" value="Se deconnectez" /> 
</form> 
<?php session_destroy(); 
} 

try 
{ 
  $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; 
  $bdd = new PDO('mysql:host=localhost;dbname=espace_membre', 'root', '', $pdo_options); 

    if(!empty($_POST)) 
    { 
 if (!empty($_POST['login']) && !empty($_POST['pass'])) 
 { 
  $login = $_POST['login']; 
  $reponse = $bdd->query("SELECT pwd FROM tbl_user WHERE login='". $login ."'"); 
  $donnees = $reponse->fetch(); 
   
  if($donnees['pwd'] != $_POST['pass']) 
  { 
  $erreur = 'Mauvais login / password. Merci de recommencer'; 
  } 
  else 
  { 
  $_SESSION['login']= $_POST['login']; 
  header('location:#');   /* Après s'être connecté,  la variable de session login sera désormais définie. On actualise */
  } 
 } 
 else 
 { 
 $erreur = 'Vous avez oublie de remplir un champ.'; 
 } 
    } 
} 
catch(Exception $e) 
{ 
    die('Erreur : '.$e->getMessage()); 
} 
?> 
Novo denique perniciosoque exemplo idem Gallus ausus est inire flagitium grave, quod Romae cum ultimo dedecore temptasse. 
</body> 
</html> 


P.S. : je suis conscient qu'il y a de grosses failles de sécurité mais j'y viendrai pas la suite ;)
A voir également: