Lien s'affiche mais non cliquable

Résolu
erdoganak Messages postés 44 Date d'inscription mercredi 9 septembre 2009 Statut Membre Dernière intervention 11 avril 2011 - 25 août 2009 à 12:17
erdoganak Messages postés 44 Date d'inscription mercredi 9 septembre 2009 Statut Membre Dernière intervention 11 avril 2011 - 25 août 2009 à 15:19
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

pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 8
25 août 2009 à 14:24
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
3
pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 8
25 août 2009 à 12:38
echo '[C:\wamp\www\test1\ '.$file.']
';
....

[hr]
PPT: Petit programmeur tranquille =) | Agence Web | Pysco68 was here
0
pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 8
25 août 2009 à 12:40
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
0
erdoganak Messages postés 44 Date d'inscription mercredi 9 septembre 2009 Statut Membre Dernière intervention 11 avril 2011
25 août 2009 à 13:34
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.
0

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

Posez votre question
pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 8
25 août 2009 à 13:37
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
0
erdoganak Messages postés 44 Date d'inscription mercredi 9 septembre 2009 Statut Membre Dernière intervention 11 avril 2011
25 août 2009 à 14:01
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 )
0
pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 8
25 août 2009 à 14:04
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
0
erdoganak Messages postés 44 Date d'inscription mercredi 9 septembre 2009 Statut Membre Dernière intervention 11 avril 2011
25 août 2009 à 14:06
Tu peux me montrer un exemple, comment tu fais pour les liens relatifs que tu mentionnes dans ton message merci .
0
erdoganak Messages postés 44 Date d'inscription mercredi 9 septembre 2009 Statut Membre Dernière intervention 11 avril 2011
25 août 2009 à 15:19
Merci bien
0