Probleme 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
- 8 nov. 2007 à 14:37
Salut a toutes et tous

voila j'ai un script qui liste un repertoire avec une icone differente devant chaque fichier selon son extension ... ca fonctionne bien sous firefox

mais avec ie 6 ou 7 les icones ne s'affichent pas

à noter que le chemin du repertoire contenant les images n'est pas en dur
il vient d'une variable qui se trouve dans un fichier config.php que je met en include
au debut de ma page

voila le code concerné merci bien de votre aide
(ya toute la page)

-----------------------------------------------------------------------------------------------------
<head>
<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'>
<?
include($_SERVER['DOCUMENT_ROOT']."/admin/config.php");
?>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></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
  :
  <?
$rep = getcwd();
$file = basename ($rep);
echo $file;
?>
 

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

<hr>

<?

 // 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 .'.'.'gif';
          echo "&nbsp;&nbsp;".$entree."
";
         }
         
    }
 }

 ?>

<hr>

</form>
&nbsp;
Afficher la suite 

6 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,

Si Firefox affiche correctement tes images, il y a fort à parier que le problème ne vient pas de PHP.

Mais comme on est sur phpCS, je vais quand même te donner des tuyaux quant à ton code (même si ça ne solutionne pas ton problème).

Evite d'utiliser la balise courte d'ouverture de script php : <? Elles ne fonctionnent que quand la configuration du serveur le permet... C'est une mauvaise habitude dont il est préférable de se départir et utiliser <?php permet de s'assurer que le script sera TOUJOURS interprété comme du php. En plus, ça évite de parser comme du php les flux xml qui commencent pas <?xml

Tu devrais éviter de mélanger traitement et affichage. Mettre du php un peu partout au milieu du HTML n'aide pas à s'y retrouver... On s'y perd vite, même dans ses propres scripts, surtout quand on les laisse reposer un peu. Sans forcément utiliser de système de template ou de truc compliqué, traiter tes données au début du script et les afficher ensuite, c'est plus propre, donc plus lisible, donc plus facile à maintenir, donc plus facile et plus rapide à améliorer.

Ta boucle de parcours de répertoire me parait un peu... bizarre... Je m'y perds un peu, donc je vois pas bien comment elle fonctionne.
Dans la doc php, il y a un très bon exemple, très propre, de comment parcourir un répertoire...
Si tu es sur PHP5, voire même PHP5.1, tu peux utiliser les itérateurs pour parcourir un répertoire. Avec DirectoryIterator et DirectoryFilterDots, afficher les fichiers du répertoire se fait en moins de 10 lignes.

Enfin, en HTML, les attributs doivent TOUJOURS être entourés de guillemets doubles : " . De plus, je ne peux que recommander de passer à XHTML, au moins la version 1.0 transitionnal, avec utilisation de feuilles de style. C'est pas juste parce que c'est la mode, c'est aussi et surtout que le code produit est plus propre, plus léger, plus facile à maintenir... Bref, que des avantages ;)

Bon. J'espère que tu prendras pas mal mes remarques, elles ne sont destinées qu'à te faire progresser.

Dire « Merci » 3

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

Codes Sources 195 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,

"si tu as la patiente de bien vouloir m'en dire plus à ce sujet"
=> j'en ai toujours quand on veut bien m'écouter.

Concrètement, pour séparer basiquement le traitement de l'affichage, il te "suffit" de mettre les données à afficher dans des variables, et de les afficher plus tard : <?php echo $pseudo_visiteur; ?> par exemple. Ca mélange du html avec du php, mais c'est du php qui ne fait qu'afficher, et qui ne lit pas le contenu d'un fichier, d'un répertoire, etc.
Dans la partie affichage, il peut quandmême y avoir des boucles (for, foreach, while) parce que c'est quand même indispensable.
Maintenant, si t'es curieux, tu peux jeter un oeil à Smarty. Il s'agit d'une classe de templates qui s'occupe de gérer l'affichage. Tu as alors des fichiers séparés pour le traitement des données et pour l'affichage du document.
Concrètement, cela permet à plusieurs personnes de travailler sur le même projet sans avoir besoin de savoir exactement ce que fait l'autre : un développeur et un designer, le plus courrament.

XHTML, c'est eXtensible HyperText Markup Language. C'est du HTML extensible. C'est un peu plus rigoureux dans la syntaxe et permet de garantir un affichage identique quelque soit le navigateur (quand celui-ci respecte le standard, ce qui est encore une autre histoire).
La seule référence que j'ai sur le sujet est en anglais :
http://www.w3schools.com/xhtml/default.asp


Et ton problème d'icones ? As-tu vérifié dans le code HTML produit que tout était correct ? Est-ce que sous IE, tu peux accéder directement aux icones via la barre d'adresse, ce qui indiquerait qu'elles sont bien là où le navigateur s'attend à les trouver ?

Dire « Merci » 3

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

Codes Sources 195 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

rassure toi tes sugestions sont pour moi de précieux conseils :-)
elles sont les bienvenues !!

j'apprend tout seul comme un grand

donc c'est pour cela que mon code n'est pas tres academique.
et surtout je ne vois pas trop comment faire autrement pour arriver à ce que je veux.

par exemple quand tu me dis de séparer le traitement et l'affichage ... dans la théorie
je vois tout a fait ce que tu veux dire mais dans la pratique c'est pour moi une autre paire de manches !!
si tu as la patiente de bien vouloir m'en dire plus à ce sujet
c comment qu'on fait ? .... MERCI
cela m'aiderai à faire quelque chose de plus propre

en tout cas merci pour tes conseils

Franck

ps:
qu'est ce que xhtml ? je connais peut etre déja ce que ca veut dire
mais dans les acronymes je suis parfois un peu paumé
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

j'ai essayé d'acceder aux images directement dans le rep ou elles se trouvent
via l'url

les icones sont des gifs de 16x16
mais la ou je pige pas c'est que ie affiche le cadre de l'image
(sans l'image bien sur !) mais quand je fais un clic droit sur l'image/propriete
la taille est de 28x30 ....  c'est grave docteur ?

Merci
Commenter la réponse de xzonz
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
13
0
Merci
Grave non, bizarre, oui...

"mais la ou je pige pas c'est que ie affiche le cadre de l'image
(sans l'image bien sur !)"
=> Comment ça le cadre ? Il affiche une petite croix, comme pour dire qu'il n'a pas trouvé l'image ou pas ?
Tu as essayé d'accéder aux images directement, mais est-ce que tu as pu y accéder ? (tu ne le dis pas lol)

Je me pose la question suivante : est-ce que IE affiche correctement tes gifs ?
Ils pourrait les trouver mais ne pas les afficher correctement, ce qui se traduit par leur simple absence.

Firefox les affiche correctement lui... As-tu essayé avec Opera ?
Et si tu essayes avec d'autres images, d'autres formats, juste pour tester ? png, jpeg...
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
désolé j'ai pas été tres précis
- oui j'y accede
- mais il met la croix pour dire qu'il ne la trouve pas
- le chemin du repertoire est pourtant le bon.
avec firefox aucun souci.
je teste avec d'autres formats d'images

du moins pas tout de suite car je suis au taf
je te dirai ce que ca a donné

merci
Commenter la réponse de xzonz