nicomilville
Messages postés3472Date d'inscriptionlundi 16 juillet 2007StatutMembreDernière intervention28 février 2014
-
26 avril 2008 à 09:47
nicomilville
Messages postés3472Date d'inscriptionlundi 16 juillet 2007StatutMembreDernière intervention28 février 2014
-
8 mai 2008 à 20:48
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>", "
";
}
----------------------------------------------------------------------
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 26 avril 2008 à 10:24
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.
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 26 avril 2008 à 11:50
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.
nicomilville
Messages postés3472Date d'inscriptionlundi 16 juillet 2007StatutMembreDernière intervention28 février 201436 26 avril 2008 à 10:47
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 !!!
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 26 avril 2008 à 10:57
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).
nicomilville
Messages postés3472Date d'inscriptionlundi 16 juillet 2007StatutMembreDernière intervention28 février 201436 26 avril 2008 à 11:04
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 ???
nicomilville
Messages postés3472Date d'inscriptionlundi 16 juillet 2007StatutMembreDernière intervention28 février 201436 26 avril 2008 à 11:18
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 :
nicomilville
Messages postés3472Date d'inscriptionlundi 16 juillet 2007StatutMembreDernière intervention28 février 201436 26 avril 2008 à 11:46
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 ??
nicomilville
Messages postés3472Date d'inscriptionlundi 16 juillet 2007StatutMembreDernière intervention28 février 201436 27 avril 2008 à 12:58
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 ?