Bonjour
Pour vous exposer mon problème, j'ai créé une application qui génère et lit un flux rss, avec ses articles qui sont enregistrés dans une base de données, alors ça lit et génère très bien mon flux rss, mais quand je clique dans les marques-pages sur ce flux auquel je me suis abonnée, pour pouvoir être au courant des dernières news, ça met "Le chargement a échoué." à la place des articles qui devraient y être, et mis à jour automatiquement...
Mon code de mon flux xml dans feed.php que voici :
ce code est appelé dans mon index.php:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73 <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"> <?php require_once('connect.php'); $link = new Connexion('mabase'); $getFeed = $link->query("SELECT rss_post_id, rss_post_date, rss_post_titre, rss_post_lien, rss_post_description, rss_post_pers_id, rss_post_rss_categ_id FROM rss_post ORDER BY rss_post_date DESC LIMIT 10;"); ?> <channel> <title>Les dossiers référencement de WebRankInfo</title> <atom:link href="http://www.webrankinfo.com/dossiers/feed" rel="self" type="application/rss+xml" /> <link></link> <description><?php echo '<h1>Nouveautés</h1>'; ?></description> <pubDate><?php echo date('Y-m-d H:i:s'); ?></pubDate> <lastBuildDate><?php echo gmdate('Y-m-d H:i:s'); ?></lastBuildDate> <language></language> <sy:updatePeriod></sy:updatePeriod> <sy:updateFrequency></sy:updateFrequency> <generator></generator> <atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/> <atom:link rel="hub" href="http://superfeedr.com/hubbub"/> <?php $lien = 'http://lien/jusqua/mon/article.php'; while($rssFeed = $link->fetch_array($getFeed)) { $id = $rssFeed['rss_post_id']; $titre = $rssFeed['rss_post_titre']; $description = $rssFeed['rss_post_description']; $date = $rssFeed['rss_post_date']; // requete qui recupere nom et prenom de lauteur $getPers = $link->query("SELECT pers_nom, pers_prenom FROM personne WHERE pers_id = ".$rssFeed['rss_post_pers_id'].";"); $rssPers = $link->fetch_array($getPers); $nom = $rssPers['pers_nom']; $prenom = $rssPers['pers_prenom']; ?> <item> <title></title> <description></description> <link></link> <pubDate></pubDate> <dc:creator></dc:creator> <content:encoded> <h2><?php echo $titre; ?></h2> <p><?php echo $description; ?></p> <p>Lisez la suite de cet article <a href="<?php echo $lien; ?>?rssId=<?php echo $id; ?>" target=_BLANK><?php echo $titre; ?></a></p> <p><small><?php echo $nom.' '.$prenom; ?><a href="<?php echo $lien; ?>?rssId=<?php echo $id; ?>" target=_BLANK><?php echo ', '.$titre; ?></a>, <?php echo $date; ?> </small></p> <hr /> </content:encoded> </item> <?php } ?> </channel> </rss>
Et ce grâce à index.js (au chargement de la page index.php) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script src="../_JS/index.js"></script> <link rel="stylesheet" type="text/css" media="screen" href="../_CSS/index.css" /> <link rel="alternate" type="application/rss+xml" href="http://192.168.2.147/bimRss/_PHP/feed.php" /> <title>BimRSS : Flux RSS Bimedia</title> </head> <body> <?php // Div où seront affichés les articles grâce à un flux rss. echo '<div id="main"></div>'; ?> </body> </html>
Autres infos : pour lire le flux j'utilises magpierss version 0.72
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 window.onload = function() { // on appelle la fonction qui affiche le contenu flux_rss(); } function nav_AJAX() { var xhr; if(window.XMLHttpRequest) { // Mozilla, Safari, ... xhr = new XMLHttpRequest(); } else if(window.ActiveXObject) { // Internet Explorer xhr = new ActiveXObject("Microsoft.XMLHTTP"); } return xhr; } function flux_rss() { var xml = ''; // Requête AJAX var xhr = nav_AJAX(); xhr.open("POST", "../_PHP/feed.php", true); xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=utf-8'); xhr.send(); xhr.onreadystatechange = function(){ if(xhr.readyState == 4) { if(xhr.status == 200) { var reponse2 = xhr.responseText; if(reponse2 != '') { // c'est ici que je place mon flux et donc ses articles document.getElementById('main').innerHTML += reponse2; } } } } }
Pour résumer, bien que ça ne soit pas simple à expliquer, la question est :
Pourquoi le chargement des articles du flux ne fonctionne pas et renvoie "Le chargement a échoué" dans le marque-page du flux abonné ?
Cordialement
Ginger
Partager