| | apz | Posté le 13/04/2003 @ 22:39 | Petit astucien
116 Messages
| [smile] salut,
en fait je voudrais ajouter une zone membres dans mon site.
je voulais combiner cookie et session :
le cookie sert au login automatique de l'utilisateur quand il reviendra au site.
et depuis ce cookie on cre une session.
mais je n'arrive toujours pas à concretiser.
dans cette partie membre, il y a un menu dont une rubrique boite à messages.
1 - l'utilisateur en demandant de se logger dans son compte doit passer par un formulaire, s'il n'y a pas de session deja enregistree, ni un cookie present sur la machine.
2 - une fois le cookie ($var_cookie) est trouve, une verification du login dans la base des membres est necessaire.
3- la verification a ete passe avec succes, une session est enregistree et l'utilisateur est directement rediriger vers son compte.
4- s'il y a pas un cookie present, et le formulaire est bien rempli (verification avec user_memb.php), un cookie est cree ainsi qu'une session.
mais en cliquant sur la rubrique boite à message, parfois on est dedans avec comme login, celui passe par le formulaire ou cree depuis le cookie, mais parfois je me trouve dans l'espace messagerie avec le message "vous n'etes pas logger" !!!!
parfois tout fonctionne normalement mais la deconnexion ne se fait pas comme il faut : la session est toujours presente, elle n'est pas detruite, mais aussi elle ne permet pas de ce logger directement à la zone membre, il faut passer par le formulaire !
un autre probleme : en ouvrant une autre fenetre IE, et en voulant aller a la zone membre, j'aurais le formulaire au lieu du menu zone membre, meme si le cookie est encore present sur la machine !!! ou un autre message d'erreur s'affiche : Erreur, ce nom d'utilisateur est inexistant.
je crois qu'il reste du travail à faire.
la page login.php :
<?
if ($var_cookie)
{
$login=$var_cookie;
session_start();
session_register('login');
include "user_cook.php";
$id_mem=$HTTP_COOKIE_VARS['id_mem'];
header("locatin: memb.php?login=$login&pass=$pass&id=$id_mem)";
exit;
}
else { session_start();
if (($page == "login"))
{
$pass = md5(stripslashes($pass));
include "user_memb.php";
Header("Location: membre.php?login=login&pass=$pass&id=$checkid");
exit;
}
else
{
echo "<form action=login.php?&page=login method=post><center>
<Table Border=\"1\" CellSpacing=\"0\" CellPadding=\"4\" bordercolor=\"#eeeddd\">
<tr align=center><td width=100>votre login</td><td><input type=text name=login></td></tr>
<tr align=center><td width=100>votre mdp</td><td><input type=password name=pass></td></tr>
<tr><td colspan=2 align=right><input type=submit value=envoyer></td></tr>
</table></form>";
}
}
?>
user_cook.php
<?
$sql = "SELECT id, login, pass FROM $matable WHERE login = '$login'";
$result = mysql_query($sql);
$i = mysql_fetch_array($result);
if ($i == "") {
echo "Erreur, ce nom d'utilisateur est inexistant";
die;
} elseif ($i!= "") {
session_destroy();
$checkid = $i[id];
$id_membre = $i[id];
$login = $i[login];
setcookie('memb', '$login', time()+ 3600);
session_name ('compte');
session_start();
$idsession = session_id();
session_register ('idsession');
session_register ('id_membre');
session_register ('login');
session_register ('pass');
}
?>
user_memb.php
<?
$sql = "SELECT id, login, pass FROM $matable WHERE login = '$login'";
$result = mysql_query($sql);
$i = mysql_fetch_array($result);
if ($i == "") {
echo "Erreur, ce nom d'utilisateur est inexistant";
die;
} elseif ($i!= "") {
if ($pass != md5(stripslashes($i[pass]))) {
echo "Votre mot de passe est incorrect";
die;
}
session_destroy();
$checkid = $i[id];
$id_membre = $i[id];
$login = $i[login];
setcookie('memb', '$login', time()+ 3600);
session_name ('compte');
session_start();
$idsession = session_id();
session_register ('idsession');
session_register ('id_membre');
session_register ('login');
session_register ('pass');
}
?>
Merci.
[smile]
| | | |
| | Haut de la page |
| | Inscrivez-vous ! |
- Posez vos questions
- Résolvez vos problèmes
- Aidez les autres
- Participez et créez vos discussions
- Dialoguez en privé avec d'autres membres
- Suivez vos sujets préférés
- Affichez les signatures des membres
|
|