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] La fonction file_get_contents() et les sessions


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut [Cookies] La fonction file_get_contents() et les sessions
    Bonjour

    J'ai l'impression que la fonction file_get_contents() utilisée sur une URL n'utilise pas les données contenues dans la session présente.
    Ai-je raison, et dans ce cas, comment faire pour que la fonction utilise la session en cours ?
    Je pense passer par une variable en GET, mais c'est un peu bourrin, et j'aimerais mieux utiliser une autre solution.

    Merci d'avance

  2. #2
    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 vous souhaitez (ré)utiliser une session, il faut avec les fonctions fopen/file_get_contents, employer le quatrième paramètre (le contexte) de cette fonction pour spécifier les entêtes selon vos besoins. Des extensions comme cURL vous permettrait certainement de vous faciliter la tâche.

    Tout cela dépend de la configuration du serveur distant (transmission de l'identifiant par cookie et/ou par réécriture des URL et formulaires) et de ce que vous cherchez précisément à faire.

  3. #3
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut
    Merci beaucoup pour la réponse, je ne connaissais pas les contextes.
    Par contre, j'ai beau regarder la documentation php, je ne vois pas comment insérer une session dans un contexte. Y a-t-il un moyen de transmettre les variables de session d'un seul coup, ou dois-je les passer en POST ?

  4. #4
    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
    La session n'existe que côté serveur à l'opposé d'un cookie. Par conséquent, c'est son identifiant que l'on transmet à chaque requête et non son contenu. Cela peut être fait par cookies (il y a une entête HTTP pour les cookies si je ne m'abuse) ou par la méthode GET ou POST suivant la configuration du serveur auquel vous vous adressez (voir les valeurs des directives session.use_cookies, session.use_only_cookies et session.use_trans_sid).

    Que cherchez-vous à faire exactement ? A consulter une page distante requérant au préalable l'ouverture d'une session sur ce serveur ?

  5. #5
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Par défaut
    En fait, j'ouvre par un script php plusieurs pages du même serveur, qui génèrent du contenu que je vais écrire dans des fichiers.
    L'objet de ce script est de pouvoir générer des fichiers imprimables sous excel (via xlhtml) de l'intranet consulté par l'utilisateur.

    Exemple : je consulte http://serveur/index.php?page=ensemble.php et j'obtiens un seul fichier excel contenant 3 onglets page1, page2 et page3. Ces pages sont également consultables sous la forme http://serveur/index.php?page=page1 (chacune des pages étant appelée par ensemble.php)

    Le serveur appelant et le serveur consulté sont donc le même dans mon cas, et les sessions contiennent les variables nécessaires à la consultation (page demandée, date, devise, etc).

    Si j'ai bien compris, en transmettant l'id de session, je vais pouvoir demander à la page d'utiliser la même session dans les 3 pages appelées.

  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
    Citation Envoyé par guidav
    Le serveur appelant et le serveur consulté sont donc le même dans mon cas, et les sessions contiennent les variables nécessaires à la consultation (page demandée, date, devise, etc).
    Une simple inclusion ne suffit pas en ce cas ?

    Citation Envoyé par guidav
    Si j'ai bien compris, en transmettant l'id de session, je vais pouvoir demander à la page d'utiliser la même session dans les 3 pages appelées.
    Oui c'est l'idée puisque les sessions fonctionnent ainsi et restent basées sur le serveur. C'est le seul moyen de retrouver votre session (et donc les informations qu'elle contient) entre chacun de vos appels (requête pour être précis, le protocole HTTP étant sans état).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Cookies] La fonction file_get_contents() et sessions
    Par AirOne70 dans le forum Langage
    Réponses: 1
    Dernier message: 02/03/2011, 10h32
  2. Réponses: 3
    Dernier message: 01/05/2006, 14h09
  3. Réponses: 5
    Dernier message: 22/03/2006, 14h54
  4. [Cookies] Problème avec les sessions PHP !!!
    Par boukay dans le forum Langage
    Réponses: 4
    Dernier message: 14/02/2006, 17h32
  5. [Cookies] newbie: Les sessions en PHP
    Par yoda_style dans le forum Langage
    Réponses: 12
    Dernier message: 20/01/2006, 20h49

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