[php/ mysql] Authentification: pb de session

bon j ai reutilise le code :

le fichier extranet.php:


  session_start(); 
  if((isset($_POST['login']))&&(isset($_POST['password']))) 
  { 
     // Variable : 
     $login = $_POST['login']; 
     $password = $_POST['password']; 
	 echo $login;
	 
	 // Connection SQL :   
     $db = mysql_connect('localhost', 'root', '');   
     mysql_select_db('extranet',$db);   

     
     //Requete : 
     $sql_login = "SELECT * FROM extranet WHERE Login='$login'"; 
     $req_login = mysql_query($sql_login); 
      
     
     // Validation : 
     while($data = mysql_fetch_array($req_login)) 
     { 
         if($password==$data['mdp']) 
         { 
             // Login et password bon : 
             $_SESSION['login'] = $login; // Création de la variable de session ['login']
		    
             {header("Location: ".$data['emplacement']); // redirection sur l'affichage ! 
			 exit; };
			 
         } 
         else 
         { 
             // Mot de passe Faux ! 
             echo 'Login impossible, veuillez verifier votre Login ou Password '; 
     		 {header("Location: extranet.php"); 
	 		 exit; };
         } 
     } 
     mysql_close();      

  } 

puis 1 fichier present ds la base (avec la variable emplacement):


session_start(); 
print_r($_SESSION);
  if(isset($_SESSION['login'])) 
   { 
     echo 'Vous êtes logger !<br>'; 
     echo 'Login : '.$_SESSION['login']; 
   }
   else
   { 
     echo 'Vous n\'êtes pas logger<br>'; 
	include ("extranet.php"); 
   } 



// on affiche un lien pour terminer une session
print '<a href="logout.php">Détruire la session[/url]<br>';

et enfin le logout.php


session_start();// on démarre la session

// Pour le fun on supprime une variable de session
session_unregister("login"); 

// maintenant on détruit la session en cours, je vous conseil d'utiliser unset et destroy, ce n'est pas obligatoire, mais plus sécurisé dirons nous.

session_unset(); // on efface toutes les variables de session
session_destroy(); // on detruit la session en cours.

// On renvoi sur la page afficher pour voir le résultat, uniquement pour ce test, si tout s'est effectué normalement, le login et password ne s'afficheront pas, car ils n'éxistent plus
header("location: extranet.php") ;

mais:
Array ( ) Vous n’êtes pas logger
Notice: A session had already been started - ignoring session_start() in d:\site\site_florent\extranet.php on line 19
(ligne 19 : c est la session_start() )

de plus qd je mets un login et mdp faux…ben il me le reecris en dessous du formulaire…et je vois pas trop pk d ailleurs

j ai peut etre trop modifie ton code…

Tu lit pas tous ce que je dit :
session_register(“login”), ne marche pas
fait
$_SESSION[‘login’] = $tavaraible …

ms meme avec $_SESSION[‘login’] = $tavaraible ca ne marche pas

Tu as essayer mon code ?

oui et ton code marche tres bien

sauf qd je mets au lieu de index.php


         if($password==$infos['mdp']) 
         { 
             // Login et password bon : 
             $_SESSION['login'] = $login; // Création de la variable de session ['login'] 
             header("Location: ".$infos['emplacement']); // redirection sur l affichage ! 

au niveau de la redirection de l affichage: on diraut que mon pb survient qd il chercher le lien dans la base et affiche l objet du lien et la, la session est completement perdue

C’est quoi qui en dans $infos[‘emplacement’] ?

une donnee du style : http://www.xxxxxx.fr/dfdf/dffdf.php

en plus j ai voulu rajouter un lien pour faire une deconnexion de session:


session_start();// on démarre la session

// Pour le fun on supprime une variable de session
session_unregister("login"); 

// maintenant on détruit la session en cours, je vous conseil d'utiliser unset et destroy, ce n'est pas obligatoire, mais plus sécurisé dirons nous.

session_unset(); // on efface toutes les variables de session
session_destroy(); // on detruit la session en cours.

// On renvoi sur la page afficher pour voir le résultat, uniquement pour ce test, si tout s'est effectué normalement, le login et password ne s'afficheront pas, car ils n'éxistent plus
{header('location: formlogin.php') ;
exit;};

MAIS il se deconnecte (enfin je pense) qd on appui sur le bouton ms il devrait m afficher le formulaire or il m affiche “Vous n’êtes pas logger
Vous pouvez vous logger ici LoginDétruire la session”

et a partir de la c un fonctionnement en boucle j ai l impression: je clique sur login, il me renvoi sur formlogin.php, qui lui considere qu il n y a pas de login mis ds le formulaire dc me renvoi automatiquement(// Pas de Variable de Login - Redirection : ) vers index.php

en mettant en commentaire la derniere partie du code ca a casse la boucle et ca marche

et puis je sais pas pk…ms je suis a 99% non logguer…meme en mettant les bon login et mot de passe

j ai mis a jour le 1er post…

ms je comprends tt a l heur eca marchait bien i dentification et ben maintennant ca veut plus marcher avec le index.php…
peut etre faut il attendre un moment avt que ca remarche a cause des sessions?

tien ca remarche…ms a mon avis y a un temps ds les sessions parce que ca me fait un peu n importe koi:

je change le code (j ai remis “infos[‘emplacement’]”), ben il ca marche plus du tout: il se loggue pas

bon

snif

svp!!!

comment ca se fait qu il perde toute la session qd il ouvre une page dt son lien est contenu dans la base de donnee?

svp!!

plus personne veut m aider ou personne ne sait?

Re fait voir ton code et l’erreur stp
car je sais plus quel partit marche ou pas

si c bon tout marche il suffisat de rajouter apres:
$infos[‘emplacement’] .’?’.session_name().’=’.session_id()

et comme ca ca marche

par contre je compte creer un compte administrateur, qui aura droit a utiliser d autres pages (comme la page qui lui permettra d ajouter un utilisateur , en supprimer…)
comment limiter l utilisation de ces pages uniquement a l administrateur?