Bonjour,
Un message posté il y a quelques jours déjà par erreur sur la liste spip au
lieu de spip-dev n'a pas eut de réponse et m'intrigue.
Quelqu'un a t il une réponse à cela:
Je n'utilise pas franchement spip mais j'en ai une version pour tester
upgradée par un autre utilsateur en 1.4.Or lors d'un debuggage de mon générateur de RSS (externe à spip), une faute
de code m'a fait laisser un " (guillemet) dans chacun des champs
/rss/channel/item/link
de telle sorte qu'il contenait
<link>http://une_url/blabla.html";</link>
or cela a fait planter la syndication de spip qui ne pouvait alors se faire
et a sortie des tombereaux d'erreur MySQL.Intrigué, je suis allé voir le code source de spip pour trouver dans le
fichier ecrire/inc_sites.php3 la partie suivante (dans la fonction
syndic_a_jour() ):<...>
} for($i = 0 ; $i < count($item) ; $i++){
} ereg("<title>(.*)</title>",$item[$i],$match);
} $le_titre=addslashes($match[1]);
} $match="";
} ereg("<link>(.*)</link>",$item[$i],$match);
} $le_lien=$match[1];
} $match="";
} ereg("<date>(.*)</date>",$item[$i],$match);
} $la_date=$match[1];
} $match="";
} ereg("<author>(.*)</author>",$item[$i],$match);
} $les_auteurs=addslashes($match[1]);
} $match="";
} ereg("<description[^>]*>([^<]*)</description>",$item[$i],$match);
} $la_description=addslashes($match[1]);
}
} $match="";
} if (strlen($la_date) < 4) $la_date=date("Y-m-j H:i:00");
}
} $query_deja="SELECT * FROM spip_syndic_articles WHERE
url=\"$le_lien\" AND
id_syndic=$now_id_syndic";
} $result_deja=spip_query($query_deja);
} if (mysql_num_rows($result_deja)==0){
<...>Il s'avère que les lignes
} ereg("<link>(.*)</link>",$item[$i],$match);
} $le_lien=$match[1];
puis
} $query_deja="SELECT * FROM spip_syndic_articles WHERE
url=\"$le_lien\" AND