par
cpmac » 11 avr. 2006, 10:18
Bonjour
J'ai un pb avec des sessions.
Il y a une partie public qui enregistre des commandes. Un session 'list' est utilisé pour controler le passage entre les pages. Cette partie marche correctement.
Mais la partie admin pose des problemes.
La page Index recolte le login et mot de passe.
Elle les envoie par POST à la page login.
Si le login et mot de passe sont correcte une session 'login' est ouvert, puis on arrive à la page menu avec control par 'if (session_is_registered('login'))'.
Ca marche.
On choisit un lien 'editer article'.
On arrive à la page editer_article.php3 avec controlle de session.
Ca marche.
On choisit un article et puis on passe à la page editer_article2.php3 vec controlle de session.
Ca marche
Puis on clique sur OK pour envoyer les changements par 'POST' à la page maj_produit.php3.
La session n'est plus.
J'ai reduit le code au minimum et le résultat est pareil.
editer_produit2.php3
<?
session_start();
if (!session_is_registered('login')) {
header("Location: page_centrale.php3");
}
?>
<center>
<br><br>
<form action="maj_produit.php3" method="post" >
<table border="0">
<tr>
<td>Article: </td>
<td>
<input type=Submit value=Ok></form>
<?
if (session_is_registered('login')) {
echo "registered";
}
?>
</td>
</tr>
</table>
</form>
La page maj_produit.php3 (changer de l'origine pour demontrer le phenomene)
<?
session_start();
if (!session_is_registered('login')) {
echo "registered";
}else{echo "not registered";
}
?>
Sur la page editer_produit2.php3
On peut voir 'registered' à coté du bouton OK.
Sur la page maj_produit.php3 on voit 'not registered'.
Le code d'origine nous envoyait à page login, comme il n'a plus de session.
Purquoi la session est partie?