PHP : inclure le contenu d une page exterieure !
Forum Programmation : PHP : inclure le contenu d une page exterieure !
Bonjour a tous !
Je créé un site en php et suis debutant ! mais j avance. J'ai un livre d'or sur un site exterieur que je voudrais inserer directement dans mon site et je recherche en vain le code php permettant d afficher le contenu de mon livre d'or a partir de son url.
heeeeelp me
merci d avance les loulous !
Salut
avec la fonction include
Code :
|
Message édité par BaCcHuSs@IDN le 02-10-2006 à 08:02:30
Salut et merci bacchus ! Jai bien fait ca mais ca me met un message d'erreur et je ne sais pas pourquoi ! voici le message :
Warning: php_network_getaddresses: getaddrinfo failed: Name or service not known in livre.php on line 4
Warning: Failed opening 'http://www.swisstools.net/guestbook.asp?numero=101117' for inclusion (include_path='./') in livre.php on line 4
tu as une idée ? ca veut dire quoi le message ?
merci d avance
ca veut dire que tu as une erreur à la ligne 4 du fichier livre.php, que la fonction getaddrinfo merde lamentablement, et que tu devrais ouvrir les fichier pour voir ce qu'il y a écris dedans.
mouths91 à dit : "[...]des rageux comme kelnem"
Répondre à Vinz42
ça peut aussi vouloir dire que l'inclusion de fichiers distants est interdite.
Répondre à crazycat@idn
Mais pourquoi toujours le PHP, le HTML marche très bien !
Utilise:
Code :
|
Message édité par laponies le 02-10-2006 à 22:24:49
Répondre à laponies
@laponies : Parce que ça ne fait pas la même chose.
mouths91 à dit : "[...]des rageux comme kelnem"
Répondre à Vinz42
pour inclure une page extérieure tu peut aussi utiliser file_get_contents($url) ou les sockets
en PHP5...
Et si le fopen (ou include) distant est interdit, j'ai un gros doute pour les sockets
Répondre à crazycat@idn
Répondre à laponies
ce n'est pas un problème de PHP5 ou non ... c'est un problème de serveurs !
Failed opening 'http://www.swisstools.net/guestbook.asp?numero=101117' for inclusion est assez explicite comme message : il ne parvient pas à inclure la page demandée ...
Et il n'y parvient pas, car le serveur de swisstools n'autorise pas les include distants ! Tout administrateur de serveur sait qu'il ne faut pas ouvrir son serveur aux include distants ;-)
Je pense, comme laponies, que la seule solution est le iframe ... ou un lien renvoyant vers le livre d'or en blanck !
Faux, la fonction include n'a aucun protocole pour une inclusion distante, sauf à partir de 5.x (je crois).
ce qui explique le mesage d'erreur actuel.
@zorro: si je parle de PHP5, c'est pour file_get_contents().
@okinou: depuis PHP 4.3.0, heureusement pour nous
Répondre à crazycat@idn
| laponies a écrit : Qu'est ce que ça change ? |
Ca ne génère pas du tout le même code quand tu fait un view source de la page...
mouths91 à dit : "[...]des rageux comme kelnem"
Répondre à Vinz42
k crazy, il m'avait semblé avoir déja lu un article avec l'utilisation du protocol http pour les include/require sur une version php5, mais effectivement, c'est marqué sur la doc, bah...j'ai eu confondre
| Vinz42 a écrit : Ca ne génère pas du tout le même code quand tu fait un view source de la page... |
Heu, ça va un peu plus loin que ça quand même
avec un include(), tu peux partager des éléments entre les différentes parties, alors qu'avec une iframe tu as des parties vraiment distinctes.
De plus, un navigateur voit une iframe comme un élement externe (et peut donc bloquer) alors qu'avec un include, tu restes dans le même environnement.
Répondre à crazycat@idn
| crazycat@idn a écrit : De plus, un navigateur voit une iframe comme un élement externe (et peut donc bloquer) alors qu'avec un include, tu restes dans le même environnement. |
Entièrement d'accord : les includes sont beaucoup mieux que les iframes ... car plus esthétiques, et permettent l'utilisation des variables php !
| zorro@IDN a écrit : Entièrement d'accord : les includes sont beaucoup mieux que les iframes ... car plus esthétiques, et permettent l'utilisation des variables php ! |
ya pas de mieux ou de pire.
Ca ne fait pas la même chose, c'est tout.
tout à fait. chaque chose a son utilité, le tout est de l'employer à bon escient sans tomber dans l'excès.
Répondre à crazycat@idn
..moi j'ai eu un soucis du meme genre en faisant mon sit car quand tu fais un include() en fait il va aller recuperer tout le code de ta page distante pour l'inclure dans la zone include, donc du <html> au </html> et en fait il va l'inclure dans le code source de ta page hote.
Comme ta balise include() est, dans ta page hote, entre les balises <body> et </body> il va integrer le code récupéré entre ces balises et donc forcement ça ne va pas marcher parce que tout ce que tu as entre tes balises <head> et </head> de ta page distante ne seront pas au bon endroit.
...j'espere que tu as compris car ce n'est pas très facile a expliquer... :$
A priori, un include est fait pour ouvrir des pages étudiées pour ça, donc "calibrées".
Si tu appelles des pages externes que tu ne maitrises pas, il vaut mieux passer par un fopen() (ou fsockopen()) de manière à pouvoir extraire les parties intéressantes et après les afficher.
Répondre à crazycat@idn
Il y a 2396 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
