Discussion:
PHP et file:
(trop ancien pour répondre)
Denis Beauregard
2013-04-26 14:20:14 UTC
Permalink
Bonjour,


J'ai fait un script PHP qui crée un fichier sous forme de page web.
Pour voir le résultat, ce script affiche un lien vers cette page
mais je n'arrive pas à voir la page en cliquant sur le lien.

Si j'édite la page avec Seamonkey et que je l'enregistre sans rien
changer, le lien est pourtant cliquable !

C'est quoi le problème ?

J'ai fait le test avec Seamonkey 2.17.1, Firefox 19.0.2 et Chrome
26.0.1410.64 m et le résultat est toujours le même.


J'ai ces liens :

http://127.0.0.1/url/script.php

C'est le script PHP, appelé via EasyPHP.


<a href="index.php">Index</a>

Celui-ci fonctionne bien.



<h1><a href="file:///C:/Users/compte/dossier/fichier.htm">creer
fichier.htm</a><br></h1>

Non cliquable. J'ai aussi essayé en le renommant fichier.php.

Mais si je copie le lien dans la barre d'adresse, il fonctionne,
tout comme en enregistrant le fichier. Par exemple, avec Chrome,
je fais "Ouvrir le lien..." sans résultat, mais "Copier l'adresse
du lien" puis coller dans la barre d'adresse, et cela fonctionne.

Toutefois, avec Chrome, il y a des outils de développement et j'ai
fini par trouver cette réponse, pour ce qu'elle vaut :

Not allowed to load local resource

M'enfin, pourquoi ce n'est pas permis ?



Denis
Eric Demeester
2013-04-26 16:23:24 UTC
Permalink
Denis Beauregard (Fri, 26 Apr 2013 10:20:14 -0400 - fr.comp.lang.php) :

Bonjour Denis,
Post by Denis Beauregard
http://127.0.0.1/url/script.php
C'est le script PHP, appelé via EasyPHP.
<a href="index.php">Index</a>
Celui-ci fonctionne bien.
J'ai un peu de mal à suivre. Je suppose que le script crée donc
fichier.htm ?
Post by Denis Beauregard
<h1><a href="file:///C:/Users/compte/dossier/fichier.htm">creer
fichier.htm</a><br></h1>
Ce n'est à mon avis pas un problème lié à PHP, mais à la construction de
ton URL.

Remplace
file:///C:/Users/compte/dossier/fichier.htm
par :
http://127.0.0.1/repertoire_du_site/fihier.htm

ça devrait mieux fonctionner, à mon avis.

Au passage, pourquoi conserver cet antique suffixe .htm, tellement moins
élégant que .html ?
--
Eric
Denis Beauregard
2013-04-26 16:30:38 UTC
Permalink
Le Fri, 26 Apr 2013 18:23:24 +0200, Eric Demeester
Post by Eric Demeester
Bonjour Denis,
Post by Denis Beauregard
http://127.0.0.1/url/script.php
C'est le script PHP, appelé via EasyPHP.
<a href="index.php">Index</a>
Celui-ci fonctionne bien.
J'ai un peu de mal à suivre. Je suppose que le script crée donc
fichier.htm ?
Oui.
Post by Eric Demeester
Post by Denis Beauregard
<h1><a href="file:///C:/Users/compte/dossier/fichier.htm">creer
fichier.htm</a><br></h1>
Ce n'est à mon avis pas un problème lié à PHP, mais à la construction de
ton URL.
Remplace
file:///C:/Users/compte/dossier/fichier.htm
http://127.0.0.1/repertoire_du_site/fihier.htm
ça devrait mieux fonctionner, à mon avis.
Non car le fichier n'est pas créé à l'intérieur de cette section.

En gros, le script complet crée l'image d'un cédérom que je ne veux
pas archiver à chaque semaine. Donc, il y a un dossier avec ces
images (j'ai 4 versions) et un autre avec les scripts.
Post by Eric Demeester
Au passage, pourquoi conserver cet antique suffixe .htm, tellement moins
élégant que .html ?
En 2006-2011, je produisais tous ces fichiers avec un logiciel DOS,
donc en 8.3. Je veux conserver la compatibilité avec les anciennes
versions (un client pourrait éditer à la main des fichiers et les
recopier sous le même nom après une mise à jour) et j'ai donc du .htm
pour ces fichiers.


Denis
Eric Demeester
2013-04-26 18:58:29 UTC
Permalink
Post by Denis Beauregard
Non car le fichier n'est pas créé à l'intérieur de cette section.
Ok.
Post by Denis Beauregard
En gros, le script complet crée l'image d'un cédérom que je ne veux
pas archiver à chaque semaine.
Ce que tu appelles l'image d'un cd-rom, c'est le site complet avec son
contenu, son arborescence de répertoires, etc. ?

Quel que soit le support de stockage choisi (un serveur web local ou
distant, un cd-rom, que sais-je), le site doit avoir une racine (un
répertoire racine plus précisément), et les autres éléments
(arborescence des répertoires, emplacements des pages, des images, des
positionnés relativement à ce répertoire racine.

Ça doit être pour ça que les liens « en dur » de type :
file:///C:/Users/compte/dossier/fichier.htm

ne fonctionnent pas. Enfin, à mon avis, je fais peut-être totalement
fausse route.
Post by Denis Beauregard
Donc, il y a un dossier avec ces
images (j'ai 4 versions) et un autre avec les scripts.
Scripts que tu veux stocker aussi ?

Désolé pour ces questions peut-être stupides, mais j'ai un peu de mal à
me faire une idée globale précise de ce que tu souhaites faire.
--
Eric
Denis Beauregard
2013-04-29 02:22:22 UTC
Permalink
Le Fri, 26 Apr 2013 20:58:29 +0200, Eric Demeester
Post by Eric Demeester
Post by Denis Beauregard
Non car le fichier n'est pas créé à l'intérieur de cette section.
Ok.
Post by Denis Beauregard
En gros, le script complet crée l'image d'un cédérom que je ne veux
pas archiver à chaque semaine.
Ce que tu appelles l'image d'un cd-rom, c'est le site complet avec son
contenu, son arborescence de répertoires, etc. ?
Oui. En gros, j'ai un ensemble de scripts PHP dont certains
produisent une base de données sous forme de pages web.
Post by Eric Demeester
Quel que soit le support de stockage choisi (un serveur web local ou
distant, un cd-rom, que sais-je), le site doit avoir une racine (un
répertoire racine plus précisément), et les autres éléments
(arborescence des répertoires, emplacements des pages, des images, des
positionnés relativement à ce répertoire racine.
file:///C:/Users/compte/dossier/fichier.htm
ne fonctionnent pas. Enfin, à mon avis, je fais peut-être totalement
fausse route.
Je ne vois pas pourquoi. Je ne comprends pas la logique qu'il y a à
ce qu'un lien depuis une page http: ne me permette pas de lire une
Post by Eric Demeester
Post by Denis Beauregard
Donc, il y a un dossier avec ces
images (j'ai 4 versions) et un autre avec les scripts.
Scripts que tu veux stocker aussi ?
J'archive de temps en temps ces scripts.
Post by Eric Demeester
Désolé pour ces questions peut-être stupides, mais j'ai un peu de mal à
me faire une idée globale précise de ce que tu souhaites faire.
Intéressant parce que je pense avoir finalement compris ce qui se
passe.

Mon script a une URL en http: La page a beau être sur mon ordi, pour
le navigateur, http: peut être n'importe où (même si c'est 127.0.0.1).
Je fais un lien vers une URL en file: La page est nécessairement
locale. Je pense qu'on veut empêcher un site web de lire des pages
sur un ordi en utilisant cette astuce.

Et cela me cause un autre souci. Je voulais mettre un moteur de
recherche sur mon site avec redirection du résultat vers le CD mais
je vois que c'est impossible.


Denis
Olivier Miakinen
2013-05-04 21:39:25 UTC
Permalink
[diapublication avec suivi]

Bonjour,

Je laisse la quasi totalité de la question pour les lecteurs de fciwa
qui ne liraient pas fclp.
Post by Denis Beauregard
[...]
http://127.0.0.1/url/script.php
C'est le script PHP, appelé via EasyPHP.
<a href="index.php">Index</a>
Celui-ci fonctionne bien.
<h1><a href="file:///C:/Users/compte/dossier/fichier.htm">creer
fichier.htm</a><br></h1>
Non cliquable. J'ai aussi essayé en le renommant fichier.php.
Mais si je copie le lien dans la barre d'adresse, il fonctionne,
tout comme en enregistrant le fichier. Par exemple, avec Chrome,
je fais "Ouvrir le lien..." sans résultat, mais "Copier l'adresse
du lien" puis coller dans la barre d'adresse, et cela fonctionne.
Toutefois, avec Chrome, il y a des outils de développement et j'ai
Not allowed to load local resource
M'enfin, pourquoi ce n'est pas permis ?
La réponse est là pour Firefox, mais c'est certainement la même pour
les autres navigateurs :
<http://www.chevrel.org/fr/faq/firefox/?id=18-les-liens-locaux-ne-marchent-pas-sur-mon-intranet>

Note que ce n'est pas un problème de PHP, alors je fais suivre vers
fciwa (après avoir hésité avec fr.comp.securite).

Cordialement,
--
Olivier Miakinen
Loading...