Aller au contenu

Utilisation _SESSION


loudo

Sujets conseillés

Bonjour,

Je me pose des questions car je réfléchis pour proposer tout ou partie de mon site en marque blanche.

Ma question est la suivante, je vais essayer d'être clair.

J'ai un serveur SA qui correspond à mon site et un serveur SB qui correspond à un site qui utiliserai le service en marque blanche.

Si dans une page php du serveur SB j'utilise la fonction fopen pour ouvrir une page php du serveur SA comment réagit la variable $_SESSION ?

Est ce que l'exemple ci-dessous fonctionne et affiche "test" ?

je crois que non mais je voudrai être sur.

Page sur le serveur SB:

$_SESSION["toto"] = "test";
fopen("serveura/pagea.php");
fread.....
..

Page sur le serveur SA:

pagea.php

echo $_SESSION["toto"]; // test ou rien ?

Merci d'avance et j'espère que j'ai été clair.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

La session est propre au serveur qui appelle la page. Pour toi, c'est transparent et le script devrait t'afficher 'test'.

A tester tout de même :)

Portekoi

Lien vers le commentaire
Partager sur d’autres sites

Par contre j'ai peur qu'il y ai un problème vu que la page sur le serveur SA va être appelée par le serveur SB et non un client Web. Il risque pas d'y avoir un mélange des sessions ?

Lien vers le commentaire
Partager sur d’autres sites

Le client Web c'est le navigateur.

Comment ça se passe alors quand j'ai deux navigateur qui appellent la page sur le serveur B. Le serveur va lui même ouvrir la page sur le serveur A. Il y aura bien deux sessions différentes ?

Lien vers le commentaire
Partager sur d’autres sites

Et bien dans ton code php, include en local serait :

<?

include("monfichier.php")

?>

Hors pour ce que tu veux faire, il va falloir utilisateur un include distant donc :

<?

include(&quot;http://ww.serveura.com/monfichier.php")

?>

Si les paramètres le permettent biensûr :)

Un peu de lecture : http://fr.php.net/include/

Portekoi

Lien vers le commentaire
Partager sur d’autres sites

En faisant ça j'aurai le même problème.

Les sessions vont se mélanger si j'utilise lavariable $_SESSION dans monfichier.php.

<?
include("http://ww.serveura.com/monfichier.php")
?>

Lien vers le commentaire
Partager sur d’autres sites

L'include du fichier distant &quot;http://ww.serveura.com/monfichier.php" se fait sur ce que ce fichier génère lors de la requête HTTP (tu y accès avec HTTP) ... et non sur le code PHP ...

Tu ne peux pas faire d'include du code PHP distant à moins qu'il soit affiché en texte par exemple (ça devrai te paraître logique, sinon il y aurait quelques problèmes de sécurité). Ce n'est meme pas une question de domaine... simplement du fait qu'un include vers un chemin relatif ou absolu n'utilise pas le protocole HTTP.

Tu ne pourras pas passer non plus par un cookie si les domaines sont différents (les navigateur ne reprennent pas les cookies d'autres domaines pour une requête sur un domaine... pour des raisons de sécurité).

Modifié par TheRec
Lien vers le commentaire
Partager sur d’autres sites

Non je ne dis pas que l'include distant est impossible, il suffit d'activer les Gestionnaires d'URL de PHP (qui ne le sont pas par défaut normalment) et ensuite il est possible d'include en utilisant une URL pointant vers le fichier désiré.

include("http://www.serveura.com/monfichier.php")

on peu même imaginer lui passer des paramètres GET

include("http://www.serveura.com/monfichier.php?var1=valeur1")

Mais si le serveur distant peut interpréter le fichier (PHP), il le fera (c'est le serveur distant que l'interprète !) et retournera ce que le script retourne en temps normal (exécution locale). Si en revanche le code PHP n'est pas interprété, il sera retourné comme du texte brûte et dans ce cas le code sera interprété par le serveur "local"... (sans même faire appel à la fonction eval).

Mais bon ce dernier cas n'est pas souhaitable d'un point de vue sécurité... car si quelqu'un essaie d'accéder au fichier directement en entrant l'URL dans son navigateur il vera le code s'afficher, en tout logique !

Modifié par TheRec
Lien vers le commentaire
Partager sur d’autres sites

http://ww.serveura.com/monfichier.php

<?
$_SESSION["toto"] = "valeurb";
?>

<?
$_SESSION["toto"] = "valeura";
include("http://ww.serveura.com/monfichier.php")
echo $_SESSION["toto"];
?>

Il va afficher "valeura" ou "valeurb" ?

<{POST_SNAPBACK}>

valeura

apres tu pourrais envoyer en paramètre de ton code includé ou fopené un identifiant de session et donc en bidouillant bien

ca doit etre possible

Modifié par bozoleclown
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...