Problème avec une liste et un cookie [Résolu]

Signaler
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
-
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
-
Salut,

Je créer un chat et pour savoir qui est connecté, j'utilise un système de cookie renouvel avec de l'ajax, enfin bref j'ai créer un cookie "pseudo" qui contient le pseudo choisis et quand je le lit avec un foreach je fait une liste avec un <li> pour chaque pseudo mais le problème c'est pour utiliser foreach il faut avoir un tableau donc j'ai utliser la fonction explode mais le pb c'est que j'utilise "-" comme séparateur et il est a la fin de mon cookie donc ça créer un nouveau <li> mais vide, comment puis-je y remédier ???

mon code de création du cookie :
----------------------------------------------------------------------
setcookie('pseudo', $_POST['pseudo'].'-');
----------------------------------------------------------------------

mon code de listage des pseudo :
----------------------------------------------------------------------
$cookies = explode('-', $_COOKIE['pseudo']);
foreach ($cookies as $cookie) {
echo "<li>", $cookie, "</li>", "
";
}
----------------------------------------------------------------------

Merci d'avance

Si t'a besoin d'aide, MP !!!

38 réponses

Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
38
le cookie est chez le client, ca ne peut pas fonctionner. t'as des tonnes de scripts du genre ici.
Messages postés
318
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
11 mars 2010

Si le '-' est toujours à la fin il suffit de l'enlever.

$cookies = explode('-', substr($_COOKIE['pseudo'],0,strlen($_COOKIE['pseudo'])-1));

ou alors

$cookies = explode('-', $_COOKIE['pseudo']);
if(isset($cookies[count($cookies)]) && $cookies[count($cookies)]=="")unset($cookies[count($cookies)]);

Grrrrrrrrrrr
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Hello,

les sessions ne changeront pas grand chose (enfin si...mais tu devrais lire toutes les sessions actives contenues dans le répertoire de sessions de ton serveur). Tu n'as qu'une seule session par utilisateur (comme pour les cookies). Donc forcément, de manière aussi basique, ton code ne peut voir qu'un seul pseudo.
En clair, chaque utilisateur crée un fichier de session ou de cookie, c'est pareil. La différence c'est que les fichiers de cookie sont sur l'ordinateur de l'utilisateur, et donc tu ne peux pas accéder à tous dans ton script, alors que les fichiers de session sont sur ton serveur, tu peux donc tous les lire en même temps.
Une autre solution est de créer un fichier temporaire avec tous les utilisateurs, qui fonctionnerait cmme une session : c'est à dire, qui serait régulièrement nettoyé pour enlever les utilisateurs qui ne sont plus actifs.
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Un truc du genre : preg_match_all('`pseudo\|S:[0-9]+:"([^"]+)`', $sSessionContents, $aRes);
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Utilise session_save_path()
http://www.php.net/manual/en/function.session-save-path.php
pour sauvegarder les sessions de CETTE application dans un répertoire que tu contrôles. Et ains itu n'auras que les fichiers de session de cette application. Donc tous les fichiers seront ok.
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Heu...file_get_contents() est le plus simple. Mais fread est ok aussi.
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
31
Salut,

@coucou747 : si je n'utilise pas les cookies, que dois-je utiliser ??? j'ai essayé les sessions mais ça ne marchait pas !!!

Si t'a besoin d'aide, MP !!!
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
31
Salut malalam,

comment puis je faire pour les fichiers de session ? je préfère cette solution car l'autre me parait un peu plus compliqué, et puis je ne sais pas comment renouveler le fichier car avec les cookies, c'était facile, si le cookie est la alors l'utilisateur est toujours la sauf si il est inactif depuis plus de 5 minutes !!!

Si t'a besoin d'aide, MP !!!
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Tu n'as pas compris : tu ne vois qu'un seul cookie par connexion au serveur. Ton script ne voit qu'une connexion, donc tu ne vois qu'un cookie dans tous les cas. Ton idée ne fonctionne pas.
Tu dois regarder où sont stockées les sessions sur ton serveur (le cas échéant, tu changes le répertoire). Là, tous les fichiers présents sont des dessions "actives" (qui n'ont pas encore été nettoyées par le grbage collector en tous cas). Il te suffit de les parser, un par un. Mais attention, le contenu des sessions est linéarisé...et par défaut, cette linéarisation n'est pas celle de la fonction serialize() de php. Il te faut donc vraiment parser le contenu des fichiers pour en extraire le pseudo (ce sera relativement facile, le masque sera toujours le même).
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
31
Pour les cookie, j'avais compris, je te disais ma façon de penser avant votre intervention !!!

Par contre pour les session... je ne sais pas ou je dois regarder, je suis sous wamp2 (je ne suis pas sur : temp mais je ne suis pas sur car tout les nom de fichier commence par sess_ et a la fin il y a session_dir mais bon) par contre après ça se complique, je fais comment pour trouver le masque et pour parser ???

merci d'avance

Si t'a besoin d'aide, MP !!!
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
C'est bien le répertoire.
Bon...mets ici le contenu d'un de ces fichiers.
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
31
ok, tiens, il y a celui la que j'utilise pour mon script pour ne pas avoir a taper le pseudo, le visiteur le tape une fois, après il est automatiquement ajouté avec les session :

pseudo|S:7:"nicolas";

Si t'a besoin d'aide, MP !!!
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
31
merci !!!

Si t'a besoin d'aide, MP !!!
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Mais sur tous les fichiers hein, puis tu récupères chaque résultat.
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
31
oui, mais par contre mes fichiers de codes se trouvent dans le repertoire www alors que les sessions se trouvent dans temp comment puis je faire pour récupérer les fichier ? fopen ? fread ? et je fais comment pour ne récupérer que les session qui m'appartiennent : c'est a dire qui sont censsé s'appelléent pseudo ??

Si t'a besoin d'aide, MP !!!
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
et après oui, ce que tu vceux pour lire un fichier (perso, étant tjrs en PHP5, j'utilise file_get_contents()).
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
31
ok, merci, le mieux, c'est fopen, fread, fwrite et fclose ou file_get_content() ?

Si t'a besoin d'aide, MP !!!
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
31
ok, va pour file_get_contents(), merci !!!

Si t'a besoin d'aide, MP !!!
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
31
salut, on fait comment pour lire tout les fichier que contient un répertoire ?

Si t'a besoin d'aide, MP !!!
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
31
Re,

malalam, j'ai trouvé la solution pour lire tout les fichier d'un repertoire avec opendir mais après un autre problème se créer, il parait que par défaud, je n'ai pas le drois d'accèder au dossier ou sont stokées les sessions et qu'il faut que je créer un autre dossier www avec un autre php.ini séparé de l'autre !! y a t'il une autre solution ?

Si t'a besoin d'aide, MP !!!