Oui. Si tu connais le contenu du cookie de session du client A, il suffit de construire un cookie sur B ayant le même contenu. C'est tout. Ça s'appelle un vol de session. Mais pour cela il faut un accès physique à la machine du client A, lui demander d'aller faire un tour à la cafet' et de faire une copie du cookie ou du fichier qui les contient.Soit deux membres A et B avec deux sessions différentes, non commune et distincte. Puis-je étant le membre A accéder à la session du membre B en lecture et/ou en écriture si je possède la chaine d'identification du membre B ? Si oui, comment ?
Voilà, j'espère m'être mieux exprimé==========
Client | Session
------------------
...A....|....Sa....
...B....|....Sb....
==========
Contenu des sessions :
Variables :
Session|mp_non_lu|mp_total
---------------------------------
...Sa....|......25.......|...256..
...Sb....|......33.......|...128..
==========
A envoi un message à B
==========
Nouveau contenu des sessions :
Variables :
Session|mp_non_lu|mp_total
---------------------------------
...Sa....|......25.......|...256..
...Sb....|......34.......|...129..
Mauvaise idée, sur le livre de G. Ponçon et J. Pauli traitant de Zend Framework catégorie Cahiers du Programmeur, il est écrit qu'il faudrait prendre en compte les risque de collisions... En revanche, la régénération au moment de la connexion est souhaitable, ce que j'applique, mais le sujet n'est pas là ^^Moi pour me prévenir de ceci, je me fais un regenerate_id() à chaque page
// depuis une session de A:
// stockage de l'ID de session de A
$IDdeA = session_id();
// bascule sur la session de B
session_id($IDdeB);
// modification de la variable de B et mise en session
// retour sur la session de A
session_id($IDdeA);
Je ne suis pas trop sûr que la manipulation de sessions qu j'ai proposée plus haut fonctionnera. Je suis même certain du contraire après avoir lu ceci:J'aimerais savoir si j'appelai une session (par session_id()) inexistante, que ce passerait-il ?
Il te reste à manipuler les fichiers de session.Note: Lorsque vous utilisez les sessions avec les cookies, le fait de spécifier un id pour session_id() fera qu'un nouveau cookie sera toujours envoyé lors de l'appel à session_start(), sans ce soucier si l'identifiant de session courant est identique à celui qui vient d'être défini.
Le dernier benchmark effectué je crois par Naholyr et posté sur PHPfrance faisait apparaitre des performances très en retrait pour PostrGre par rapport à SQLite, donc peut être devrais-tu essayé tout de même pour en être sûr.Oui et non, oui, j'ai pensé à SQLite, mais il aura trop de charge, j'utilise PostGreSQL et, bien que je fasse très bien les choses, je pourrait arrivé très vite à pas loin de 2.000 requêtes native par secondes pour 400 membres, donc, le but est de l'alléger...
Prétentieux va!!!bien que je fasse très bien les choses
Ne s'agirait-il pas de celui-ci?Le dernier benchmark effectué je crois par Naholyr et posté sur PHPfrance faisait apparaitre des performances très en retrait pour PostrGre par rapport à SQLite, donc peut être devrais-tu essayé tout de même pour en être sûr
Mmmh, je vais continuer de creuser du côté des session, mais, vu que je suis avec PostGreSQL depuis le début de mon projet et qu'il commence à dater, 9 mois, je ne pense que je vais lâcher PostGreSQL de si tôt, deplus, j'ai déjà plus de 40 fonctions en PL/pgsql, ce qui me permet d'économiser la communication entre PostGreSQL et PHP, ce qui est le plus couteux, et c'est ce en quoi PostGreSQL est plus rapide...Le dernier benchmark effectué je crois par Naholyr et posté sur PHPfrance faisait apparaitre des performances très en retrait pour PostrGre par rapport à SQLite, donc peut être devrais-tu essayé tout de même pour en être sûr.
Un peu, mais au vu de mon travail...Prétentieux va!!!bien que je fasse très bien les choses
C'est ce que j'ai utiliser pour un extranet en fait je gère les sessions aussi sur la base de donnée histoire d'avoir une visibilité supplémentaire.Il faut deux conditions pour qu'une session existe: un cookie sur le client (contenant l'id de la session) et un fichier de session sur le serveur. Pour détruire une session il faut détruire le fichier de session côté serveur avec un session_destroy() ensuite forcer une suppression du cookie client avec setcookie() avec un cookie vide. Si tu ne supprimes pas les deux elle persistera. Je le sens pas trop ton truc avec les sessions.
Pourquoi ne gères-tu pas tout ça dans une table. Si ton serveur MySQL est lent, utilise sqlite qui est très véloce pour ce genre de choses. Aussi rapide que d'ouvrir un fichier de session.