=?windows-1252?Q?Session pour zone privee !?

Le
Gypaete.net
Je veux utilisé ules sessions pour faire une zone privée j'ai qq questions au
sujet des sessions alors si vous voulez bien y répondre :

Lorsque je créais une session celle si est propre à chaque utilisateur, et si
j'ai 10 personnes en zone privée j'ai dix session ?

La session créé est valable combien de temps comment définir la durée ?

Pour vérifier qu'une personne est logé je fais un test pour savoir si'il existe
une session ouverte ? comment faire cette vérification ? en vérifiant que l'id
(session.id) correspond avec une variable que je transmet dans l'URL ?

Quel est l'id de session id créé par défaut lors d'une session.start ?

Merci !
  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
Guillaume Bouchard
Le #426646
Gypaete.net wrote:

Lorsque je créais une session celle si est propre à chaque utilisateur, et si
j'ai 10 personnes en zone privée j'ai dix session ?


Autant de session que d'utilisateurs.

La session créé est valable combien de temps comment définir la durée ?


Si tu fais des session a la main, le temps que tu veux.
Si c'est les session php4 que je te deconseille, elle est valable
pendant session.gc_maxlifetime du php.ini, réglable via .htaccess,
ini_set ou modification direct du php.ini

Pour vérifier qu'une personne est logé je fais un test pour savoir si'il existe
une session ouverte ? comment faire cette vérification ? en vérifiant que l'id
(session.id) correspond avec une variable que je transmet dans l'URL ?


Si l'on se base sur le fait que tu utilise les session php. Lors de la
connexion, tu a stocker dans la session une preuve que l'utilisateur est
logué, un flag logué. Il te suffit de tester l'existence de ce flag pour
savoir si ton utilisateur est logué. if(isset($_SESSION['flag']))...

Quel est l'id de session id créé par défaut lors d'une session.start ?


Il est aleatoire, il n'y en a pas par defaut.

--
Guillaume.

Guillaume Bouchard
Le #426473
Christian wrote:
Ici même, Guillaume Bouchard a écrit tantôt :


Si c'est les session php4 que je te deconseille (...)



Pourquoi donc ?


Je donne un debut de reponse ici

http://guillaume.apinc.org/2003/aout/21/6-lettre_phpere_noel

Suit les liens ( nottament qui pointe vers le blog de Ganf) et tu auras
la totalité de la reponse.

--
Guillaume.


John GALLET
Le #426363
Bonjour,

Si c'est les session php4 que je te deconseille (...)
Pourquoi donc ?



Réponse rapide : c'est surtout une question d'habitudes et de contraintes de
l'application. Pour quelqu'un qui prend le train en marche avec PHP4,
pourquoi pas. Pour quelqu'un qui a déjà écrit les deux fonctions et trois
requêtes SQL nécessaires à gérer des sessions manuellement, ça ne sert à
rien.

Un exemple bête de l'inconvénient des sessions natives PHP : tu veux savoir
quel est le "nombre de connectés" (comprendre : personnes distinctes ayant
fait une requête sur le site il y a moins de 10 minutes par exemple). Vas
essayer de faire ça avec des sessions natives PHP4, on en reparlera. Si tu
as une table dans un SGBD, il suffit de faire un COUNT avec une clause WHERE
sur la colonne heure d'expiration... Tu veux logguer toutes les sessions qui
partent en time out : impossible. En SGBD, il suffit de faire un SELECT
avant le DELETE (oui, on peut avoir un petit problème de transactions, c'est
éventuellement à gérer). Tu veux avoir plusieurs machines frontales PHP pour
de la répartition de charge. En général, le SGBD reste central, il est donc
accessible de toutes les machines frontales et peu importe qu'un même
internaute passe un coup sur une machine un coup sur une autre. Les sessions
natives php4 sont gérées par des fichiers temporaires : il faut en protéger
l'accès, et s'il y a plusieurs machines frontales être certain que
l'internaute arrive toujours au même endroit ou monter un disque en type
NFS, bref, faut bidouiller.

En plus, un débutant ne comprendra pas qu'il est idiot de vouloir stocker
dans une session le retour d'un mysql_connect ou d'un mysql_query ou d'un
fopen ou d'un fsockopen (heureusement, ça marche pas !).

Bref, ça ne sert pas à grand chose et c'est la tentation du fourre-tout.

Enfin, comme toujours : les sessions natives php4 ont leur intérêt à
condition qu'on sache ce qu'on fait et comment ça fonctionne. C'est pour ça
que je "hurle" régulièrement contre le manque de curiosité induit par les
"résonnements" du type "m'en fous de comprendre je colle easyphp et je
porc-gramme".

En l'occurence, c'est relativement pratique pour éviter de se trimballer
dans l'URL des choix globaux de l'internaute non stockés côté serveur de
manière rémanente (genre trucs stockés en cookies).

a++
JG
--
Elle est mieux ma signature ?
Oui. T'enlèves encore les conneries qu'il y a dedans

et ce sera parfait. (in GNU)


Gg
Le #426361
On 23 Aug 2003 10:39:04 GMT, John GALLET wrote:

Enfin, comme toujours : les sessions natives php4 ont leur intérêt à
condition qu'on sache ce qu'on fait et comment ça fonctionne. C'est pour ça
que je "hurle" régulièrement contre le manque de curiosité induit par les
"résonnements" du type "m'en fous de comprendre je colle easyphp et je
porc-gramme".


Euh.. c'est juste pour dire, j'ai EasyPHP, mais je gère mes sessions :-)
D'ailleurs j'ai aussi fait un système de gestion avec un petit fichier qui
va bien à la place d'une table, mais ca serait à tester.


--
GéraLd : http://gerald.fauvelle.free.fr
| Photos : http://www.gg.free.fr
| myStats : Système de statistiques
| Version 1.0.8 - http://my.stats.free.fr

John GALLET
Le #426257
Bonsoir,

D'ailleurs j'ai aussi fait un système de gestion avec un petit fichier qui
va bien à la place d'une table


Je ne voudrais pas que tu croies que je te prends en grippe, mais je serais
curieux de connaire l'intérêt d'un tel développement. Les sessions natives
PHP4 sont déjà sur fichiers. Donc j'avoue que j'ai un peu de mal à suivre.

a++
JG

Gg
Le #426255
On 24 Aug 2003 10:09:26 GMT, John GALLET wrote:

Je ne voudrais pas que tu croies que je te prends en grippe, mais je serais
curieux de connaire l'intérêt d'un tel développement.


Pour ne pas utiliser une table mySQL.

Les sessions natives
PHP4 sont déjà sur fichiers. Donc j'avoue que j'ai un peu de mal à suivre.


Non, là j'utilise un seul fichier dont je gère le contenu, comme on le fait
avec une table mysql.
L'intérêt, c'est de mettre le fichier où on veut, sans passer 1 h à
comprendre que sur Free il faut créer un répertoire sessions (avec le s à
la fin) pour que ça marche, et que chez un autre hébergeur ca sera
autrement.

Enfin, moi je trouve ça pratique, par exemple pour un outil qui utiliserait
des sessions, un utilisateur a juste à copier l'outil en question sur son
site, et pas s'embéter à voir ce qu'il faut faire pour que les sessions
fonctionnent.

--
GéraLd : http://gerald.fauvelle.free.fr
| Photos : http://www.gg.free.fr
| myStats : Système de statistiques
| Version 1.0.8 - http://my.stats.free.fr

Poster une réponse
Anonyme