session [resolu] - PHP - Programmation
Marsh Posté le 01-01-2003 à 15:42:01
Tu fais bien un session_unregister au délog ?
Marsh Posté le 01-01-2003 à 16:12:38
jlai mis en session_unregister("pseudo" ) ca change rien
Marsh Posté le 01-01-2003 à 16:14:49
Sielfried a écrit : Essaie de faire un session_unset avant. |
Marsh Posté le 01-01-2003 à 16:17:30
T'oublies pas le session_start au dessus ? (on sait jamais )
Marsh Posté le 01-01-2003 à 16:23:35
la deco marche bien hein
ca veut juste pas m'afficher que je suis logger ou pas
Marsh Posté le 01-01-2003 à 16:28:15
chacal_one333 a écrit : la deco marche bien hein |
Ben wai mais c'est session_is_register qui renvoie vrai alors qu'elle devrait pas, donc a priori cai un pb de session
Marsh Posté le 01-01-2003 à 16:29:44
Code :
|
Marsh Posté le 01-01-2003 à 16:34:04
chacal_one333 a écrit :
|
session_unregister avant session_destroy.
Je pense que là ce sera bon.
Marsh Posté le 01-01-2003 à 16:36:23
chacal_one333 a écrit : You're the n° 3897 clicks and you're logged as |
Fait voir tout ton code avant les tests de session
Marsh Posté le 01-01-2003 à 16:40:29
en fait je vient de voir un bug !
On peu se logger sous n'importe quel nom
bon, on a pas les droit d'acces c'est vrai mais ca marque quand meme "you're logged as xxx"
par exemple je me log sous le nom "fretyreg" sans donner de pass, ca va me dire que j'ai fait une erreur comme prevue, mais ca m'affichera qd meme
"you're logged as fretyreg
Voila mon code de login
Je pensait qu'il ne ferait pas la connection avec le exit; mais aparement si
Code :
|
Marsh Posté le 01-01-2003 à 16:54:44
J'aurais mis
if (!$row) |
au lieu de
if (!$row['pseudo']) |
mais bon ça revient peut-être au même.
Sinon à mon avis tu devrais distinguer le nom de tes variables sessions et celles utilisées quand qqun se log. Appelle plutôt ta variable session $sess_pseudo. Ou alors dès que tu parles de la variable session tu mets _SESSION['nom_de_ta_session'].
Il est où le code de ton premier post par rapport à tout ça ? Juste en dessous ? Dans munu_principal.php ?
Marsh Posté le 01-01-2003 à 16:59:07
en fait je vient d'apprendre les session et j'ai rajouter ca
$sess_name=session_pseudo();
$sess_id=session_id();
justee au cas ou ca servirai plust tard
mais jmen sert pas la, ca va me servir a quoi ca?
en fait a chak nouvelle page je fait un session_register("pseudo" )
donc logikement avec le is_registered il devrait bien comprendre le truc
Marsh Posté le 01-01-2003 à 16:59:22
Sielfried a écrit : J'aurais mis
au lieu de
pareil |
Marsh Posté le 01-01-2003 à 17:00:56
en fait si je comprend ( ) il faudrait que je fasse un fichier ou sont inclue les variable de session et que je l'include dans la frame principale? (qui est partout)
Marsh Posté le 01-01-2003 à 17:14:53
chacal_one333 a écrit : en fait je vient d'apprendre les session et j'ai rajouter ca |
Ben ça peut servir, mais dans la plupart des cas t'en as pas besoin. Tu peux donc le virer sans pb.
Citation : en fait a chak nouvelle page je fait un session_register("pseudo" ) |
Si tu fais session_register("pseudo" ) à chaque page c'est normal que session_is_registered te renvoie toujours vrai
Tu devrais le mettre uniquement lorsque qqun se log
Marsh Posté le 01-01-2003 à 17:16:26
ben oui mais sinon je perd le login et la connection
j'ai pas une table session hein
Marsh Posté le 01-01-2003 à 17:22:32
chacal_one333 a écrit : ben oui mais sinon je perd le login et la connection |
Un truc simple. Mettons que $logged soit un booléen qui indique si un membre est loggé (true) ou déloggé (false).
Tu fais session_start (dans tous les cas).
Quand qqun se log, tu fais un session_register("le_nom_de_ta_variable_session" ), puis tu mets $logged à true. Son pseudo est $pseudo (la variable rentrée dans le form de log).
Quand il se délog, un session_unregister("le_nom_de_ta_variable_session" ), un session_destroy puis $logged à false.
Quand ni il se log ni il se délog, tu testes avec session_is_registered s'il est loggé ou pas. En fonction de ça tu mets $logged à true ou à false. Son pseudo est $le_nom_de_ta_variable_session.
Marsh Posté le 01-01-2003 à 17:32:38
wai mais la je perd ma variable $pseudo et du coup je ne suis plus logger en retournant sur une autre page !
le $logged ca sort d'ou et je lui fait changer de valeur comment?
Marsh Posté le 01-01-2003 à 17:39:03
chacal_one333 a écrit : wai mais la je perd ma variable $pseudo et du coup je ne suis plus logger en retournant sur une autre page ! |
Mais tu t'en fous de la perdre puisque tu l'enregistres après dans une session. Au log tu fais un truc du genre :
$sess_pseudo = $pseudo;
session_register("sess_pseudo" );
Ensuite s'il passe sur une autre page, après un session_start la variable $sess_pseudo qui équivaut à $_SESSION['pseudo'] correspond au pseudo.
Citation : le $logged ca sort d'ou et je lui fait changer de valeur comment? |
$logged = true ou $logged = false ?
C'est juste pour éviter de refaire if (session_is_registered...) à chaque fois après dans ton code si la personne est loggée. T'as juste à faire if ($logged).
Marsh Posté le 01-01-2003 à 17:54:57
bon alors en fait dans mon ficher de connection j'ai mis
session_start();
session_register("pseudo" );
juske la ok
puis dans mon fichier principale je met
if (session_is_registered("pseudo" ))
{
echo "You're the n° $nbvisites clicks and you're logged as $pseudo";
}
elseif (!session_is_registered("pseudo" ))
{
echo "You're the n° $nbvisites clicks and you're not logged";
}
echo '</center>
ben la ca marche pas du tout
Marsh Posté le 01-01-2003 à 18:17:19
bon ca marche j'ai mis un session_start() dans le menu principal et ca remarche !
par contre j'arrive pas avec le if(!logged)
Marsh Posté le 01-01-2003 à 19:07:21
Content que ça marche
Marsh Posté le 01-01-2003 à 19:08:41
Reply
Marsh Posté le 01-01-2003 à 14:39:43
ya pas plus con je pense mais bon
if (session_is_registered("pseudo" ))
{
echo "You're the n° $nbvisites clicks and you're logged as $pseudo";
}
elseif (!session_is_registered("pseudo" ))
{
echo "You're the n° $nbvisites clicks and you're not logged";
}
je veux juste que si on est loger il nous l'affiche et sinon qu'il m'affiche qu'on est pas logger pourtant ce ptit code ne marche pas :'(
il m'afficher soit
you're logged as (si on est pas logger)
soit
you're logged as $pseudo (si on est logger)
ca vient d'ou le pbm?
Message édité par Profil supprimé le 01-01-2003 à 18:33:25