Lien fichier local avec EasyPHP inactif

Résolu
damsterdamer Messages postés 15 Date d'inscription samedi 28 octobre 2006 Statut Membre Dernière intervention 25 septembre 2009 - 22 avril 2009 à 14:02
damsterdamer Messages postés 15 Date d'inscription samedi 28 octobre 2006 Statut Membre Dernière intervention 25 septembre 2009 - 24 avril 2009 à 13:10
Bonjour,
Voilà, j'ai un soucis tout bête, et malgré le temps passé dessus je n'arrive pas à le résoudre parce que je ne vois pas vraiment l'erreur...
J'utilise un script PHP qui fais office d' "explorateur limité". Il me permet de parcourir des dossiers en local par EasyPHP, de voir ce qu'ils contiennent, et de "lancer" les fichiers présents dans ces dossiers.

Seul petit bémol à la base, les liens vers mes fichiers locaux étaient du type "http://127.0.0.1/[...]/fichier.ext". Pour un mp3 par exemple, cela me force à le "télécharger" (ce que je ne comprends qu'à moitié, c'est le temps de téléchargement, après tout c'est du local... M'enfin.).
J'ai donc modifier le script afin que le lien apparaisse sous la forme "file:///C:/[...]/fichier.ext".
Jusque là, pas d'soucis, tout se déroule correctement.
Et au moment de tester, bim, problème : le lien est correcte, mais ne se lance pas du tout, il reste inactif...

Je m'explique : le lien est bien déclaré, il est tout bleu (^^) et passe au rouge lorsque je clique dessus ; il y a donc bien un bel HREF. L'adresse contenu est également valide (si je fais un copier/coller du lien dans la barre d'adresse, le fichier s'ouvre). Mais si je clique sur le lien, rien ne se passe, ormis la couleur (rollover par defaut) qui montre que le lien est actif, rien ne s'ouvre, aucun message, la page reste la même.

Ce que je ne comprends vraiment pas, c'est qu'en copiant/collant le lien, il fonctionne, mais en cliquant dessus, rien ne se passe ; le problème viendrait-il d'une configuration particulière d'EasyPHP ?

Je tiens à préciser que la page n'est faite que pour s'exécuter en local, et donc pas de réponse du genre "sur Internet, personne ne pourra accéder à ton disque dur, encore heureux parce que sinon..." etc.

Je voudrais juste savoir pourquoi en passant par EasyPHP, le lien ne fonctionne pas...

Merci d'avance !

Damien J.

6 réponses

damsterdamer Messages postés 15 Date d'inscription samedi 28 octobre 2006 Statut Membre Dernière intervention 25 septembre 2009
24 avril 2009 à 13:10
Bonjour,

Bon beh après divers test, Mea Culpa, les anciennes techniques de lien vers un fichier local depuis un serveur ne fonctionnent plus ne effet... Ni en HTML, ni en PHP, ni sur IE, ni sur FF..
(> Test en PHP
 > Test en HTML)

La seule condition pour que ça fonctionne encore est de lancer la page localement, et uniquement avec celle en HTML, forcément.

J'imagine que pour mon projet local, la seule méthode qu'il me reste doit être de "supprimer" cette sécurité directement sur le navigateur, mais dans ce cas ce post n'a plus lieu d'être ici.

Je te remercie pour ton aide, même si cela abouti à une impasse, ça m'a au moins donné l'idée de la direction dans laquelle chercher

Au revoir (la 1ere fois que je post ici, je vais essayer de clore ce topic ^^) et encore merci pour la réactivité !
3
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
22 avril 2009 à 21:30
Salut,

Tu ne devrais pas faire ça tu sais, parce que, sur internet, personne ... sorry

Peut on voir le code complet du lien ?

Cordialement,

Kohntark -
0
damsterdamer Messages postés 15 Date d'inscription samedi 28 octobre 2006 Statut Membre Dernière intervention 25 septembre 2009
23 avril 2009 à 00:31
Bonjour,
euh le code "complet" non, parce que c'est en deux pages et très long...
Le lien est généré par un ECHO, on m'avais dit de remplacer l'ECHO par un HREFdirectement en HTML (soit disant qu'ainsi EasyPHP ne l'interprèterait pas et permettrait au lien de fonctionner correctement, je suis pas convaincu...), mais aucun changement..

Voilà le bout de code actuel générant les liens :

<?php

if($type==="dir"){
echo "[file://<?php echo($chem) ?> <?php echo($stringname) ?>]

<?php
;}
?>

Le STRTR me sert à enlever un double-slash qui s'insérait dans le lien (dû au script original, qui est fait pour afficher un lien relatif et non absolu).

Voilà, si jamais l'intégralité du code est vraiment nécessaire, je la mettrai en ligne sous forme de .txt

Je tiens à préciser qu'en regardant le code source de la page générée, j'ai remarqué dans les liens ceci : "[...]/dossier1/../dossier1/[..]"
Donc il revient en arriere d'un dossier pour retourner dedans. Ca n'apparait pas dans l'url affiché lors du survol du lien, mais dans tous les cas même un copier/coller de ce lien étrange fonctionne...

Merci de prêter attention à mon problème !

Damien J.
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
23 avril 2009 à 08:35
euh le code "complet" non, parce que c'est en deux pages et très long...

= >
Je te demandais le code complet du lien, cad ce que tu as fourni

Tes syntaxes sont incorrectes :

echo "[ton_fichier.php?View='.$path.'/'.$namespace.' '.$stringname.']';
$chem strtr($chem, "//", "/"); > ne fonctionnera pas, vois plutôt du côté de str_replace

<italique>"[...]/dossier1/../dossier1/[..]"

= > c'est vraiment une chose à éviter !!

"
=> dans de nombreux navigateurs il n'est plus possible d'utiliser file: à partir d'une adresse http:// pour des raisons de sécurités (même sous IE il me semble que ça ne fonctionne pas) A moins de paramétrer le navigateur pour l'autoriser mais c'est à mon sens une mauvaise idée.

mais dans tous les cas même un copier/coller de ce lien étrange fonctionne
=> ce n'est pas parce que tu colles un lien dans le navigateur qu'il se comportera de la même manière lors d'un click. Le traitement est différent (sécurité oblige, voir ci dessus)

Passe donc tous tes liens en relatifs (<a href=".../mp3/truc.mp3") ou absolus, ou utilise un flux de données géré par PHP

Cordialement,

Kohntark -
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
damsterdamer Messages postés 15 Date d'inscription samedi 28 octobre 2006 Statut Membre Dernière intervention 25 septembre 2009
23 avril 2009 à 12:47
Bonjour,
Je suis d'accord pour la syntaxe de l'ECHO, mais la mienne fonctionne tout de même..
Pour le STRTR, c'est vrai que j'ai eu du mal à discerner les différence dans toutes les "fonctions" de remplacement de caractères ^^ Mais celle-ci m'a donné le résultat escompté, alors je n'ai pas été chercher plus loin... J'vais essayer ta méthode.

"[...]/dossier1/../dossier1/[..]"
=> c'est vraiment une chose à éviter !!

> Je sais bien, mais je vois pas comment passer outre... Et d'un autre coté, le survol du lien ne m'indique directement "[...]/dossier1/[...]", donc lors du clic ca ne devrais pas poser de soucis...

Pour le lien en "FILE", il a toujours fonctionné chez moi :x
Avec FF ou IE, no problem'.. Du moins sur une page en HTML. Vu que ça n'est pas fait pour être distribué, c'est la meilleure solution s'offrant à moi ; en fait, je n'ai pas trop le choix, si je met une adresse en relatif, il voudra me télécharger le fichier, et en plus il le "télécharge" vraiment, avec le temps de chargement relativement lourd pour les gros fichiers... Ceci ne se produit que pour une page en PHP appelée sous la forme "http://127.0.0.1/....".

EDIT : Okayy, en gros si j'ai bien compris, vu que j'utilise EasyPHP l'adresse est en HTTP et bloque le lien en "FILE"... D'un autre côté, comment je peux loader une page en PHP directement avec l'adresse "C:/....", en HTML oui, en PHP non... !?
( -> je me souviens d'un site en ligne que j'avais créer, qui permettait d'accéder à sa propre corbeille... donc le "file" fonctionnait très bien depuis un http.)

Une petite idée, je vais essayer d'inclure le "file" dès le début du script, pour le repertoire à parcourir ; les liens pourront alors être en relatifs, tout en menant vers mon Disque Dur directement.

Je te tiens au courant, merci !

Damien J.
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
24 avril 2009 à 02:18
Je suis d'accord pour la syntaxe de l'ECHO, mais la mienne fonctionne tout de même..

= >
ce n'est pas une raison pour produire un code non conforme qui te posera tôt ou tard des problèmes, même en local.

Je sais bien, mais je vois pas comment passer outre... Et d'un autre
coté, le survol du lien ne m'indique directement
"[...]/dossier1/[...]", donc lors du clic ca ne devrais pas poser de
soucis...
=>
même remarque.
Ce genre de code "crade" (le code hein, ni vois là aucune méchanceté) ne va t'apporter que des bugs, et ça risque de ne plus fonctionner du jour au lendemain (changement / update de browser, ...)

D'un autre côté, comment je peux loader une page en PHP directement avec l'adresse "C:/....", en HTML oui, en PHP non... !?
( -> je me souviens d'un site en ligne que j'avais créer, qui
permettait d'accéder à sa propre corbeille... donc le "file"
fonctionnait très bien depuis un http.)
=>
Je n'ai pas tout compris, sorry.
Tu ne pourras pas, sauf erreur de ma part bien sur, charger un fichier php via un chemin style "c:/...", tout simplement parce que PHP est "appelé" par le serveur web, ce qui n'est pas le cas de ce type d'adresse.
"Fonctionnait" comme tu dis. Heureusement les logiciels évoluent et certaines faillent de sécurité disparaissent.

@+,

Kohntark -
0
Rejoignez-nous