Fichier distant et passage de paramètres

ViPHP
ViPHP | 3607 Messages

23 juil. 2009, 11:13

Bonjour à tous!
Me voilà avec un problème bien embêtant...
Prenons trois sites a.com, b.com et c.com
Et admettons que je souhaite leur coller un footer commun qui par exemple regrouperait ces trois urls...
Jusqu'a maintenant j'avais hébergé sur a.com un script php qui pourrait ressembler à ça (footer.php):
<?php
echo 'a.com | b.com | c.com';
?>
Et je l'appelait sur chaque site via file_get_contents()...
Comme ça un seul fichier à modifier pour que tout roule!
Seulement il me prend l'idée de rendre un peu modifiable ce footer celon le site qui l'appel (en l'occurence c'est pour adapter le script d'analyse visiteurs)...
Et patatra pas moyen de faire quoi que ce soit...
Toute les données $_SERVER contenu dans footer.php se rapporte à a.com quelque soit le site appelant, donc pas moyen de faire un tets là-dessus, l'include distant n'est pas disponible...
Je me demande donc comment faire pour pouvoir passer un quelconque paramètre à mon script...
J'ai pensé aux socket ou à curl... mais rien de bien concret... :(
Quelqu'un aurait-il déjà été confronté à ce genre de problèmatique? une solution miracle ;) ?
Merci d'avance!!!

Eléphant du PHP | 111 Messages

23 juil. 2009, 11:16

Hum, peut être que dans les web services ...

ViPHP
ViPHP | 3607 Messages

23 juil. 2009, 11:19

Hum également...
Qu'entends-tu par là? En sachant bien que si je pose toutes ces questions, c'est que je souhaite que tout le bazard ce passe côté serveur,et surtout sur mes serveurs...

Eléphant du PHP | 111 Messages

23 juil. 2009, 11:46

Un web service te permet d'appeler une fonction php à distance, en lui passant des paramètres, et de renvoyer le résultat dans un fichier xml.

Je les utilisais en C#, je pense que php les intègre de manière tout aussi performante.

Il faut chercher de ce côté là peut être ^^.

Eléphanteau du PHP | 31 Messages

23 juil. 2009, 12:07

Si les 3 sites sont hébergés sur un même serveur, on pourra bien faire 3 liens symboliques à partir d'un seul fichier footer.php, non?

ViPHP
ViPHP | 5924 Messages

23 juil. 2009, 19:27

C'est obvious. Si tu fais un get_file_contents('http://…'); , la variable $_SERVER concernera la connexion qui vient d'être initiée.

Je plussoie la piste que lance doviet. D'où la question suivante :
Si les hébergements de tes sites sont sur le même compte, tu as accès aux répertoires des autres sites à partir de n'importe lequel de tes sites ?
Donc en gros, sont-ils sur le même espace de stockage ?

ViPHP
ViPHP | 3607 Messages

23 juil. 2009, 21:57

Bonsoir,
Alors oui, tout les sites sont sur le même serveur....
Mais quitte à devoir toucher à autre choses que php...
Il serait peut-être plus simple que j'utilise curl, les socket, ou encore les include distant... non?
Parceque là faire des liens symboliques, ça devient compliqué... :s

ViPHP
ViPHP | 5924 Messages

23 juil. 2009, 22:46

Il serait peut-être plus simple que j'utilise curl, les socket
curl, socket. Tu es sûr d'avoir bien compris mon explication ? Que t'y accèdes avec Firefox, Inetrnet Explorer, Curl, Socket, Stream, file_machin, tant que t'y accèdes en http, le résultat est le même.
ou encore les include distant... non?
Ca veut dire qu'il faut afficher le code plutôt que l'exécuter. C'est moyen. En général les include distant c'est à éviter.
Alors oui, tout les sites sont sur le même serveur....
Mais quitte à devoir toucher à autre choses que php...
Toutes les solutions que tu envisages, c'est classiquement des solutions qu'on utilise en dernier recours, quand les sites ne sont pas localisés au même endroit. Les sites sont sur le même serveur, la solution est ultra-simple, tu inclues le fichier directement, localement, en quoi c'est compliqué ? En quoi tu veux complexifier en rajoutant des connexions bizarres.

Donc si tes sites sont organisés de cette manière :

Code : Tout sélectionner

/var/www/ton-compte/a.com/ /var/www/ton-compte/b.com/ /var/www/ton-compte/c.com/
Qu'est ce qui t'empèche de mettre le fichier à la racine de ton compte, et de l'inclure directement à partir de tes sites ?

Code : Tout sélectionner

/var/www/ton-compte/footer.php
include('../footer.php');
Parceque là faire des liens symboliques, ça devient compliqué... :s
Compliqué ???
Faire un lien symbolique c'est ça :
ln -s source lien

Avec un équivalent en PHP si tu n'as pas d'accès SSH. Je ne dis pas que c'est la solution immédiate que j'aurais proposé, mais ça a le mérite d'être largement plus simple que ce que tu envisages. :-/