Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Nous allons principalement mettre trois choses en pratique dans ce TP :
- la connexion à une base de données ;
- l'inclusion de pages ;
- l'utilisation de variables et de fonctions.
D'autres choses viendront s'ajouter comme quelques fonctions que nous avons vues dans le début de ce big-tutoriel.
Dans un premier temps je vais répondre aux questions que vous devez vous poser, c'est
crucial pour pouvoir suivre ce TP et en profiter au maximum.
Qu'est-ce qu'un flux RSS ?
C'est la question qui doit vous torturer l'esprit depuis maintenant quelques minutes.

Pour faire simple, un flux RSS est un système qui permet de récupérer le contenu de la page sur laquelle vous vous trouvez (souvent des news) pour suivre l'avancement de celles-ci.
Bien entendu vous pouvez choisir ou non d'être alerté mais avant tout, pour que vos visiteurs adhèrent à ce système de flux RSS il faudra qu'ils s'abonnent, c'est très facile ne vous inquiétez pas : en quelques clics c'est fait.

Sachez tout de même que le contenu que vous récupérez via le flux RSS se situera dans une page .xml.
Euh c'est quoi le XML ?
C'est un langage un peu particulier que nous irons voir un peu plus loin dans ce big-tutoriel.

Vous verrez que ce langage est très pratique pour ordonner et ranger des informations dans un fichier de façon logique.
Donc si je comprends bien, on va utiliser le langage XML que je ne connais même pas ?
Non, enlevez vous tout de suite cette idée de votre tête, nous n'allons utiliser ni le langage XML ni un autre langage que vous ne connaissez pas, vous pouvez donc suivre ce tutoriel avec ce que nous avons déjà appris dans ce cours et dans celui de M@teo21 sur le PHP / MySQL.
Mais alors qu'utiliserons-nous ?
Simplement du langage PHP, ça peut paraitre bête de créer du XML avec du PHP mais pourtant c'est possible.

En effet, nous n'allons pas créer le langage XML, il va se générer automatiquement à partir du code PHP que nous aurons écrit, ne vous inquiétez pas, vous pouvez donc suivre ce TP.
Ce TP se réalisera sous forme d'exercice / correction comme dans les TPs de M@teo21 pour mettre en pratique le maximum de ce que vous avez vu, ne lisez donc pas tout de suite la correction, je peux vous faire confiance hein ?
Cette fois on y va.

Autant vous prévenir tout de suite, comme ça c'est fait :
Il faut obligatoirement que vous ayez un système de news sur votre site, en effet un flux RSS se charge uniquement de récupérer vos news pour les remettre dans un fichier .xml.
Vous vous rappelez (vous n'avez pas la mémoire courte à ce point ?) quand j'ai dis que nous n'utiliserons pas le XML ?
Pourtant l'heure est arrivée, je dois quand même faire le point :
Je vois d'ici vos marteaux avec vos têtes enragées qui veulent me taper dessus, non je n'ai pas dit que nous utiliserons ce langage (chose promise chose faite), je veux tout simplement vous éclaircir sur le fonctionnement d'un système de flux RSS, sans ça il est inutile de commencer le codage.
J'ai spécialement fait pour vous un petit schéma qui va vous expliquer ce que nous allons faire, merci qui ?
Ça ne devrait donc poser aucun problème.

Au fait le logo pour indiquer que le flux RSS est activé c'est celui qui est placé à droite de l'URL du Site du Zér0, autrement dit celui-là :
Pour votre culture générale, RSS est le diminutif de
Really Simple Syndication.
Maintenant que vous êtes prêt à attaquer ce TP, qu'attendons-nous de plus ?
Exercice et informations utiles
Comme promis, vous allez essayer de réaliser ce TP à l'aide des informations que je vais vous fournir dans cette partie du tutoriel.

Je vous préconise avant tout quelques bons conseils à suivre pour se mettre dans le bain, il va falloir que vous établissiez un plan dans votre tête, prenez un brouillon et un crayon de bois (on fait avec la méthode à l'ancienne...) et commencez par indiquer les 4 étapes citées ci-dessus dans le schéma, ainsi et ce au fur et à mesure vous remplirez chacune de ces étapes avec les informations disponibles et vos propres connaissances personnelles.
1) La connexion à la base de donnée
Là, c'est trop facile pour vous, aucun commentaire !
2) La récupération des informations dans la base de donnée
Pareil c'est trop facile. Peut être juste un ou deux commentaires :
- Vous
penserez à sélectionner l'id de vos news quand même et si possible le pseudo des créateurs de chacune des news.
3) L'envoi et la transformation de ces informations dans un fichier .xml
C'est là le plus dur, on n'a pas encore vu ça et ni vous je suppose.

Sachez quand même que les informations dans un fichier .html ou .php par exemple ne seront pas les mêmes que dans un fichier .xml. Déjà, tous les caractères spéciaux disparaissent (accents et autres) de façon à ce que XML réorganise tout ça et l'architecture de la page est différente.
Donc pour traduire le langage PHP et / ou xHTML / HTML / CSS et autre vous avez besoin d'indiquer à XML qu'il doit le faire sinon il est incapable de le faire, pour cela cette ligne de code suffit à régler ce problème :
Code : PHP1
2
3
4
5 | <?php
function cleanText($intext) {
return utf8_encode(htmlspecialchars(stripslashes($intext)));
}
?>
|
C'est une fonction bien particulière qui va traduire le texte selon l'encodage UFT8, comme ça XML comprendra votre code xHTML et autre, pratique non ?

Ensuite, vous insérez dans votre page (au début) ceci :
Code : PHP1
2
3 | <?php
header("Content-Type: text/xml;charset=utf-8");
?>
|
Cela dit à XML que le code contenu dans le fichier .php ne sera
que du XML et du RSS (oui ça existe).
Ensuite, vous créez l'en-tête de votre fichier .php. Ca on n'a pas encore vu comment faire, donc voici le code :
Code : XML 1
2
3
4
5
6
7
8
9
10
11 | /* Code XML */
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Un titre</title>
<link>URL de votre site</link>
<description>Une simple description de votre site</description>
<language>fr-FR</language>
<managingEditor>Votre e-mail</managingEditor>
<webMaster>Votre e-mail</webMaster>
/* Fin du code XML */
|
On reverra ce code dans les chapitres suivants lorsque nous traiterons le langage XML qui me paraît être important et qui vous tirera d'affaire, pas comme là où on est en train de se demander c'est quoi ce code ?
Cependant, ne vous en faite pas, tout vient à point à qui sait attendre.
Dernière chose, vous listez vos news avec un 'echo' (ça vous savez le faire) et vous fermez les balises <rss> et <channel> à la fin de votre fichier.
4) Génération du petit logo
C'est facile.
Lorsque vous aurez créé votre fichier .php vous n'aurez qu'à inclure ce petit bout de code au début de vos pages .html et .php pour que le petit logo s'active automatiquement à droite de l'URL de votre site, c'est magique.
Code : HTML1 | <link rel="alternate" href="/rss.php" type="application/rss+xml" title="Les news de mon site" />
|
N'oubliez pas de placer votre fichier .php qui contient le flux RSS (ici
rss.php) à la racine de votre site pour que tout fonctionne correctement.
Voilà, vous devrez arriver à un résultat potable si vous avez suivi tous ces conseils à la lettre, je vous laisse faire.
Correction du TP
Ne lisez cette correction que si vous ne savez pas vraiment par où commencer, et j'ai bien dit si vous ne savez même pas placer le code de début car avec toutes les indications données, j'ose espérer que les 3/4 d'entre vous ont réussi car c'était trop facile.
Voici donc la correction :
Fichier principal : rss.php (à mettre à la racine de votre site)
Secret (cliquez pour afficher)Code : PHP 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 | <?php
include('includes/bdd.php');
mysql_connect($adresse, $nom, $motdepasse);
mysql_select_db($database);
include('includes/bbcode2.php');
function cleanText($intext)
{
return utf8_encode(htmlspecialchars(stripslashes($intext)));
}
header("Content-Type: text/xml;charset=utf-8");
$query = mysql_query('SELECT * FROM table_news');
$i = 0;
/* Code XML */
echo '<?xml version="1.0" encoding="utf-8"? >';
echo '<rss version="2.0">';
echo '<channel>';
echo '<title>Flux RSS des news de monsite.fr</title>';
echo '<link>http://www.monsite.fr</link>';
echo '<description>Votre site en bref...</description>';
echo '<language>fr-FR</language>';
echo '<managingEditor>webmaster@monsite.fr</managingEditor>';
echo '<webMaster>webmaster@monsite.fr</webMaster>';
while($row = mysql_fetch_assoc($query) and $i < 15)
{
$title = cleanText($row["title"]);
$mail = $row["email"];
$link = "http://www.monsite.fr";
$description = cleanText($row["contenu"]);
$pubDate = date("r", $row["time"]);
echo '<item>';
echo '<title>'.$title.'</title>';
echo '<link>'.$link.'</link>';
echo '<author>'.$mail.'</author>';
echo '<description>'.$description.'</description>';
echo '<pubDate>'.$pubDate.'</pubDate>';
echo '</item>';
$i++;
}
echo '</channel>';
echo '</rss>';
/* Fin du code XML */
mysql_close();
?>
|
Remplacez bien entendu ces informations par les bonnes et n'oubliez pas de faire votre fichier bdd.php qui contient les informations de connexion à votre bdd.
Ce n'était pas vraiment compliqué, tout ce qu'on a fait c'est de se connecter à la base de données contenant nos news, traduire le texte avec la fonction que je vous avais donnée et affichée ces news avec des
echo pour ensuite refermer les balises <rss> et <channel> que nous étudierons plus tard.
Bien entendu dans le fichier
bdd.php mettez vos identifiants de connexion à votre base de données sinon ça ne marchera pas et mettez ce fichier dans le même dossier que tous les autres fichiers, ce sont parfois des erreurs bêtes...
Maintenant la ligne qu'il fallait insérer dans toutes les pages où vous voulez que vos visiteurs s'abonnent pour voir votre flux RSS est la suivante :
Code : HTML1 | <link rel="alternate" href="/rss.php" type="application/rss+xml" title="Les news de mon site !" />
|
Là, il fallait faire semblant pour ne pas savoir.

Je rappelle que cette ligne est à insérer entre les balises <head> et </head> de votre document (non je ne vous prends pas pour des Zér0s).
Maintenant que c'est fini vous pouvez tester ce code, le petit logo se génère normalement automatiquement à droite de votre URL.
J'ose espérer que ce petit TP vous aura détendu un maximum et fait réviser vos chapitres précédents car avec ce qui nous attend, on n'est pas sorti de l'auberge.
Spécialement vous n'aurez pas de Q.C.M (profitez-en), dans les TPs je veux une atmosphère calme, détendue, je ne veux pas vous prendre la tête pendant les TPs, l'objectif d'un TP est que vous mettiez en pratique tout ce que vous avez appris et non apprendre de nouvelles choses (ce qui est là de la théorie, vous savez les chapitres où vous vous endormez).