s'affiche sous IE mais pas sous Firefox

Mammouth du PHP | 620 Messages

23 juin 2009, 13:01

bonjour,
pour afficher les 4 dernieres photos ajouté a ma galerie j'ai repris un rss que j'ai modifié pour pouvoir l'integré dans ma page d'accueil.
le probleme est que sa ne s'affiche pas sous firefox (comme d'habitude) mais que sous ie sa marche nickel.

pourriez vous jeter un oeil sur mon code et me dire si vous voyez pourquoi sous firefox sa ne marche pas ?

<div align="center"><?php
define('ZENFOLDER', 'zp-core');
header('Content-Type: application/xml');
require_once(ZENFOLDER . "/template-functions.php");
$themepath = 'themes';


$albumnr = $_GET[albumnr];
$albumname = $_GET[albumname];

if ($albumname != "")
	{ $albumname = " - for album: ".$_GET[albumname]; }
	
if(getOption('mod_rewrite'))
 { $albumpath = "/"; $imagepath = "/"; }
else
 { $albumpath = "/index.php?album="; $imagepath = "&image="; }

?>
<rss version="2.0">
<channel>
<title><?php echo getOption('gallery_title'); ?><?php echo $albumname; ?></title>


<docs></docs><generator></generator>

<?php 
$iw = $cw = 150; // Image Width
$ih = $ch = 100; // Image Height
$items = 4; // # of Items displayed on the feed

db_connect();

if ($albumnr != "")
	{ $sql = "SELECT * FROM ". prefix("images") ." WHERE albumid = $albumnr AND `show` = 1 ORDER BY id DESC LIMIT ".$items;}
else
 	{ $sql = "SELECT * FROM ". prefix("images") ." WHERE `show` = 1 ORDER BY id DESC LIMIT ".$items; }
 	
$result = mysql_query($sql);

while($r = mysql_fetch_array($result)) {
$id=$r['albumid'];

if ($albumnr != "") 
	{ $sql="SELECT * FROM ". prefix("albums") ." WHERE `show` = 1 AND id = $albumnr"; }
else
	{ $sql="SELECT * FROM ". prefix("albums") ." WHERE `show` = 1 AND id = $id"; }

$album = mysql_query($sql);
$a = mysql_fetch_array($album);
?>

<item>
	<title><?php echo $r['title'] ?></title>
	
	<link><?php echo '<a href="http://'.$_SERVER["HTTP_HOST"].WEBPATH.'/'.ZENFOLDER.'/i.php?a='.$a['folder'].'&i='.$r['filename'].'" target="_blank">';?></link>
	
	<description><?php echo '<![CDATA[<a title="'.$r['title'].' in '.$a['title'].'" href="http://'.$_SERVER["HTTP_HOST"].WEBPATH.$albumpath.$a['folder'].$imagepath.$r['filename'].'">
	<img border="0" src="http://'.$_SERVER["HTTP_HOST"].WEBPATH.'/'.ZENFOLDER.'/i.php?a='.$a['folder'].'&i='.$r['filename'].'&w='.$iw.'&h='.$ih.'&cw='.$cw.'&ch='.$ch.'" alt="'. $r['title'] .'"></a>';?> <?php if($exif['datetime']) { echo '<![CDATA[Date: ' . $exif['datetime'] . ']]>'; } ?></description>
	
	<guid><?php echo '<![CDATA[http://'.$_SERVER["HTTP_HOST"].WEBPATH.$albumpath.$a['folder'].$imagepath.$r['filename'] . ']]>';?></guid>
</item>

<?php } ?></div>
</channel>
</rss>

Mammouth du PHP | 2937 Messages

23 juin 2009, 17:17

Si j'ai bien compris, tu génères un flux RSS 2.0. As-tu vérifié si le code généré était valide ? Le validateur de flux du W3C est là pour ça. ;)

Mammouth du PHP | 620 Messages

23 juin 2009, 20:53

ok merci, j'ai fait un test avec le validator w3c et j'avais effectivement des erreurs.
le fait que l'affichage ne fonctionnait pas sous firefox était du au "<![CDATA[<"
j'ai donc adapté mon code et maintenant il fonctionne.

merci pour ce precieux conseil

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

23 juin 2009, 20:58

Modération :
fabrice88250, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
Tu peux réaliser cette opération en cliquant sur le bouton Image en haut à gauche de ce sujet.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer