session [resolu]

session [resolu] - PHP - Programmation

Marsh Posté le 01-01-2003 à 14:39:43    

ya pas plus con je pense mais bon [:spamafote]
 

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
Reply

Marsh Posté le 01-01-2003 à 14:39:43   

Reply

Marsh Posté le 01-01-2003 à 15:42:01    

Tu fais bien un session_unregister au délog ?


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 01-01-2003 à 16:07:13    

non un session destroy

Reply

Marsh Posté le 01-01-2003 à 16:12:38    

jlai mis en session_unregister("pseudo" ) ca change rien


Message édité par Profil supprimé le 01-01-2003 à 16:12:44
Reply

Marsh Posté le 01-01-2003 à 16:14:49    

Sielfried a écrit :

Essaie de faire un session_unset avant.
Ou un session_unregister("pseudo" ).

;)

Reply

Marsh Posté le 01-01-2003 à 16:17:30    

T'oublies pas le session_start au dessus ? (on sait jamais :))


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 01-01-2003 à 16:23:10    

nop pas oublier :)

Reply

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 :/

Reply

Marsh Posté le 01-01-2003 à 16:28:15    

chacal_one333 a écrit :

la deco marche bien hein :)
 
ca veut juste pas m'afficher que je suis logger ou pas :/


 
Ben wai mais c'est session_is_register qui renvoie vrai alors qu'elle devrait pas, donc a priori cai un pb de session ;)


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 01-01-2003 à 16:29:44    

Code :
  1. require("connect.php" );
  2. $connect=mysql_connect(SERVEUR, NOM, PASSE);
  3. mysql_select_db(BASE, $connect);
  4. session_start();
  5. session_destroy();
  6. session_unregister("pseudo" );
  7. header("location: index.php" );


 
[:spamafote]

Reply

Marsh Posté le 01-01-2003 à 16:29:44   

Reply

Marsh Posté le 01-01-2003 à 16:34:04    

chacal_one333 a écrit :

Code :
  1. require("connect.php" );
  2. $connect=mysql_connect(SERVEUR, NOM, PASSE);
  3. mysql_select_db(BASE, $connect);
  4. session_start();
  5. session_destroy();
  6. session_unregister("pseudo" );
  7. header("location: index.php" );


 
[:spamafote]


 
session_unregister avant session_destroy.
Je pense que là ce sera bon.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 01-01-2003 à 16:35:00    

You're the n° 3897 clicks and you're logged as  [:zoutte]

Reply

Marsh Posté le 01-01-2003 à 16:36:23    

chacal_one333 a écrit :

You're the n° 3897 clicks and you're logged as  [:zoutte]  


 
Fait voir tout ton code avant les tests de session :)


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

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 [:cybersonic]  
 
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
 
 [:cybersonic]  
 
Voila mon code de login
 
Je pensait qu'il ne ferait pas la connection avec le exit; mais aparement si :/
 

Code :
  1. //connection
  2. require("connect.php" );
  3. $connect=mysql_connect(SERVEUR, NOM, PASSE);
  4. mysql_select_db(BASE, $connect);
  5. //requete
  6. $req="SELECT pseudo, password FROM User WHERE pseudo=\"$pseudo\" and password=\"$password\"";
  7. $que=mysql_query($req);
  8. $row=mysql_fetch_array($que);
  9. if (!$row['pseudo'])
  10. {
  11.  include("menu_principal.php" );
  12.  echo '<td bgcolor="#E8E8E8" align=right style="width:350px;">
  13.  <center>';
  14.  echo "You did a mistake or this nickname doesn't exist yet ! <br> please
  15.         <font color=red><a href=\"register.php\">register</a></font> before";
  16.  echo '</td>';
  17.  include("bas.php" );
  18.         die();
  19.  exit;
  20. }
  21. else
  22. {
  23.  session_start();
  24.  session_register("pseudo" );
  25.  include("menu_principal.php" );
  26.  echo '<td bgcolor="#E8E8E8" align=right style="width:350px;">
  27.  <center>';
  28.  echo "Welcome $pseudo <p>";
  29.  echo "you can add forum right now";
  30.  echo '</td>';
  31.  include("bas.php" );
  32.  $sess_name=session_name();
  33.  $sess_id=session_id();
  34. }


Message édité par Profil supprimé le 01-01-2003 à 16:42:01
Reply

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 ?


Message édité par sielfried le 01-01-2003 à 16:55:34

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 01-01-2003 à 16:56:33    

nop dans la frame principale

Reply

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 :/

Reply

Marsh Posté le 01-01-2003 à 16:59:22    

Sielfried a écrit :

J'aurais mis

if (!$row)

au lieu de

if (!$row['pseudo'])

pareil ;)

Reply

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)

Reply

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
 
  $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?


 
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" )
 
donc logikement avec le is_registered il devrait bien comprendre le truc :/


 
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 :)


Message édité par sielfried le 01-01-2003 à 17:16:07

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

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 :/


Message édité par Profil supprimé le 01-01-2003 à 17:16:36
Reply

Marsh Posté le 01-01-2003 à 17:22:32    

chacal_one333 a écrit :

ben oui mais sinon je perd le login et la connection :/
 
j'ai pas une table session hein :/


 
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.


Message édité par sielfried le 01-01-2003 à 17:24:26

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

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?

Reply

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 ? :D
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).


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

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

Reply

Marsh Posté le 01-01-2003 à 17:55:51    

scuz mon ignorance hein :whistle:

Reply

Marsh Posté le 01-01-2003 à 17:57:26    

j'ai fait un if ($logged) ben ca marche pas

Reply

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) :(

Reply

Marsh Posté le 01-01-2003 à 18:31:50    

j'ai reussi avec un

if ($_SESSION['pseudo'])

Reply

Marsh Posté le 01-01-2003 à 19:07:21    

Reply

Marsh Posté le 01-01-2003 à 19:08:41    

Sielfried a écrit :

Content que ça marche :jap:  

merci bcp a toi sielfried  
ca m'a grandement appris :)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed