Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

PHP et file:

5 réponses
Avatar
Denis Beauregard
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

5 réponses

Avatar
Eric Demeester
Denis Beauregard (Fri, 26 Apr 2013 10:20:14 -0400 - fr.comp.lang.php) :

Bonjour Denis,

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.



J'ai un peu de mal à suivre. Je suppose que le script crée donc
fichier.htm ?

<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
Avatar
Denis Beauregard
Le Fri, 26 Apr 2013 18:23:24 +0200, Eric Demeester
écrivait dans fr.comp.lang.php:

Denis Beauregard (Fri, 26 Apr 2013 10:20:14 -0400 - fr.comp.lang.php) :

Bonjour Denis,

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.



J'ai un peu de mal à suivre. Je suppose que le script crée donc
fichier.htm ?



Oui.

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



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.

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
Avatar
Eric Demeester
Denis Beauregard (Fri, 26 Apr 2013 12:30:38 -0400 - fr.comp.lang.php) :

Non car le fichier n'est pas créé à l'intérieur de cette section.



Ok.

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.

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
Avatar
Denis Beauregard
Le Fri, 26 Apr 2013 20:58:29 +0200, Eric Demeester
écrivait dans fr.comp.lang.php:

Denis Beauregard (Fri, 26 Apr 2013 12:30:38 -0400 - fr.comp.lang.php) :

Non car le fichier n'est pas créé à l'intérieur de cette section.



Ok.

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.

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.



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
page file:

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.

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
Avatar
Olivier Miakinen
[diapublication avec suivi]

Bonjour,

Je laisse la quasi totalité de la question pour les lecteurs de fciwa
qui ne liraient pas fclp.

Le 26/04/2013 16:20, Denis Beauregard a écrit :

[...]

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 ?



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