Lien s'affiche mais non cliquable [Résolu]

Signaler
Messages postés
44
Date d'inscription
mercredi 9 septembre 2009
Statut
Membre
Dernière intervention
11 avril 2011
-
Messages postés
44
Date d'inscription
mercredi 9 septembre 2009
Statut
Membre
Dernière intervention
11 avril 2011
-
Bonjour,

Comme l'indique le titre du sujet je dispose de document dans un répertoire que j'affiche sous forme de lien ceci dit il ne sont pas cliquable.

Dois-je utilisé un fopen() pour que ca fonctionne?



<?php
$current_dir = "C:\\wamp\\www\\test1\"; //a remplacer $_post['rep']
$dir = opendir($current_dir);
while ($file = readdir($dir))
{
if (is_file($current_dir.$file))
{
if (($file != "." ) && ($file != ".." ))
{// Récupération de l'extension du fichier
$format=strrchr($file,".pdf" || ".doc" );
if ($format == ".pdf" || ".doc" )// Vérification du format
{
echo "".$file."
";
}
}
}
}
closedir ($dir);
?>


Merci,

9 réponses

Messages postés
681
Date d'inscription
samedi 26 février 2005
Statut
Membre
Dernière intervention
21 août 2014
7
ben admettons que ton fichier php se trouve là:

"C:\wamp\www\test1\tapage.php"...


Et tu a là dedans un dossier qui contiens tes fichiers, le chemin absolu c'est:

"C:\wamp\www\test1\le_dossier"


Alors que le chemin relatif c'est

"./le_dossier/" (et oui ce sont des slashs puisque les navigateurs et PHP se tiennent aux normes Unix/Linux pour les chemins de fichier...)

Un liens qui était par exemple (dans ton exemple):
[C:\wamp\www\test1\le_dossier\Nom_du_fichier.pdf Nom_du_fichier.pdf]


deviens
[./le_dossier/Nom_du_fichier.pdf Nom_du_fichier.pdf]

(puisque ton navigateur se "trouve" déjà dans "C:\wamp\www\test1\" par le biais de la page "C:\wamp\www\test1\tapage.php"

Le tout a l'avantage que tu peux envoyer le tout sur n'importe quel serveur on-line par la suite, sans devoir changer ton code...

A ce propos là... ça marche aussi pour les paramètres que tu passe à opendir()

Bonne aprem' ;)

[hr]
PPT: Petit programmeur tranquille =) | Agence Web | Pysco68 was here
Messages postés
681
Date d'inscription
samedi 26 février 2005
Statut
Membre
Dernière intervention
21 août 2014
7
echo '[C:\wamp\www\test1\ '.$file.']
';
....

[hr]
PPT: Petit programmeur tranquille =) | Agence Web | Pysco68 was here
Messages postés
681
Date d'inscription
samedi 26 février 2005
Statut
Membre
Dernière intervention
21 août 2014
7
et éventuellement:

echo '[C:\wamp\www\test1\'.$file.' '.$file.']
';

pour pas tomber sur une page vide mais sur le fichier......

[hr]
PPT: Petit programmeur tranquille =) | Agence Web | Pysco68 was here
Messages postés
44
Date d'inscription
mercredi 9 septembre 2009
Statut
Membre
Dernière intervention
11 avril 2011

Salut merci pour ta rapidité, ceci dit avec ce que tu m'as conseillé j'obtiens cette erreur si je met des \ au lieu de \\

Parse error: syntax error, unexpected '"', expecting ',' or ';' in C:\wamp\www\debut\affichagelink.php on line 13



si jamais je code avec
C:\\wamp\\www\\test1\\ alors

j'obtiens mes liens et seul le .docx est enregistrable.
Messages postés
681
Date d'inscription
samedi 26 février 2005
Statut
Membre
Dernière intervention
21 août 2014
7
effectivement j'ai loupé un petit truc...

echo '[C:\wamp\www\test1\\'.$file.' '.$file.']
';

Le backslash souligné évite que le second backslash "échappe" le guillemet suivant juste derrière...

Parcontre je n'ai pas compris ta dernière phrase...


[hr]
PPT: Petit programmeur tranquille =) | Agence Web | Pysco68 was here
Messages postés
44
Date d'inscription
mercredi 9 septembre 2009
Statut
Membre
Dernière intervention
11 avril 2011

Désolé j'ai voulu dire que si je fais

comme ceci
echo '[C:\\wamp\\www\\test1\\'.$file.' '.$file.']

j'obtiens une liste de mes fichiers sous forme de lien, ceci dit seul le fichier avec l'extension .docx est cliquable et enregistrable (sur le bureau, répertoire ...).


sinon

echo '[C:\\wamp\\www\\test1\\'.$file.' '.$file.']

et

echo '[C:\wamp\www\test1\\'.$file.' '.$file.']
';


me donne exactement le même résultat.
(c-a-d cliquable et enregistrable )
Messages postés
681
Date d'inscription
samedi 26 février 2005
Statut
Membre
Dernière intervention
21 août 2014
7
oui mais avec ta solution tu est obligé de doubler tous les slashs et de faire des opérations d'interprétation supplémentaires (chaque backslash en plus est une opération dans ton cas...) enfin bref, le résultat est là, mais bon... et puis si tu veux ne pas t'occasionner trops d'ennuis, je te conseille vivement de passer a des liens relatifs (au dossier ou se "trouve" ta page php pour le navigateur du visiteur...)


[hr]
PPT: Petit programmeur tranquille =) | Agence Web | Pysco68 was here
Messages postés
44
Date d'inscription
mercredi 9 septembre 2009
Statut
Membre
Dernière intervention
11 avril 2011

Tu peux me montrer un exemple, comment tu fais pour les liens relatifs que tu mentionnes dans ton message merci .
Messages postés
44
Date d'inscription
mercredi 9 septembre 2009
Statut
Membre
Dernière intervention
11 avril 2011

Merci bien