Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1328 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  sessions & cookies, recuperation info

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

sessions & cookies, recuperation info

n°1121419
Profil sup​primé
Posté le 16-06-2005 à 01:09:53  answer
 

Salut,
 
J'ai fait un forum avec méthode d'identification qui propose deux choix :
Identification longue ==> cookie qui dure environ trois mois
Identification courte ==> banal cookie qui dure 30 min (estimation de la durée d'un passage sur mon site)
 
Maintenant que ceci est fait, je me suis intéressé au session et apparement c'est pas bien compliqué.
Seulement, j'aimerais pouvoir gérer le cookie longue vie et le cookie courte vie en un seul afin de ne pas avoir de test dans chacun des formulaires pour savoir qui du cookie ou de la session est present.
 
Je pensais faire un truc du genre :

Code :
  1. if (isset($_COOKIE['pseudo']) && !isset($_SESSION[('nickpseudo')]))
  2. {
  3. session_start();
  4. $_SESSION['nickpseudo'] = $_COOKIE["pseudo"];
  5. }


code qui n'est censé s'executer qu apres identification (cookie courte vie) ou arrivée sur la page (cookie longue vie) et pi apres vivre sa vie.
 
mais pour une raison que je ne comprend pas ca ne fonctionne pas ...
les info disparaissent isset($_SESSION[('nickpseudo')]) me retourne FALSE des que le cookie n'existe plus.
 
Qqun sait il prkoi ? Ou a t il une meilleure idée ?
 
[edit]
bon j'ai encore cherché sur pas mal de sites, fait des tests et rien ..., les infos de session disparaissent dès que le cookie n'existe plus.
 
J'ai modifié le code  

Code :
  1. if (isset($_COOKIE['pseudo']) && $_SESSION['present'] != 'on')
  2. {
  3. session_start();
  4. $_SESSION['pseudosession'] = 'lol';
  5. $_SESSION['present']    = 'on';
  6. }


mais apres 10s (la durée de vie du cookie pour les tests :p)

Code :
  1. $_SESSION['present'] == 'on'

me retourne false ...


Message édité par Profil supprimé le 16-06-2005 à 02:59:53
mood
Publicité
Posté le 16-06-2005 à 01:09:53  profilanswer
 

n°1121457
simogeo
j'ai jamais tué de chats, ...
Posté le 16-06-2005 à 06:18:58  profilanswer
 

ca veut dire que ton test est foireux [:spamafote]

n°1121479
Profil sup​primé
Posté le 16-06-2005 à 08:37:39  answer
 

simogeo a écrit :

ca veut dire que ton test est foireux [:spamafote]


 
le test ligne 1 du premier code ?
ben non puisque j'arrive à lire les infos de session apres, tant que le cookie existe.  
apres la destruction du cookie, j'ai vraiment l'impression que la session n'existe plus puisque $_SESSION['present'] == 'on' me retourne false.
 
J'ai fait différents tests mais toujours le même résultat...

n°1121687
plainsofpa​in
Pingouino's lover
Posté le 16-06-2005 à 11:07:01  profilanswer
 

ben deja, mettre le session_start dans le if, c'est pas malin ...


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
n°1121755
Profil sup​primé
Posté le 16-06-2005 à 11:43:44  answer
 

pourquoi ?
ah vi mais en fait il faut que j'explique que cette page se charge a chaque page (la page apparait via un include) donc je suis obligé de mettre un if sinon ca crééra une session a chaque fois. Et puis si je le met dans une autre page, eh bien ca sera apres les headers

n°1121775
plainsofpa​in
Pingouino's lover
Posté le 16-06-2005 à 11:56:06  profilanswer
 

session_start ne crée de nouvelle session que s'il n'y en a pas, sinon il continue la meme.  
 
...


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
n°1121776
simogeo
j'ai jamais tué de chats, ...
Posté le 16-06-2005 à 11:56:08  profilanswer
 

mais non ..... sors le!
et lis a ce sujet sur les sessions

n°1121782
Profil sup​primé
Posté le 16-06-2005 à 11:59:35  answer
 

vi mais la est mon pb
je ne voulais de session que si j avais un cookie afin de mixer cette histoire de cookie long et court

n°1121787
plainsofpa​in
Pingouino's lover
Posté le 16-06-2005 à 12:01:41  profilanswer
 

tu fais un session_start, mais tu n'initialise les variables de session que si le cookie est présent. C'est pas compliqué ...


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
n°1121790
Profil sup​primé
Posté le 16-06-2005 à 12:03:52  answer
 

ok
vais essayer ca
merci du conseil

mood
Publicité
Posté le 16-06-2005 à 12:03:52  profilanswer
 

n°1122661
Profil sup​primé
Posté le 17-06-2005 à 02:10:00  answer
 

bien merci ca marche parfaitement
j'aurais une autre question.
J'ai lu pas mal de tuto sur comment dénombrer les utilisateurs présents sur le site. Tout ceux que j'ai vu utilisent l'adresse IP et requierent pas mal de code.
Je me demandais si il y avait un moyen de faire ca en se basant sur le nombre de sessions ouvertes...


Message édité par Profil supprimé le 17-06-2005 à 16:42:07
n°1123442
Profil sup​primé
Posté le 17-06-2005 à 16:43:08  answer
 
n°1123471
Killer_386
Posté le 17-06-2005 à 16:54:36  profilanswer
 

Ce que tu veux, c'est savoir qui est connecté ??  
 
Pour mon intranet, j'ai fait comme ça :
 

Code :
  1. if (isset($_SESSION['user']) && isset($_SESSION['password']))
  2. {
  3.     $ref = mysql_query('SELECT * FROM members_connected WHERE user=\'' . $_SESSION['user'] . '\'');
  4. $compteur = mysql_num_rows($ref); // Vérification de l'existence de la connection du membre
  5. $id = '';
  6. $user = $_SESSION['user'];
  7. $timestamp = time();
  8. $connected = 'yes';
  9. $date_last_visit = $date;
  10. if ($compteur == 0)
  11. {
  12.     /* On exécute la requête pour insérer le nouveau membre */
  13.     mysql_query('INSERT INTO members_connected(id, user, timestamp, connected, date_last_visit) VALUES(\'' . $id . '\', \'' . $user . '\', \'' . $timestamp . '\', \'' . $connected . '\', \'' . $date_last_visit . '\')') or die(mysql_error());
  14. }
  15. else
  16. {
  17.     /* On modifie juste la date de la dernière visite ainsi que du timestamp */
  18.  mysql_query('UPDATE members_connected SET timestamp=\'' . $timestamp . '\', connected=\'' . $connected . '\', date_last_visit=\'' . $date_last_visit . '\' WHERE user=\'' . $user . '\'')or die(mysql_error());
  19. }
  20. }
  21. /* Mise à jour des données de la personne en passant son statut en non connecté, donc en dehors de la session */
  22. $time_5min = time() - (60 * 5); // time() - nombre de secondes
  23. $no_connect = mysql_query('SELECT * FROM members_connected WHERE timestamp <=\'' . $time_5min . '\'');
  24. $no = 'no';
  25. while ($no_connect1 = mysql_fetch_array($no_connect)) // Quand la personne ne fait rien depuis plus de x_time, ou alors n'est plus connectée
  26. {
  27.     $mode_nc = mysql_query('UPDATE members_connected SET connected=\'' . $no . '\' WHERE user=\'' . $no_connect1['user'] . '\''); // On passe en mode non connecté
  28. }

n°1123479
Killer_386
Posté le 17-06-2005 à 16:56:57  profilanswer
 

Et après, tu interroge la table correspondante pour savoir le nombre de connecté(s), qui est connecté, etc. ;)

n°1123495
Killer_386
Posté le 17-06-2005 à 17:03:19  profilanswer
 

Par contre, une chose ! J'allais oublié lol. Si la personne est connectée mais qu'elle ne fait rien depuis plus de 5 minutes, son statut passera en mode non connecté, par contre si elle redevient active, ça repasse en connecté. J'ai pas voulu détruire la session pour ça :D.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  sessions & cookies, recuperation info

 

Sujets relatifs
récupération de liste multipleRécupération indicée d'une cellule d'une autre feuille avec formatage
Cookies, pb headers !![INFO] Limitations de la fonction RAND() de SQL Server
Récupération d'une donnée d'un fichierRécupération de valeurs checkbox dynamiquement
[Résolu] recuperation valeur menu déroulantBoite d'info qui colle au fesse de la souris
Récupération des données EXIF d'une image JPEGSupport de caractères ( ' par ex)dans une info-bulle [RESOLU]
Plus de sujets relatifs à : sessions & cookies, recuperation info


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR