Aller au contenu

Sujets conseillés

Posté

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.

Posté

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

Posté

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 ?

Posté

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 ?

Posté

Je connais ça mais j'aurai toujours le même problème avec les sessions donc ça peut pas fonctionner.

Posté

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")
?>

Posté (modifié)

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
Posté

Ok c'est bien ce que je pensais alors.

Et le problème est le même avec fopen c'est bien ça ? j'ai bien compris ?

Posté

Ok, j'ai rien dis :)

Il me semblait avoir fais un script php permettant un include distant....

Je vais regarder ca....

Posté (modifié)

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
Posté (modifié)
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

Veuillez vous connecter pour commenter

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



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