Affichage images [Résolu]

Messages postés
105
Date d'inscription
mardi 13 janvier 2004
Statut
Membre
Dernière intervention
18 mai 2019
- - Dernière réponse : xzonz
Messages postés
105
Date d'inscription
mardi 13 janvier 2004
Statut
Membre
Dernière intervention
18 mai 2019
- 27 déc. 2007 à 12:31
salut tout le monde

et bonnes fetes



j'ai un souci que je n'arrive pas à résoudre
(déja posté mais pas mieux depuis)

j'ai une page qui liste le contenu d'un repertoire
une icone s'affiche devant chaque fichier selon l'extension

sous firefox ca marche impec - mais sous ie pas moyen d'afficher les icones.
- j'ai testé jpg,png,ico
-verifié tous les chemins d'acces au repertoire image
- essayé un script de préload

rien n'y fait

les chemins sont bons car ie n'affiche pas la petite croix à la place de l'image
mais le cadre sans rien dedans (quand je fais un clic droit sur ce dernier - propriete)
le chemin est le bon.

il suffit que je navigue directement via l'url dans le repertoire image sur une icone
il me l'affiche bien - et quand je reviens sur la page en question ... la l'image s'affiche
sans probleme - j'y comprend plus rien
pb de cache ???

voila le code de ma page

merci de votre aide car la je seche graaaaaaave
---------------------------------------------------------------------
<head>
<meta http-equiv= "Content-Type" content="text/html; charset=iso-8859-1">
<SCRIPT language="JavaScript">

<!--script pour vérifier les données entrées dans le formulaire-->
function verif()
{
Check = confirm("---------------------------------------------- \n CONFIRMEZ VOUS LA SUPPRESSION ? \n ----------------------------------------------");
if(Check == false) return false;
return true;
}
</script>

<form method='POST' action='/admin/delete.php'>
<?php
include($_SERVER['DOCUMENT_ROOT']."/admin/config.php");
?>

</head>
  [javascript:history.back() [page
  précédente]
]     [javascript:history.forward() [page
  suivante]]
  [<? print(substr($_SERVER['DOCUMENT_ROOT'],0,1)); ?> [accueil]]&nbsp;&nbsp;&nbsp;

 

 

 
  REPERTOIRE ACTUEL
  :
  <?php
$rep = getcwd();
$file = basename ($rep);
echo $file;
?>
 

<hr>
  &nbsp;[<?php $_SERVER['DOCUMENT_ROOT'] ?>/admin/creer-repertoire.php [cr&eacute;er
  un repertoire]]&nbsp;&nbsp;&nbsp;[<?php $_SERVER['DOCUMENT_ROOT'] ?>/admin/supprimer-repertoire.php [supprimer
  un repertoire]]&nbsp;&nbsp;&nbsp;[<?php $_SERVER['DOCUMENT_ROOT'] ?>/admin/upload-multiple.php [uploader
  des fichiers]]&nbsp;&nbsp;&nbsp;[<?php $_SERVER['DOCUMENT_ROOT'] ?>/admin/wake-on-wan.php [wake
  on wan]]

<hr>

<?php

 // Accès au repertoire
 // -------------------
 $chemin="./";
 $handle_du_repertoire_ouvert=opendir($chemin);

 // Boucle réccupérant toute les entrées contenu dans le répertoire
 // ----------------------------------------------------------------
 $sortie_de_la_boucle=false; // Initialise la boucle
 while ($sortie_de_la_boucle==false)
 {

 // Récupère les entrées contenu dans le repertoire une par une
 // -----------------------------------------------------------
 $entree=readdir($handle_du_repertoire_ouvert); // Readdir lit le fichier suivant dans un dossier

 // Condition de sortie de la boucle
 // --------------------------------
 if ($entree=="")
 $sortie_de_la_boucle=true;
 else

 // Affichage
 // ---------
 if (($entree!="."))

 if (is_dir($entree)) //affichage repertoire
    {
    // on choisi les repertoires à ne pas afficher
    if (($entree!="images")&&($entree!="_vti_bin")&&($entree!="_vti_pvt")&&($entree!="_vti_txt")&&($entree!="admin"))
    echo "&nbsp;".$entree."
";
    }

 if (is_file($entree)) //affichage fichiers
    {
    // on choisi les fichiers à ne pas afficher
     if (($entree!="index.php")&&($entree!=".htaccess")&&($entree!=".htpasswd"))
        {
        //On récupère l'extension
          ereg("\.([^\.]*$)", $entree, $elts);
          $ext = $elts[1];
          // On définit l'icone en fonction de l'extension
          $icone = $ext .'.'.'ico';
          echo "&nbsp;&nbsp;".$entree."
";
         }
         
    }
 }

 ?>

<hr>

</form>
&nbsp;
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
13
3
Merci
Salut,

" ['.$chemin.$entree.' '.$entree.']
';

Les attributs des balises sont censés être entre guillemets doubles, et pas simples. Il n'y a normalement pas d'espace autour du = qui assigne une valeur à un attribut.
Ca, c'est pas correct :

C'est certes du XHTML 1.x, mais c'est compatible avec HTML 4


Sinon, quelques petites remarques, au passage :
ereg("\.([^\.]*$)", $entree, $elts);

=>

preg_match('`^(?:[^\.]).*\.([^\.]+)$`, $entree, $elts);

Une PCRE est TOUJOURS plus rapide qu'une regex standard, à motif équivalent. Par ailleurs, le motif que je te donne là permet d'éliminer les fichiers cachés, le tient obtient htaccess pour un fichier .htaccess, ce qui n'est pas correct.

$icone $ext .'.'.'ico';
>
$icone = $ext . '.ico';
Pourquoi concaténer deux chaines entre quotes ?

Si tu es sur PHP5, j'en profite pour attirer ton attention sur ma dernière source qui à défaut d'être ultra performante, a au moins le mérite de permettre ce que tu veux faire en beaucoup plus lisible et une syntaxe PHP5 (elle t'économiserait sûrement pas mal de lignes de code...)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 197 internautes nous ont dit merci ce mois-ci

Commenter la réponse de neigedhiver
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
13
3
Merci
Salut,

Au risque de me répéter... Les valeurs des attributs des balises html DOIVENT (pour être conforme HTML 4) être entre guillemets doubles.
Quand j'affiche du HTML avec echo, j'utilise de préférence des guillemets simples ' pour délimiter mes chaines de caractères. Comme ça, je peux mettre les valeurs des attributs entre guillemets doubles, c'est plus propre, je m'y retrouve facilement.
Surtout pour l'attribut style !

echo ' ['.$chemin.$entree.' '.$entree.']
';

Cependant, j'ai un doute quant à l'origine des parse errors... Il ne me semble pas en avoir vu dans cette ligne... Es-tu certain que c'est à cette ligne qu'ils se produisent ?

Dernière chose : je ne peux que t'encourager à écrire du XHTML, au minimum XHTML 1.0 Transitionnal : HTML 4 c'est un peu révolu, et le XHTML transitionnal est plutôt bien supporté par les navigateurs et permet, comme son nom l'indique, une bonne transition entre HTML 4 et XHTML 1.x Strict. Quelques recherches sur google pour savoir comment bien respecter la syntaxe (c'est pas pour faire le chiant : plutôt pour t'assurer que ta page web évoluera bien dans le temps).

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 197 internautes nous ont dit merci ce mois-ci

Commenter la réponse de neigedhiver
Messages postés
105
Date d'inscription
mardi 13 janvier 2004
Statut
Membre
Dernière intervention
18 mai 2019
0
Merci
Salut Neigedhiver

tout d'abord merci pour ces conseils
je les ai appliqués cependant il me reste une ligne pour laquelle j'ai un peu de mal avec la syntaxe - puis je abuser une dernière fois de ton aide ?

la syntaxe suivante n'est surement pas la bonne -  il me met des parse error !! je dois oublier quelque chose

echo "&nbsp;&nbsp;".$entree."
";

voila la ligne avec sa syntaxe originale - peux tu me donner la bonne facon de l'écrire
ca va me permettre de garder l'exemple pour ne plus faire d'erreurs
merci de ton aide

Franck
Commenter la réponse de xzonz
Messages postés
105
Date d'inscription
mardi 13 janvier 2004
Statut
Membre
Dernière intervention
18 mai 2019
0
Merci
Salut

ok ok j'ai pigé pour la syntaxe simple double quote - MERCI

quant à xhtml je vais voir sur google ce que je peut trouver à ce sujet

en tous les cas merci beaucoup de ton aide !!

Franck
Commenter la réponse de xzonz