Durée d'une session PHP ?


ecocentric
WRInaute accro
WRInaute accro
 
Messages: 3602
Inscription: 10 Fév 2004

Durée d'une session PHP ?

Message le Jeu Jan 12, 2006 17:12

J'utilise des sessions PHP sur un site de news que j'utilise pour faire de la veille. Parfois, d'une consultation à l'autre (le navigateur reste ouvert), la session se ferme.

Comment fait-on pour paramétrer la durée d'une session ? Est-il possible de paramétrer cette longeur pour qu'elle soit restaurée après fermeture du navigateur ou du PC complet (logiquement, oui, mais y a-t-il des limitations) ?

J'ai bien été voir dans la documentation PHP sur les sessions mais ça ne me semble pas très clair sur la question de la durée.


e-kiwi
Modérateur
Modérateur
 
Messages: 15617
Inscription: 23 Déc 2003

Message le Jeu Jan 12, 2006 17:23

variable session.gc_maxlifetime dans ton php.ini
fermeture de navigateur -> plus de session :)

il faut gerer les sessions en BDD si tu veux qu'elles soient restaurées apres fermeture (à toi de programmer tes propres sessions)


ecocentric
WRInaute accro
WRInaute accro
 
Messages: 3602
Inscription: 10 Fév 2004

Message le Jeu Jan 12, 2006 17:25

J'ai vu que je pouvais mémoriser l'identifiant de session par un cookie. Cette mémorisation permettrait-elle de retrouver la session après fermeture du navigateur ?
Ou alors la seule solution consiste-t-elle à tout placer en cookie ou en base de données (il n'y a pas de données confidentielles dans mon cas) ?

olive75
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 18
Inscription: 12 Mai 2003

Message le Jeu Jan 12, 2006 23:15

Salut,

j'utilise les cookies pour l'un des sites dont je m'occupe.

C'est finalement la solution la meilleure et la plus souple et précise à mon avis, et je ne suispourtant pas fan des cookies.

Voilà un bout de code qui peut peut être t'aider

si pas de détection de cookie, tu le créé
le cookie 1 contient le login
le cookie 2 contient le pwd
if(!$HTTP_COOKIE_VARS["phoenixhermes1"])
{
setcookie("nomcookie", $login, time()+32400); /* expire dans 9 heures */
setcookie("nomcookie2", $pwd, time()+32400); /* expire dans 9 heures */
}

si les cookies existent :
$login = $HTTP_COOKIE_VARS["nomcookie"];
$pass = $HTTP_COOKIE_VARS["nomcookie2"];

dans ce cas tu récupère les valeurs et connecte l'internaute directement

en espérant t'avoir aidé

Olivier


e-kiwi
Modérateur
Modérateur
 
Messages: 15617
Inscription: 23 Déc 2003

Message le Ven Jan 13, 2006 8:19

(prendre conscience de toutes les failles de sécurité que ça implique :) )

death83
WRInaute discret
WRInaute discret
 
Messages: 90
Inscription: 6 Jan 2006

Message le Ven Jan 13, 2006 11:16

Pour les cookie j'utilise un petit subterfuge pour la sécurité.
DAns les cookie je stock le nom d'utilisateur et le mot de passe * par un chiffre aléatoire et haché. Le chiffre aléatoire est propre à l'utilisateur et stocké dans la bdd.

Pour l'identification je fais la même opération et je compare les 2 mots haché.

Comme ca je ne stock pas les mots de passe en cookie. Et le mot haché en lui même ne permetera a personne de se connecter avec.

L'ideal est aussi de faire la meme chose pour le login.


e-kiwi
Modérateur
Modérateur
 
Messages: 15617
Inscription: 23 Déc 2003

Message le Ven Jan 13, 2006 14:17

oui mais il suffit d etre sur l 'rdinateur ou est stocké le cookie pour avoir accès.

kelmenu
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 15
Inscription: 21 Juin 2005

Message le Sam Fév 11, 2006 2:50

J'ai exactement le même probleme. Comment peut on toujours augmenter la durée d'une session?

shrom
WRInaute impliqué
WRInaute impliqué
 
Messages: 865
Inscription: 5 Juil 2004

Message le Sam Fév 11, 2006 10:55

e-kiwi a écrit:oui mais il suffit d etre sur l 'rdinateur ou est stocké le cookie pour avoir accès.


Ou de sniffer le réseau pour récupérer le mot de passe valide pour la session.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités