Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/11/2007, 00h35   #1
FMC
Invité régulier
 
Inscription : mai 2005
Messages : 25
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 25
Points : 9
Points : 9
Par défaut [Cookies] Session au travers des sockets

Bonjour,


je cherche à pouvoir me logger à mon site via une requête POST en PHP, et pouvoir ensuite parcourir les pages en continuant à être loggé.

Le problème qui se pose, c'est que j'arrive à m'identifier, mais je ne le reste pas. Dès la redirection (Header()) effectuée, mon identification de session est perdue.

Existe-t-il un moyen de rester "loggé" ?


Merci !
FMC est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2007, 02h14   #2
Membre confirmé
 
Avatar de Mogwaï
 
Inscription : mai 2004
Messages : 247
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : mai 2004
Messages : 247
Points : 243
Points : 243
Envoyer un message via MSN à Mogwaï
En gêrant la lecture/écriture du cookie de session dans l'entête HTTP ?
__________________
Etre à son compte, y'a rien de mieux !
Mogwaï est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2007, 11h22   #3
FMC
Invité régulier
 
Inscription : mai 2005
Messages : 25
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 25
Points : 9
Points : 9
Concrètement ça peut se faire comment ?
FMC est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2007, 11h48   #4
Membre confirmé
 
Avatar de Mogwaï
 
Inscription : mai 2004
Messages : 247
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : mai 2004
Messages : 247
Points : 243
Points : 243
Envoyer un message via MSN à Mogwaï
"Etre loggé", comme tu dis, c'est posséder un cookie sur ta machine que le serveur t'a envoyé lorsque tu t'es connecté. Ensuite, à chaque appel de page, ton navigateur renvoie ce cookie au serveur. Ce dernier lit ce cookie et vérifie qu'il le connaisse bien, et récupère les informations de session correspondantes. Si il considere ton cookie comme valide, il te considere comme connecté et donc te renvoie une page en conséquence. Sinon, il ne te considère pas comme connecté, même si tu as entré tes identifiants la fois d'avant.

Pour récuperer ce cookie, il faut lire le header correspondant au cookie dans la page reçue lorsque tu te connectes.

Je suppose que tu utilises fsockopen, puisque tu parles de socket ?
__________________
Etre à son compte, y'a rien de mieux !
Mogwaï est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2007, 15h24   #5
FMC
Invité régulier
 
Inscription : mai 2005
Messages : 25
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 25
Points : 9
Points : 9
Oui tout à fait j'utilise fsockopen().

Je capte comment envoyer le cookie, même si je sais pas concrètement comment ça se passe niveau syntaxe. Par contre, pour récupérer la session, je ne sais pas comment faire. La page login renvoie directement à une autre, celle qui vérifie le login doit sans doute créer le cookie.

Comment faire pour l'intercepter ?
FMC est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2007, 15h58   #6
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Ce n'est pas vous (le client) qui gérez ou avez accès à la session. Tout ce que vous devez faire c'est (re)transmettre l'identifiant de session que le serveur vous a attribué. Par contre, ce dernier point varie, car pour un serveur PHP, il existe deux méthodes de transmission de l'identifiant (le serveur pouvant proposer les deux pour des raisons de portabilité) : le cookie (recommandée) ou la réécriture des liens internes (use_trans_sid) - le serveur réécrit les liens pour y inclure l'identifiant en paramètre GET et les formulaires pour y ajouter en champ caché l'identifiant (ceci étant configurable).

Toutes les informations liées aux cookies figurant, peu importe le sens (de la part du serveur il s'agit de l'entête Set-Cookie et du client quand vous les renvoyez : Cookie - faire une recherche pour plus de précisions) parmi les entêtes. Et la fonction pour lire les entêtes : stream_get_meta_data ?
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2007, 17h33   #7
FMC
Invité régulier
 
Inscription : mai 2005
Messages : 25
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 25
Points : 9
Points : 9
Le problème, c'est que dans mon cas, la page qui créé le cookie, redirige vers une autre, et je ne sais pas comment intercepter cette page.

Car du au session_start(), la nouvelle page qui va s'afficher, créera une nouvelle variable de session.
FMC est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2007, 17h55   #8
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Si redirection il y a, vous devriez trouver un entête Location (ne pas tenir compte de la casse) parmi le (sous-)tableau renvoyé par la fonction stream_get_meta_data à la clé wrapper_data.

Mais c'est tout le problème de l'utilisation de fonctions bas niveau (type socket) : c'est à vous que revient la gestion des redirections.

PS : par redirection j'entends celle qui sont effectuées côté serveur (HTTP).
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h18.


 
 
 
 
Partenaires

Hébergement Web