Dreamweaver cs4 fichier absent = erreur 404

Fermé
daniel85 - 2 avril 2010 à 14:41
 daniel85 - 7 avril 2010 à 22:39
Bonjour,

J'ai mis en place un site internet dynamique sous DreamWeaver CS4.
Dans ma page article_detail.php je veux mettre un lien qui permet d'ouvrir un fichier pdf (la fiche technique du produit).


<img src="/media/pdf/pdf.png" /> </a><a href="media/pdf/<?php echo $row_article['id']; ?>.pdf" target="_blank">Télécharger la fiche technique</a>

pdf.png est le logo adobe
medi/pdf le répertoire ou sont stockés les pdf (fiches techniques)
le jeu d'enregistrement s'appelle "article"

Si la fiche technique n'existe pas pour l'article sélectionné (900 articles, dont un grand nombre n'auront pas de fiche technique), je voudrais pouvoir empêcher l'affichage de l'erreur 404 et rester sur la page en cours.

Merci pour vos idées.

A voir également:

4 réponses

Merci AdminTOURS, pour cette nouvelle mouture.

Voici la version définitive, qui fonctionne correctement :

<?php $folder = "media/pdf"; $dossier = opendir($folder); $img=0;
$ref_img2 = $row_article['id'].".pdf" ;
while ($Fichier = readdir($dossier)) {
if ($Fichier == $ref_img2 ) { $img=1; }
}
closedir($dossier);

if ($img == 1) {?>
<img src="media/pdf/logo_adobe.png" /></a><a href="media/pdf/<?php echo $row_article['id']; ?>.pdf" target="_blank">Télécharger la fiche technique</a>
<?php }
else{ ?>

<?php
} ?>


j'ai ajouté "php" au début
Enlevé les / avant média
Supprimé "pas de fiche" (pour éviter que cette info s'affiche)

Sur le site cela fonctionne normalement

A bientôt sur CCM

Daniel
1
AdminTOURS Messages postés 404 Date d'inscription jeudi 5 juillet 2007 Statut Membre Dernière intervention 14 janvier 2011 92
2 avril 2010 à 14:52
Essaye un truc comme ça (il y a peut-être 2-3 erreurs, je l'ai adapté vite fait...) :

<? $folder = "/media/pdf"; $dossier = opendir($folder); $img=0; 
$ref_img2 = $row_article['id'].".png" ;
while ($Fichier = readdir($dossier)) {
	if ($Fichier == $ref_img2 ) { $img=1; }
}
closedir($dossier);

 if ($img == 1) {?>     
<img src="/media/pdf/<?php echo $ref_img; ?>.png" /></a><a href="media/pdf/<?php echo $row_article['id']; ?>.pdf" target="_blank">Télécharger la fiche technique</a> 
 <?php }
else{ ?>
Pas de fiche
<?php
} ?>
0
Merci AdminTOURS pour ta réponse rapide

Je n'ai pas bien compris

1- $ref_img2 = $row_article['id'].".png" ;

Pdf.png est le logo adobe, j'aurais pu l'appeler logo_adobe.png
c'est une constante : même logo quelque soit le fichier pdf renvoyé par le lien. Il matérialise simplement que le lien renvoie vers un fichier pdf.
Du coup je ne comprend pas l'expression (et son rôle)

2- L'idée était de renvoyer un message; tu me proposes "pas de fiche" lorsque le lien n'aboutit pas. Cela me convient et je peux l'adapter

Si j'applique cela :

<img src="/media/pdf/pdf.png" /> </a><a href="media/pdf/<?php echo $row_article['id']; ?>.pdf" target="_blank">Télécharger la fiche technique</a>

le site me renvoie bien la fiche pdf si elle existe. Mon problème est d'inhiber l'erreur 404 en cas d'absence de la fiche.

3-Peux-tu me confirmer que le script est conforme à mon souhait

Cordialement

Daniel
0
AdminTOURS Messages postés 404 Date d'inscription jeudi 5 juillet 2007 Statut Membre Dernière intervention 14 janvier 2011 92
7 avril 2010 à 14:25
Ouais du coup j'ai adapté un peu vite, il te faudrait mettre un truc comme ça du coup :

<? $folder = "/media/pdf"; $dossier = opendir($folder); $img=0; 
$ref_img2 = $row_article['id'].".pdf" ;
while ($Fichier = readdir($dossier)) {
	if ($Fichier == $ref_img2 ) { $img=1; }
}
closedir($dossier);

 if ($img == 1) {?>     
<img src="/media/pdf/logo_adobe.png" /></a><a href="media/pdf/<?php echo $row_article['id']; ?>.pdf" target="_blank">Télécharger la fiche technique</a> 
 <?php }
else{ ?>
Pas de fiche
<?php
} ?>
0