Aller au contenu

Include() d'un fichier externe


Cleden

Sujets conseillés

Bonjour,

Sur tous mes sites, j'ajoute en bas de page un fichier mep.php qui affiche des liens vers les autres sites.

Ce fichier est associé à une table de données. Je dois donc créer une table pour chaque site contenant ce fichier, ce qui est un peu ennuyeux.

Est-il possible de n'avoir cette table que sur un site et de d'utiliser la fonction include() pour les autres site ?

Merci d'avance pour vos réponses... :rolleyes:

Loïc.

Lien vers le commentaire
Partager sur d’autres sites

Bien sûr, tu peux faire un include par exemple (en précisant l'url complète).

include 'http://ww.site.com/script.php?variable=$1';

Par contre, cela n'auras pas le même effet qu'un include intrasite. Si cela ne suffit pas, dis le, il y a plein d'autres solutions.

Lien vers le commentaire
Partager sur d’autres sites

Attention, assure toi bien que le fichier à inclure ne contient pas de balises du style <html> <body> et autres qui pourraient poser problèmes. S'il ne s'agit que d'un script, pas de problème à priori. Assure toi bien de connaitre le contenu du script aussi, ça serait pas cool que ça soit un truc parasite qui fout le boxon partout ;)

Lien vers le commentaire
Partager sur d’autres sites

Bien sûr, tu peux faire un include par exemple (en précisant l'url complète).

Je suis étonné, je pensais qu'il y avait des limitations par ovh, pour des questions de sécurité. J'ai déjà essayé en utilisant cette méthode et je n'obtiens rien si ce n'est des messages d'erreur :huh:

Attention, assure toi bien que le fichier à inclure ne contient pas de balises du style <html> <body> et autres qui pourraient poser problèmes.

Le fichier a inclure contient une connexion sql, cela ne pourrait-il pas être la cause de mon problème et de tous ces messages d'erreurs ?

Loïc.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

C'est strictement interdit pour les raisons de droits d'auteurs et de propriété intellectuelle. Inclure un fichier qui n'est pas sur notre site et en modifier le contenu (sauf cas de licence approprié) n'est absolument pas autorisé.

Ce que tu souhaites faire correspond aux techniques d'aspirateurs de sites web. Même si cela reste dans le cadre privé, la bande passante du site "aspiré" en prend un sacré coup et, contre ton gré, tu peux lui causer des problèmes (saturation de connexions SQL ....).

La meilleure technique reste l'utilisation du lien ou de l'iframe (voire la frame). Là tu n'entraves pas les droits d'auteurs et propriété privée.

Sur tous mes sites, j'ajoute en bas de page un fichier mep.php qui affiche des liens vers les autres sites.

Ce fichier est associé à une table de données. Je dois donc créer une table pour chaque site contenant ce fichier, ce qui est un peu ennuyeux.

Est-il possible de n'avoir cette table que sur un site et de d'utiliser la fonction include() pour les autres site ?

A moins que je me sois trompé dans le sens d'intepretation. Dans le second cas de figure, ce que tu souhaites faire, c'est appeller le fichier mep.php de chaque site qui contient des liens vers d'autres sites.

Comme l'a signalé ElMoustiko, si ce fichier ne contient aucune balise html utilisé pour la structure primaire du document (donc unique : html, head, body ...), tu peux inclure le document sans aucun problème par l'intermédiaire de la fonction include (mais le problème de la bande passante sera toujours présent).

Petite correction du code de Berberber :

include 'http://ww.site.com/script.php?variable='.$1;

Bonne chance pour ton projet, et s'il y a une erreur d'interprétation, explique d'avantage ton problème ;)

Bonnes fêtes,

Xethorn

Lien vers le commentaire
Partager sur d’autres sites

Bonne chance pour ton projet, et s'il y a une erreur d'interprétation, explique d'avantage ton problème wink.gif

Oui, je crois qu'il y a une petite erreur d'interprétation :P En, j'utilise include php similiaire sur plusieurs de MES sites. Au lieu d'avoir plusieurs fichiers, je souhaiterai en avoir un seul afin que les modification se répercutent sur les autres sites.

Aucun problème de droits d'auteurs ni de bande passante car tous les sites concernés m'appartiennent ;) .

Par contre, la méthode que tu me donne ne fonctionne pas, cela doit probablement être du à la connection sql présente dans le fichier à inclure. En fait, cela revient à se connecter à la base sql d'un site à partir d'un autre site... possible ?

Loïc.

Lien vers le commentaire
Partager sur d’autres sites

A partir du moment où l'include est fait, le bout de code ne fait plus vraiment partie de l'autre site.

Par contre, il me semblait qu'OVH en mutualisé avait bloqué les includes par http (ce qui serait en tout cas une bonne chose) mais dans ton cas, tu peux contourner le pb si l'include est sur le même plan en mettant l'adresse sous la forme "/home/toncompte/www/.... "

Lien vers le commentaire
Partager sur d’autres sites

A partir du moment où l'include est fait, le bout de code ne fait plus vraiment partie de l'autre site.

Par contre, il me semblait qu'OVH en mutualisé avait bloqué les includes par http (ce qui serait en tout cas une bonne chose) mais dans ton cas, tu peux contourner le pb si l'include est sur le même plan en mettant l'adresse sous la forme "/home/toncompte/www/.... "

<{POST_SNAPBACK}>

Oui voilà, c'est bien ce qui le semblait ^_^ Malheureusement mes sites ne sont pas sur le même plan mais sur 5 60GP différents. Vous allez me dire que ça me reviendrai moins cher de passer en multidomaine mais le truc c'est que je ne paie pas tous ces hébergement :P

Merci tout de même pour vos réponses, je vais donc devoir attendre que mes sites grossissent un peu afin de passer à un hébergement plus performant et de pouvoir ainsi bénéficier des include() "externes".

Loïc.

Lien vers le commentaire
Partager sur d’autres sites

Ce qui est bloqué je crois, c'est le fait de pouvoir à partir d'un plan accéder à un autre.

Si ce que tu veux faire marchait, qu'est ce qui m'empêcherait de faire un include de tes scripts php et ainsi de te les pomper ? Donc ça parait logique que ce ne soit pas possible.

Par contre, une idée en passant: As-tu essayé en renommant ton bout de script à inclure en .htm ?

L'inconvénient est que tu ouvres la possibilité à n'importe qui de le lire, mais si tu lui donnes un nom compliqué, ça ne devrait pas poser de pb, et là c'est certain que tu pourras les inclure.

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

Si l'include ne fonctionne pas, c'est qu'il s'agit ni plus ni moins d'une restriction php. La solution est d'obtenir, non pas le code source du fichier, mais le résultat du code source. Je te conseille donc d'utiliser la fonction : file_get_contents() pour récuperer le code HTML sortant.

Au besoin, tu peux toujours définir une variable dans l'adresse :

file_get_contents('http://tonsite/?var=tavar');

Bonnes fêtes.

Lien vers le commentaire
Partager sur d’autres sites

Si ce que tu veux faire marchait, qu'est ce qui m'empêcherait de faire un include de tes scripts php et ainsi de te les pomper ? Donc ça parait logique que ce ne soit pas possible.
Biensûr, je comprend tout à fait :)  Mais mes intentions sont louables.

Par contre, une idée en passant: As-tu essayé en renommant ton bout de script à inclure en .htm ?

En fait, le fichier à includre comprend une connection sql donc je ne pense pas que ça marcherai.

Je te conseille donc d'utiliser la fonction : file_get_contents() pour récuperer le code HTML sortant.

Ca marche !!!! C'est génial comme fonction. En fait, je pensais me rabattre vers un flux RSS mais c'est compliqué à mettre en place. Cette fonction est absolument parfaite, elle va me permettre de peaufiner mon référencement en toute simplicité.

Merci à vous ;)

Loïc.

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...