Communauté Informatique NDFR.net

Communauté Informatique NDFR.net (http://www.ndfr.net/forums/index.php)
-   Programmation Web (HTML, PHP, ASP, Java, XML, etc.) (http://www.ndfr.net/forums/forumdisplay.php?f=65)
-   -   comment créer un site comme ND (http://www.ndfr.net/forums/showthread.php?t=2388)

kenshin 07-07-2003 22:58

[réglé]comment créer un site comme ND
 
pourriez vous m'expliquer comment vous fait pour avoir ce genre de script ?

http://www.newdimension-fr.net/news_syndication_rss.php

merci

Matt 07-07-2003 23:15

Bah à mon avis, c'est un bête script PHP qui extrait les titres des news dans la BDD et qui met le code XML autour ...
C'est exactement comme le code qu'on t'as donné dans ton sujet précédent (http://www.newdimension-fr.net/t2355.html), mais en modifiant le "layout" au niveau des "echo" ...

kenshin 07-07-2003 23:17

si j'ai bien compris il suffierait de modifier cette partie dans le script ?

Code:

echo "document.write(\"<font face='Arial' size='2'><b>" . $date . " : </b><a href='" . $PATH_INDEX . "#id_news_" . $id . "' target='_blank'>" . $titre . "</a></font><br />\");\n";
  $i++;


Matt 07-07-2003 23:26

Voilà ... Par exemple, tu met :
PHP Code:

echo "<item>
<title>"
.$titre."</title>
<link>"
.$PATH_INDEX."#id_news_".$id ."</link>
<pubDate>"
.$date."</pubDate>
</item>"


Et tu auras un truc qui ressemble un peu à ce que tu veux.
(En pensant bien à mettre aussi l'en-tête en début de fichier et le </channel></rss> à la fin ...)

kenshin 07-07-2003 23:38

je vais essayer merci mais c'est pas gagné faut que je trouve de la doc dessus

kenshin 08-07-2003 10:28

enfin j'ai rien compris

Matt 08-07-2003 10:41

pourtant y a rien à comprendre :confused:

kenshin 08-07-2003 11:16

le code devrait celui ci non ?
Code:

<?php
/*  © Jogo 2003
    Jogo@nintendomaine.com
    */

$chemin = "./";//->chemin par rapport à la racine du script freenews
$nbnews = 5;  //->nombre de news à afficher

include ($chemin . "config.php");
include ($chemin . "options.inc.php");
include ($chemin . "freenews_functions.inc.php");

//->Connection MySQL
connexion();

$sql = "SELECT id_news, titre, auteur, date_ajout FROM news WHERE validation='1' ORDER BY id_news DESC LIMIT 0, " . $nbnews;
$res = mysql_query($sql);
$nbn = mysql_num_rows($res);
while($aff = mysql_fetch_array($res)) {
  if(strlen($aff['titre'] >= 30))
    $aff['titre'] = substr($aff['titre'], 0, 25) . "...";

echo "<item>
<title>".$titre."</title>
<link>".$PATH_INDEX."#id_news_".$id ."</link>
<pubDate>".$date."</pubDate>
</item>";
}
mysql_close();//->je suis méticuleux, je ferme la connection
?>

j'enregistre ce fichier au format php .
ensuite tu me parles de <rss><channel></channel></rss>
et là je suis perdue.
où va cette petite bête ? dans un ficheir en particulier ?

Matt 08-07-2003 11:29

ben le <rss><channel> se met au début du fichier avant le <? (avec encore éventuellement des <title>, <description> etc ... comme sur http://www.newdimension-fr.net/news_syndication_rss.php), et le </rss></channel> se met à la fin du fichier, après le ?>

Jogo 08-07-2003 11:30

Bah là comme tu viens de faire, c'est pas gagné, t'a empacté deux fois le code !
EDIT : Evidament, en éditant tu corrige ton erreur et fait quelque chose qui me semcle correct, donc mes explication ne sont plus nécessaires je pense !

Sinon, le "© Jogo 2003", tu peux le virer, c'est phpEd qui l'a mis automatiquement, j'ai oublié de le supprimer en te le donnant, ça me flatte trop pour que tu le laisse :D ;) !
Avant "<?php" il faut que tu mette un truc du genre :
Quote:

<rss version="0.92">
<channel>
<title>Titre de ton site</title>
<description>
Description de ton site
</description>
<link>http://www.tonsite.com</link>
<language>fr-fr</language>
<copyright>© toi 2003</copyright>
<managingEditor>toi@tonsite.com</managingEditor>
<webMaster>toi@tonsite.com</webMaster>
et après le "?>" tu mets ça :
Quote:

</channel>
</rss>
Ensuite attaquons-nous aux choses sérieuses, à la place du echo qui se trouve dans la boucle while, tu mets un truc du genre
PHP Code:

echo "<item>\n<title>" $aff['titre'] . "</title>\n<link>" $url_suite "?id_news=" $aff['id_news'] . 
"</link>\n<comments>\nhttp://tonsite.com/lienspourposteruncommentaire.php?id=\n</comments>\n<pubDate>" 
$aff['date_ajout'] .  </pubDate>\n</item>"; 

Valà, en éspérant que t'arrive à te demerder avec ça !

kenshin 08-07-2003 11:36

Jogo j'ai laissé ton "© Jogo 2003" je pense qu'une petite reconnaissance est la moindre des choses à faire pour l'aide que tu m'as apporté.

je vais modifier suivant ce que vous m'avez conseillé.

kenshin 08-07-2003 11:43

JOgo rien est inutile ;)

Code:

<?xml version="1.0" ?>
<rss version="0.92">
<channel>
<title>CDivxstater</title>
<description>
création d'un cd outils pour réparer son PC
</description>
<link>http://cdivxstarter.free.fr</link>
<language>fr-fr</language>
<copyright>© moi 2003</copyright>
<managingEditor>kenshin51@voila.fr</managingEditor>
<webMaster>kenshin51@voila.fr</webMaster>
<?php
/*  © Jogo 2003
    Jogo@nintendomaine.com
    */

$chemin = "./";//->chemin par rapport à la racine du script freenews
$nbnews = 5;  //->nombre de news à afficher

include ($chemin . "config.php");
include ($chemin . "options.inc.php");
include ($chemin . "freenews_functions.inc.php");

//->Connection MySQL
connexion();

$sql = "SELECT id_news, titre, auteur, date_ajout FROM news WHERE validation='1' ORDER BY id_news DESC LIMIT 0, " . $nbnews;
$res = mysql_query($sql);
$nbn = mysql_num_rows($res);
while($aff = mysql_fetch_array($res)) {
  if(strlen($aff['titre'] >= 30))
    $aff['titre'] = substr($aff['titre'], 0, 25) . "...";

 
echo "<item>
<title>".$titre."</title>
<link>".$PATH_INDEX."#id_news_".$id ."</link>
<pubDate>".$date."</pubDate>
</item>";

}
mysql_close();//->je suis méticuleux, je ferme la connection
?>
</channel>
</rss>

est correct ?

question bête : quelle doit etre l'extension du fichier php ? xml ? rss ?

Samva 08-07-2003 14:45

php, sinon le servor va pas l'executer.... =)

Jogo 08-07-2003 21:55

Oui, c'est correct, seul un truc : la première ligne. XML entre en conflit avec php, donc mets <? echo "<?xml version=\"1.0\" ?>";?>

Samva 08-07-2003 22:59

ouai tu peux faire ca, et meme mettre
Code:

<?
echo '<?xml version="1.0"?>';
?>

C'est just epour éviter d'utiliser un caractere d'echappement.. vu que tu n'as pas de variables a exploiter tu peux te permettre les guillemet simples

Jogo 08-07-2003 23:11

Ouai, ça va, t'a pas l'impression de chipoter un peut ?

Samva 09-07-2003 00:07

Euh, non, en fait c'est juste pour simplifier la relecture.. parce que si le code doit etre retouché plus tard pour ajouter autre chose dans la balise les caractères d'échappement peuvent etre oublié... ca fait une petite erreur mais c'est toujours con... donc autant prevenir =)

kenshin 09-07-2003 12:07

ok j'ai ajouté la lien cité si dessus mais hélas cela ne fontionne pas toujours un problème en ligne 2 car 1 erreur de syntaxe

Code:

<?
echo '<?xml version="1.0"?>';
?>
<rss version="0.92">
<channel>
<title>CDivxstater</title>
<description>
création d'un cd outils pour réparer son PC
</description>
<link>http://cdivxstarter.free.fr</link>
<language>fr-fr</language>
<copyright>© moi 2003</copyright>
<managingEditor>kenshin51@voila.fr</managingEditor>
<webMaster>kenshin51@voila.fr</webMaster>

<?php
/*  © Jogo 2003
    Jogo@nintendomaine.com
    */

$chemin = "./";//->chemin par rapport à la racine du script freenews
$nbnews = 5;  //->nombre de news à afficher

include ($chemin . "config.php");
include ($chemin . "options.inc.php");
include ($chemin . "freenews_functions.inc.php");

//->Connection MySQL
connexion();

$sql = "SELECT id_news, titre, auteur, date_ajout FROM news WHERE validation='1' ORDER BY id_news DESC LIMIT 0, " . $nbnews;
$res = mysql_query($sql);
$nbn = mysql_num_rows($res);
while($aff = mysql_fetch_array($res)) {
  if(strlen($aff['titre'] >= 30))
    $aff['titre'] = substr($aff['titre'], 0, 25) . "...";

 
echo "<item>
<title>".$titre."</title>
<link>".$PATH_INDEX."#id_news_".$id ."</link>
<pubDate>".$date."</pubDate>
</item>";

}
mysql_close();//->je suis méticuleux, je ferme la connection
?>
 
</channel>
</rss>


Samva 09-07-2003 14:41

Peut etre devrais tu tout encadrer des balise <?php ?>

kenshin 09-07-2003 16:52

comme ceci veux tu dire ?

Code:

<?php
<?
echo '<?xml version="1.0"?>';
?>
<rss version="0.92">
<channel>
<title>CDivxstater</title>
<description>
création d'un cd outils pour réparer son PC
</description>
<link>http://cdivxstarter.free.fr</link>
<language>fr-fr</language>
<copyright>© moi 2003</copyright>
<managingEditor>kenshin51@voila.fr</managingEditor>
<webMaster>kenshin51@voila.fr</webMaster>


/* © Jogo 2003
Jogo@nintendomaine.com
*/

$chemin = "./";//->chemin par rapport à la racine du script freenews
$nbnews = 5; //->nombre de news à afficher

include ($chemin . "config.php");
include ($chemin . "options.inc.php");
include ($chemin . "freenews_functions.inc.php");

//->Connection MySQL
connexion();

$sql = "SELECT id_news, titre, auteur, date_ajout FROM news WHERE validation='1' ORDER BY id_news DESC LIMIT 0, " . $nbnews;
$res = mysql_query($sql);
$nbn = mysql_num_rows($res);
while($aff = mysql_fetch_array($res)) {
if(strlen($aff['titre'] >= 30))
$aff['titre'] = substr($aff['titre'], 0, 25) . "...";


echo "<item>
<title>".$titre."</title>
<link>".$PATH_INDEX."#id_news_".$id ."</link>
<pubDate>".$date."</pubDate>
</item>";

}
mysql_close();//->je suis méticuleux, je ferme la connection


</channel>
</rss>
?>


Benjy 09-07-2003 18:51

Non l'erreur n'est pas là.
Il faut remplacer
Code:

echo '<?xml version="1.0"?>';
par
Code:

echo '<?xml version="1.0"?'.'>';

kenshin 09-07-2003 19:19

j'ai toujours une erreur ça se trouve je m'y prend comme un manche. erreur en ligne 2

Code:

<?
echo '<?xml version="1.0"?'.'>';
?>
<rss version="0.92">
<channel>
<title>CDivxstater</title>
<description>
création d'un cd outils pour réparer son PC
</description>
<link>http://cdivxstarter.free.fr</link>
<language>fr-fr</language>
<copyright>© moi 2003</copyright>
<managingEditor>kenshin51@voila.fr</managingEditor>
<webMaster>kenshin51@voila.fr</webMaster>
<?php

/*  © Jogo 2003
    Jogo@nintendomaine.com
    */

$chemin = "./";//->chemin par rapport à la racine du script freenews
$nbnews = 5;  //->nombre de news à afficher

include ($chemin . "config.php");
include ($chemin . "options.inc.php");
include ($chemin . "freenews_functions.inc.php");

//->Connection MySQL
connexion();

$sql = "SELECT id_news, titre, auteur, date_ajout FROM news WHERE validation='1' ORDER BY id_news DESC LIMIT 0, " . $nbnews;
$res = mysql_query($sql);
$nbn = mysql_num_rows($res);
while($aff = mysql_fetch_array($res)) {
  if(strlen($aff['titre'] >= 30))
    $aff['titre'] = substr($aff['titre'], 0, 25) . "...";

echo "<item>
<title>".$titre."</title>
<link>".$PATH_INDEX."#id_news_".$id ."</link>
<pubDate>".$date."</pubDate>
</item>";


}
mysql_close();//->je suis méticuleux, je ferme la connection
?>
 
</channel>
</rss>

est ce bon ?

Matt 09-07-2003 21:26

Essaye peut-être ça :
echo '<'.'?xml version="1.0"?'.'>';

On sait jamais ...

kenshin 09-07-2003 22:02

Quote:

Provient du message de Matt
Essaye peut-être ça :
echo '<'.'?xml version="1.0"?'.'>';

On sait jamais ...

toujours cette erreur :(

http://membres.lycos.fr/kenshin51/erreur02.gif

Samva 09-07-2003 22:32

Euh et avec un print plutot que l'echo??

kenshin 09-07-2003 22:56

non idem meme erreur , autre chose importante, cette page

http://cdivxstarter.free.fr/freenews/menu4.php

me télécharge une page au format html

et en utilisant ce code

Code:

echo "<item>\n<title>" . $aff['titre'] . "</title>\n<link>" . $url_suite . "?id_news=" . $aff['id_news'] . 
"</link>\n<comments>\nhttp://cdivxstarter.free.fr/comment.php?id=\n</comments>\n<pubDate>" . 
$aff['date_ajout'] .  </pubDate>n</item>";

j'ai ce message d'erreur
Quote:

Parse error: parse error, unexpected '<' in menu4.php on line 40

Samva 09-07-2003 23:09

il manque un guillemet double avant le </pubDate> et un antislash avant le n juste apres d'ailleur.... =)

kenshin 09-07-2003 23:12

ok merci pour la correction
quand on clique sur le lien il me télécharge un fichier menu4.html

et celui affiche ceci :

Samva 09-07-2003 23:18

Euh j'ai pas tout compris la.. mais vérifie ton code il effectue que ce que tu lui demande =)

kenshin 09-07-2003 23:21

quand je clique sur ce lien : http://cdivxstarter.free.fr/freenews/menu4.php
au lieu d'afficher le meme contenu que ceci http://www.newdimension-fr.net/news_syndication_rss.php

Le truc de téléchargerment de IE me télécharge une page sur mon disque dur appelé menu4.html avec le texte du message du dessus .

par déduction je pense qu'il n'exécute pas le script correctement.

Samva 09-07-2003 23:29

Je m'excuse mais j'ai rien moi quand je clique sur le liens...

Benjy 09-07-2003 23:33

Il manque quelque chose en tout début du code PHP les petits amis :
Code:

header("Content-type: text/xml");
:cool:

Samva 09-07-2003 23:34

Bon en fait, la page (ouverte avec moz) donne ca..

Code:

<?xml version="1.0"?>
<rss version="0.92"> 
<channel>
<title>CDivxstater</title>
<description>
création d'un cd outils pour réparer son PC
</description>
<link>http://cdivxstarter.free.fr</link>
<language>fr-fr</language>
<copyright>© moi 2003</copyright>
<managingEditor>kenshin51@voila.fr</managingEditor>
<webMaster>kenshin51@voila.fr</webMaster>

<item>
<title>test</title>
<link>http://cdivxstarter.free.fr/freenews....php?id_news=2</link>
<comments>
http://cdivxstarter.free.fr/comment.php?id=
</comments>
<pubDate>06/07/2003</pubDate>
</item><item>
<title>Bonjour cdivxstater</title>
<link>http://cdivxstarter.free.fr/freenews....php?id_news=1</link>
<comments>
http://cdivxstarter.free.fr/comment.php?id=

</comments>
<pubDate>06/07/2003</pubDate>
</item>
</channel>
</rss>

On voit bien qu'il y a des problème avec tes balises item qui ne sont pas a la ligne... mais c'est tout.

Samva 09-07-2003 23:36

Grillaid, marfi Benjy

kenshin 10-07-2003 12:18

j'ai ajouté cette ligne : header("Content-type: text/xml");

en dessous de <?php

est ce bon ?

voila ce qu'il me dit quand j'essaie d'afficher la page http://cdivxstarter.free.fr/freenews/menu4.php
Code:

  création d'un cd outils pour réparer son PC  http://cdivxstarter.free.fr fr-fr © moi 2003 kenshin51@voila.fr kenshin51@voila.fr
Warning: Cannot add header information - headers already sent by (output started at /var/www/free.fr/13/c/d/i/v/cdivxstarter/freenews/menu4.php:2) in menu4.php on line 16
http://cdivxstarter.free.fr/freenews....php?id_news=2 http://cdivxstarter.free.fr/comment.php?id= 06/07/2003 http://cdivxstarter.free.fr/freenews....php?id_news=1 http://cdivxstarter.free.fr/comment.php?id= 06/07/2003


Matt 10-07-2003 16:10

c'est parce que le header doit être envoyé avant l'envoi de code HTML.
Met ça tout au début du fichier :
PHP Code:

<?php header("Content-type: text/xml"); ?>


kenshin 10-07-2003 17:08

ok Matt c'est ajouté.
il y a du mieux :

j'ai ceci maintenant
Code:

The XML page cannot be displayed
Cannot view XML input using style sheet. Please correct the error and then click the Refresh button, or try again later.


--------------------------------------------------------------------------------

Erreur non reconnue

voici le code de la page :
Quote:

<?php header("Content-type: text/xml"); ?>
<?
echo '<?xml version="1.0"?'.'>';
?>
<rss version="0.92">
<channel>
<title>CDivxstarter</title>
<description>
création d'un cd outils pour réparer son PC
</description>
<link>
http://cdivxstarter.free.fr</link>
<language>fr-fr</language>
<copyright>© moi 2003</copyright>
<managingEditor>kenshin51@voila.fr</managingEditor>
<webMaster>kenshin51@voila.fr</webMaster>

<?php
$chemin = "./";//->chemin par rapport à la racine du script freenews
$nbnews = 5; //->nombre de news à afficher

include ($chemin . "config.php");
include ($chemin . "options.inc.php");
include ($chemin . "freenews_functions.inc.php");

//->Connection MySQL
connexion();

$sql = "SELECT id_news, titre, auteur, date_ajout FROM news WHERE validation='1' ORDER BY id_news DESC LIMIT 0, " . $nbnews;
$res = mysql_query($sql);
$nbn = mysql_num_rows($res);
while($aff = mysql_fetch_array($res)) {
if(strlen($aff['titre'] >= 30))
$aff['titre'] = substr($aff['titre'], 0, 25) . "...";

echo "<item>\n<title>" . $aff['titre'] . "</title>\n<link>" . $url_suite . "?id_news=" . $aff['id_news'] .
"</link>\n<comments>\nhttp://cdivxstarter.free.fr/comment.php?id=\n</comments>\n<pubDate>" .
$aff['date_ajout'] . "</pubDate>\n</item>";

}
mysql_close();//->je suis méticuleux, je ferme la connection
?></channel>
</rss>
où est l'erreur :( :( :( ?

Samva 10-07-2003 19:59

Euh, ta version actuelle de menu4.php rulaize...
J'ai ca...
Code:

  <?xml version="1.0" encoding="ISO-8859-1" ?>
- <rss version="0.92">
- <channel>
  <title>CDivxstarter</title>
  <description>création d'un cd outils pour réparer son PC</description>
  <link>http://cdivxstarter.free.fr</link>
  <language>fr-fr</language>
  <copyright>© moi 2003</copyright>
  <managingEditor>kenshin51@voila.fr</managingEditor>
  <webMaster>kenshin51@voila.fr</webMaster>
- <item>
  <title>test</title>
  <link>http://cdivxstarter.free.fr/freenews....php?id_news=2</link>
  <comments>http://cdivxstarter.free.fr/comment.php?id=</comments>
  <pubDate>06/07/2003</pubDate>
  </item>
- <item>
  <title>Bonjour cdivxstater</title>
  <link>http://cdivxstarter.free.fr/freenews....php?id_news=1</link>
  <comments>http://cdivxstarter.free.fr/comment.php?id=</comments>
  <pubDate>06/07/2003</pubDate>
  </item>
  </channel>
  </rss>


kenshin 10-07-2003 20:55

ben ça alors tout à l'heure cela ne fonctionnait pas. :eek: :eek:

Par contre l'appelet javascript ne fonctionne toujours pas.


<script language="JavaScript" src="http://cdivxstarter.free.fr/freenews/menu4.php" type="text/javascript"></script>

Matt 10-07-2003 22:03

Ben ... Quand je regarde la page qui est censé contenir ton javascript, je me retrouve avec une page XML, donc c'est un peu logique que ça marche pas ...


All times are GMT +2. The time now is 19:26.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.