|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre chevronné
![]() Inscription : janvier 2006 Messages : 918 ![]() |
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 |
|
|
00
|
|
|
#2 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
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. |
|
|
00
|
|
|
#3 |
|
Membre chevronné
![]() Inscription : janvier 2006 Messages : 918 ![]() |
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 ? |
|
|
00
|
|
|
#4 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
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 ? |
|
|
00
|
|
|
#5 |
|
Membre chevronné
![]() Inscription : janvier 2006 Messages : 918 ![]() |
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. |
|
|
00
|
|
|
#6 | ||
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Citation:
Citation:
|
||
|
|
00
|
|
|
#7 | |||||
|
Membre chevronné
![]() Inscription : janvier 2006 Messages : 918 ![]() |
Citation:
index.php?page=mapage.php Certaines données à exporter sont générées par index.php (données génériques) et d'autres (données spécifiques de l'état consulté) par mapage.php. Il faudrait donc pouvoir faire des inclusions avec des arguments, mais je crois que ce n'est pas possible. C'est la raison pour laquelle je me suis résolu à passer par des file_get_contents, qui ont l'avantage de réinitialiser bien proprement toutes mes variables de consultation lors de chaque requête. Merci beaucoup pour le coup de main, je pense que je vais pouvoir m'en sortir avec un code du genre Code :
Code :
|
|||||
|
|
00
|
|
|
#8 | |||
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Citation:
Code :
file_get_contents("http://serveur/index.php?page=$p&sid=$sid"); Code :
|
|||
|
|
00
|
|
|
#9 | ||
|
Membre chevronné
![]() Inscription : janvier 2006 Messages : 918 ![]() |
Merci, j'ai eu beau essayer, je n'ai pas réussi, alors j'ai triché un peu avec ce code :
Code :
Merci du coup de main cependant, j'ai appris pas mal de choses. |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com