xzonz
Messages postés103Date d'inscriptionmardi 13 janvier 2004StatutMembreDernière intervention23 novembre 2022
-
24 déc. 2007 à 14:11
xzonz
Messages postés103Date d'inscriptionmardi 13 janvier 2004StatutMembreDernière intervention23 novembre 2022
-
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>
<hr>
[<?php $_SERVER['DOCUMENT_ROOT'] ?>/admin/creer-repertoire.php [créer
un repertoire]] [<?php $_SERVER['DOCUMENT_ROOT'] ?>/admin/supprimer-repertoire.php [supprimer
un repertoire]] [<?php $_SERVER['DOCUMENT_ROOT'] ?>/admin/upload-multiple.php [uploader
des fichiers]] [<?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 " ".$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 " ".$entree."
";
}
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 24 déc. 2007 à 14:49
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);
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...)
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 26 déc. 2007 à 23:03
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).
xzonz
Messages postés103Date d'inscriptionmardi 13 janvier 2004StatutMembreDernière intervention23 novembre 2022 26 déc. 2007 à 13:20
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 " ".$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