8792 sujets

Développement web côté serveur, CMS

Bonsoir,

J'aimerais savoir si il est possible d'afficher une page en PHP sans qu'elle soit interprêtée par le navigateur... Donc, afficher la page stockée sur le serveur en fait...

Et si oui, comment ?


Merci d'avance Smiley cligne
Modifié par SolykZ (25 Nov 2006 - 19:17)
Et tu veux ouvrir un fichier.php qui n'est pas à toi et où se trouve tous les paramètres de connexions, dont mot de passe, à une base de données qui n'est pas la tienne ?

Smiley lol
-_-' aucun rapport !

Le fichier auquel je veux avoir accès est le fichier que j'ai inclu dans celui-ci, fichier m'appartenant vu que faisant partie de mon compte. Seul problème, l'include ne se fait pas comme il se doit étant donné qu'il y a déjà un doctype, head, etc... et donc je compte ouvrir ce fichier pour voir si je ne peux pas récupérer le script d'affichage des messages et l'inclure sur ma propre page... Sait-on jamais, l'on peut rêver !

Il n'est aucunement question de prendre possession de fichiers ne m'appartenant pas, j'ai déjà assez d'emmerdes avec mes propres fichiers !!!
Il suffit de remplacer temporairement l'include par la fonction highlight_file().

<?php
// include "un_fichier.php";
highlight_file("un_fichier.php");
?>

http://fr2.php.net/manual/fr/function.highlight-file.php

Par contre, si vous n'avez pas accès au serveur, vous ne pouvez pas le faire. Ni include, non plus...

En fait, je ne comprend pas bien... Smiley confuse
Modifié par GeorgesM (21 Nov 2006 - 20:31)
SolykZ a écrit :

Il n'est aucunement question de prendre possession de fichiers ne m'appartenant pas, j'ai déjà assez d'emmerdes avec mes propres fichiers !!!


Tu n'as pas compris l'allusion, je ne te soupçonne évidemment de rien. Mais est ce que tu imagines l'horreur qu'on aurait en terme de sécurité si ce que tu demandes était ne serait ce qu'envisageable ?
Une autre solution possible :

readfile("fichier.php");

ou encore :

echo file_get_contents("fichier.php");

Et une solution générique pour n'afficher que la partie qui est dans le BODY du document inclus, si tu as fait l'erreur de mettre un doctype et une section d'en-tête et que tu ne peux plus réparer le problème à la source. C'est pas génial mais ça peut dépanner.

ob_start();
include("fichier.php");
$contenu = ob_get_contents();
ob_end_clean();
$contenu = preg_replace('#<body>(.*)</body>#si', "$1", $contnu);
echo $contenu;
GeorgesM a écrit :
En fait, je ne comprend pas bien... Smiley confuse


J'aimerais afficher le fichier machin.php situé sur un serveur distant sans qu'il soit "calculé" par le serveur... Donc, le fichier tel qu'il est écrit sur le serveur distant...

clb56 a écrit :


Tu n'as pas compris l'allusion, je ne te soupçonne évidemment de rien. Mais est ce que tu imagines l'horreur qu'on aurait en terme de sécurité si ce que tu demandes était ne serait ce qu'envisageable ?


Bah il parait qu'en informatique tout est possible, alors pourquoi pas ?


En fait, le fichier que j'essaies de récupérer vient de Internet-Services. Leur façon de faire ne me convient pas (iframes) et j'espérais pouvoir faire un include de ce fichier dans le mien pour l'accorder totalement avec ma page, sans scrollbars, pubs et compagnie...



Quant à la fonction Highlight, je viens de la tester et elle ne me ressort pas ce que j'espérais (voir ici)...

QuentinC a écrit :
Une autre solution possible :

readfile("fichier.php");

ou encore :

echo file_get_contents("fichier.php");

Et une solution générique pour n'afficher que la partie qui est dans le BODY du document inclus, si tu as fait l'erreur de mettre un doctype et une section d'en-tête et que tu ne peux plus réparer le problème à la source. C'est pas génial mais ça peut dépanner.

ob_start();
include("fichier.php");
$contenu = ob_get_contents();
ob_end_clean();
$contenu = preg_replace('#<body>(.*)</body>#si', "$1", $contnu);
echo $contenu;


Je viens de tester les deux premières solutions, elles m'affichent le document "calculé", et non la source elle-même... Quant à la troisième solution, elle ne fonctionne pas (elle est encore sur ma page)


Peut-on imaginer un script qui, lors du chargement de la page (ou appui sur un bouton, un lien ou que sais-je) m'affiche une boite de téléchargement pour le fichier machin.php ?
Modifié par SolykZ (21 Nov 2006 - 21:48)
SolykZ a écrit :

Bah il parait qu'en informatique tout est possible, alors pourquoi pas ?


Si tu ne veux vraiment rien comprendre alors libre à toi. Pour ma part j'abandonne.

Mais là c'est un peu grave quand même.
Modifié par clb56 (21 Nov 2006 - 21:49)
Bon. On est bien d'accord que le fichier est distant. Donc, on ne peux pas le lire avec les fonctions habituelles.
Même include est limite, et de toute façon, fait interpréter le code sur le serveur distant...

a écrit :

Peut-on imaginer un script qui, lors du chargement de la page (ou appui sur un bouton, un lien ou que sais-je) m'affiche une boite de téléchargement pour le fichier machin.php ?


Avec vos script, aucun problème. Avec le script des autres, non. C'est d'ailleurs interdit de regarder du code quand on n'y est pas invité. Comme ces scripts ne sont pas sur votre serveur, vous n'avez normalement pas accès aux sources.

Vous pouvez néanmoins regarder le code html généré par le script.
Modifié par GeorgesM (21 Nov 2006 - 21:54)
clb56 a écrit :


Si tu ne veux vraiment rien comprendre alors libre à toi. Pour ma part j'abandonne.


Je ne suis pas trop du genre à abandonner une route dès la première épine (la preuve même, mon site, si je ne m'étais pas cassé la tête je ne sais combien de fois j'en serais encore à mettre à jour l'ancienne version made in FrontPage) donc à moins d'avoir vraiment la certitude que ce n'est pas faisable je continuerai !!
Les fichiers php sont interceptés par le serveur pour être interprétés.
C'est pour cela qu'on ne peux pas télécharger un fichier php. C'est le serveur (apache ou autre) qui empêche l'opération.

Conclusion: Pas faisable. (sauf avec des techniques de pirates Smiley diablo )
Modifié par GeorgesM (21 Nov 2006 - 21:59)
GeorgesM a écrit :
(sauf avec des techniques de hackers Smiley diablo )


Je me doutais d'une réponse de ce genre... Et disons qu'ayant testé la chose, je peux dire que ce n'est pas dans mes cordes... Smiley rolleyes

Et n'y a t'il pas un autre moyen d'inclure cette foutue page au sein de la mienne, autrement que par une iframe ?? Parce que bon, le résultat n'est tout de même pas fameux du tout...
Modifié par SolykZ (21 Nov 2006 - 21:59)
GeorgesM a écrit :

Avec vos script, aucun problème. Avec le script des autres, non. C'est d'ailleurs interdit de regarder du code quand on n'y est pas invité. Comme ces scripts ne sont pas sur votre serveur, vous n'avez normalement pas accès aux sources.

Vous pouvez néanmoins regarder le code html généré par le script.


Oui, mais étant donné que c'est un code censé être mis à jour relativement régulièrement (c'est en réalité un livre d'or), je me vois mal mettre ma page à jour à chaque nouveau message sur le "vrai" livre d'or... Pour faire ça, autant les recevoir par E-mail et les copier/coller dans ma page... Smiley ravi
SolykZ a écrit :

Le fichier que j'essaies de récupérer vient de Internet-Services. Leur façon de faire ne me convient pas (iframes)

Aucun besoin d'insérer les fonctionnalités d'internet-services via un iframe. Ils prévoient dans leurs fonctionnalités un lien retour vers le site qui utilise leur service, et la page que l'on souhaite en plus.

Alors de deux choses l'une :

. Tu utilises leurs services de la manières la plus simple et sans critiques.

. Tu apprends à intégrer toi même ce genre de fonctionnalités (forum, livre d'or...) dans ton site.
Modifié par clb56 (21 Nov 2006 - 22:20)
Bon, si je suis ici c'est pour trouver de l'aide, pas pour me faire titiller les nerfs, un peu comme tout le monde je crois ! Donc bon, si c'est pour continuer sur cette lancée, continue seul j'ai d'autres trucs à faire... Smiley cligne