probleme de session

Répondre
raka
le 25/06/2005 à 17:16
raka
yop tlm,

Donc voila j'ai commencé a m'initier au session. j'ai crée 4 fichier .php

index.php
verif.php
index_membre.php
logout.php

Lorsque j'entre le login et le mot de passe il y a une redirection vers la page index_membre avec un message de bienvenue plus le login de l'utilisateur. Seulement j'ai une erreur, il me dit que la variable est indéfinie. Je ne comprend pas car j'ai démarrer la session pour chacune des page, donc il devrait reconnaitre cette variable.


Voici mon code:

index.php
<?session_start(); // On démarre la session?>
<html>
<head>
<title>page de connexion</title>
</head>
<body>
<form method="post" action="verif.php">
<table border="0" width="372" align="center"><tr><td width="192"><b>Votre login :</b></td>
<td width="170"><input type="text" name="login"></td></tr><tr><td width="192"><b>Votre mot de passe :</b></td>
<td width="170"><input type="password" name="password"></td></tr><tr><td colspan="2" width="366">
<input type="submit" name="submit" value="Entrer !!">
</td></tr></table></form>
</body>
</html>





verif.php
<?

$login_sql ="tonwebmaster"; // On défini le login (pour l'exemple) que l'on a récupéré par exemple de mysql ou autre ...
$password_sql ="monpass"; // On défini le mot de passe pour l'exemple
//$login=$_POST['login'];
//$password=$_POST['password'];

if ($_POST['login']=="$login_sql" && $_POST['password']=="$password_sql"){ // On compare la valeur tapée par l'utilisateur ($login) avec celle enregistrée ($login_sql)

session_start(); // On démarre la session
session_register("login"); // On enregistre le login (attention, les variables de session n'ont pas de signe dollar $)
session_register("password"); // On enregistre le mot de passe
header("location: index_membre.php"); // Ensuite on redirige la page actuelle vers l'espace membre
}
else{echo "Erreur d'identification, veuillez entrez un login et un mot de passe valide !";} // Sinon l'identification n'est pas réussite
?>






index_membre.php:
<?
session_start(); // on démarre la session
if (!session_is_registered("password")){ // On vérifie si la session est bien crée
echo "Erreur : vous devez vous identifiez pour avoir accès à cette espace !"; // Message d'erreur
exit(); // On arrêtte l'exécution du script (donc tout ce qui est en dessous ne sera pas affiché)
}
// Contenu de votre espace membre : ---------------------------------------------------------------------------------------------
echo "Bienvenue".$login."sur l'espace membre !"; // Message de bienvenue
echo "<a href=logout.php>Vous déconnectez ?!</a><br>"; // Lien permettant la déconnexion
?>





logout.php:
<?
session_start(); // on démarre la session
session_unset(); // On efface toutes les variables de la session
session_destroy(); // Puis on détruit la session

header("location: index.php") ; // On renvoie ensuite sur la page d'identification
?>
zebden
le 25/06/2005 à 17:34
zebden
session_register est obsolète si les variables globales sont à OFF dans le php.ini.

Préfère l'utilisation du tableau $_SESSION ( ou $HTTP_SESSION_VARS), donc du coup session_is_registered est à virer aussi à remplacer par isset($_SESSSION['var']).

Tiens un espace membre au gout du jour:
http://www.lephpfacile.com/howto/index.php?p=10
zebdinou pour les intimes / Blog : http://www.zebden.fr
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours