IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Cookies] Session au travers des sockets


Sujet :

Langage PHP

  1. #1
    FMC
    FMC est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 25
    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 !

  2. #2
    Membre expérimenté Avatar de Mogwaï
    Inscrit en
    Mai 2004
    Messages
    247
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2004
    Messages : 247
    Par défaut
    En gêrant la lecture/écriture du cookie de session dans l'entête HTTP ?

  3. #3
    FMC
    FMC est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 25
    Par défaut
    Concrètement ça peut se faire comment ?

  4. #4
    Membre expérimenté Avatar de Mogwaï
    Inscrit en
    Mai 2004
    Messages
    247
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2004
    Messages : 247
    Par défaut
    "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 ?

  5. #5
    FMC
    FMC est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 25
    Par défaut
    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 ?

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    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 ?

  7. #7
    FMC
    FMC est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 25
    Par défaut
    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.

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    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).

Discussions similaires

  1. Session et transaction avec des sockets
    Par redcurve dans le forum Framework .NET
    Réponses: 0
    Dernier message: 18/06/2014, 13h33
  2. [JMeter] Gestion des cookies + sessions
    Par benratti dans le forum Tests et Performance
    Réponses: 3
    Dernier message: 15/10/2007, 12h36
  3. Réponses: 26
    Dernier message: 25/11/2005, 17h12
  4. Réponses: 12
    Dernier message: 24/09/2003, 16h26
  5. utilisation des sockets sous windows
    Par Tupac dans le forum Réseau
    Réponses: 2
    Dernier message: 21/12/2002, 19h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo