Problème d'identification malgré session démarrée

Maxi
Invité n'ayant pas de compte PHPfrance

26 avr. 2005, 18:45

Salut,
Voila le code de mon espace membre index.php :
<?php session_start(); ?>
<html>  
<body>  
...  
<?php  
if(isset($_SESSION['identifiant']))  
{  
include ('contenu_protege.php');  
}  
else  
{  
if($ident!="right")  
{  
include ('login.php');  
}  
else  
{  
include ('contenu_protege.php');  
}  
}  
?>
...
</body>
</html>
La partie php est sensée afficher soit le formulaire d'identification si on est pas loggué, soit le contenu protégé si l'identification est correcte ou si une session a débuté.

Voici le script ident.php chargé de traiter le login / mot de passe pour identification:
<?php
if (empty( $_POST['identifiant']) || empty( $_POST['motdepasse']))
{
header("Location: index.php?ident=wrong"); 
}
else
{
require ('inc/config.php'); 
mysql_connect($serveur,$login,$pass); 
mysql_select_db ($base); 
$sql = "select pwd from membres where login='".$_POST['identifiant']."'"; 
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
$data = mysql_fetch_assoc($req); 
if($data['pwd'] == $_POST['motdepasse']) 
{ 
$expire = 365*24*3600; 
setcookie("identifiant",$_POST['identifiant'],time()+$expire); 
setcookie("motdepasse",$_POST['motdepasse'],time()+$expire); 
$_SESSION['identifiant'] = $identifiant;
header("Location: index.php?id&ident=right");
}
else
{
header("Location: index.php?ident=wrong"); 
}
}
?>
Tout fonctionne, sauf lorsque je quitte la page index avec contenu protégé et que je souhaite revenir dessus, je suis obligé de m'identifier à nouveau (alors qu'en théorie la session est ouverte).

Pourquoi ?

Mammouth du PHP | 19672 Messages

26 avr. 2005, 18:48

Probablement parce que tu passes par des pages qui ne commencent pas par session_start() ... et la session est perdue.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Maxi
Invité n'ayant pas de compte PHPfrance

26 avr. 2005, 19:50

Evidemment :oops: . Merci Cyrano

Mammouth du PHP | 19672 Messages

26 avr. 2005, 19:53

Pas de quoi, c'est le genre d'erreur que tout le monde a fait un jour, moi compris bien entendu ;)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: