EDITEUR FLUX RSS 2 VIA UN FORMULAIRE

kiwi1nut Messages postés 29 Date d'inscription mercredi 25 janvier 2006 Statut Membre Dernière intervention 13 mars 2008 - 11 janv. 2007 à 12:44
kincalvin Messages postés 2 Date d'inscription vendredi 14 mars 2008 Statut Membre Dernière intervention 20 novembre 2009 - 20 nov. 2009 à 15:50
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/41039-editeur-flux-rss-2-via-un-formulaire

kincalvin Messages postés 2 Date d'inscription vendredi 14 mars 2008 Statut Membre Dernière intervention 20 novembre 2009
20 nov. 2009 à 15:50
apprends à coder.
kiwi1nut Messages postés 29 Date d'inscription mercredi 25 janvier 2006 Statut Membre Dernière intervention 13 mars 2008
13 mars 2008 à 15:21
ok sur la base de la source teste ça. (je te le dis j'ai pas le temps de la tester)

a la place de
# $handle = fopen($cfg['file_to_edit'],"w");
# fwrite($handle, stripslashes($text));

essaie
$path= cfg['file_to_edit'];

if(file_exists($path']))
{
$handle = fopen($path,"r");
$content = file($path);
fclose($handle);
}
$handle = fopen($path,"w");
for($i=0;$i < count($content); $i++)
{
if(($content[$i] != "")&&($content[$i] != "\r\n"))
fwrite($handle,$content[$i]);
}
$str_out = stripslashes($text);
fwrite($handle,$str_out);
fclose($handle);

voilà comme je te l'ai dis je sais pas si ça marche mais c'est la base de solution de ton pb
A++++
cs_gasty Messages postés 5 Date d'inscription jeudi 13 mars 2003 Statut Membre Dernière intervention 31 janvier 2010
13 mars 2008 à 10:32
Bonjour KIWI

Pourquoi r+, mais parce que w+ efface tout.

debutRSS contient "text1" fin RSS contient "text2" et flux RSS contient l'ensemble des entrées du formulaire soit "text".
fluxRSS2 est le fichier final. C'est à dire debutRSS + fluxRSS + finRSS.
Hors, debutRSS m'écrase fluxRSS sur le nombre de caractères qu'il contient provoquant une erreur. J'ai trouvé comme solution de mettre l'équivalent en espace au debut de fluxRSS afin de résoudre le problème mais je pense qu'il y a mieux. Oui! Je sais ton bout de code... mais pour finir ce programme que je pense interessant et à l'auteur dont je lui suggere d'en faire une version N°2 avec ce complèment car je suis sûr qu'un bon nombres peuvent etre interessés par la simplicité d'installation. Et de conserver l'ensemble des entrées du formulaire sans un effacement systematique des précedentes.
kiwi1nut Messages postés 29 Date d'inscription mercredi 25 janvier 2006 Statut Membre Dernière intervention 13 mars 2008
12 mars 2008 à 22:41
pourquoi r+???
c'est w+...
Mais franchement si tu veux un bon flux rss il y a des super script qui utilisent mysql sur codes sources. Là je reconnais que ce code est vraiment galère...
Bref dans ton code c'est vraiment le bazar...pourquoi tu mets $text1?
et c'est quoi debutrss et fin rss?? et pourquoi $handle11 puis $handle22??
Désolé mais ton code c'est du charabia...

regarde ce que j'avais déjà posté
$xml = '<?xml version="1.0" encoding="iso-8859-1"?><rss version="2.0">';
$xml .= '<channel>';
$xml .= '<title>ton titre</title>';
$xml .= '<link>url de ton site</link>';
$xml .= '<description>description de ton site</description>';
$xml .= '<copyright>© ton site</copyright>';
$xml .= '<language>fr</language>';

ensuite tu te connecte a ta base
et tu extraits
while($row= mysql_fetch_array($res)){
$titre=$row["tag"];
$adresse=$row["url"];
$contenu=$row["titre"];
$mydate=$row["date"];
$datephp=date("D, d M Y H:i:s +0100", strtotime($mydate));

$xml .= '';
$xml .= '<title>'.$titre.'</title>';
$xml .= '<link>'.$adresse.'</link>';
$xml .= ''.$datephp.'

';
$xml .= '<description>'.$titre.'</description>';
$xml .= '';
}

$xml .= '</channel>';
$xml .= '</rss>';

$fp = fopen("fluxrss.xml", 'w+');
fputs($fp, $xml);
fclose($fp);

si tu as base de db tu changes les variables par celle mises dans la source...
cs_gasty Messages postés 5 Date d'inscription jeudi 13 mars 2003 Statut Membre Dernière intervention 31 janvier 2010
12 mars 2008 à 14:14
Voici ou j'en suis.

<?php
// Configuration
unlink("fluxRSS2.xml"); // supprime fichier

$cfg = "fluxRSS.xml"; // fluxRSS de transition
$cfg1 = "fluxRSS2.xml";// fluxRSS2 l'original de fin
$cfg2 = "editer_RSS.php";
//****************************
$cfg11= "debutRSS.xml";
$cfg22= "finRSS.xml";
//*****************************

$titresite = "GastyVox" ;
$linksite = "http://agastine.club.fr/WebRueduGastyVox2/index.htm" ;
$descriptionsite = "Le bistrot à Gasty" ;
$langue = "fr" ;
$copyright = "Copyright ASGSYSTM" ;
$titreimage = "Nom IMAGE RSS" ;
$urlimage = "http://agastine.club.fr/WebRueduGastyVox2/minigasty.jpg" ;
$xml = "<?xml version="1.0" encoding="ISO-8859-1" ?>";

$titre = stripslashes($_POST['titre']) ;
$description = stripslashes($_POST['description']) ;
$linkarticle = $_POST['linkarticle'] ;
$minutes = $_POST['minutes'] ;
$day = $_POST['day'] ;
$auteur = $_POST['auteur'] ;
$jour = $_POST['jour'] ;
$mois = $_POST['mois'] ;
$annee = $_POST['annee'] ;
$heure = $_POST['heure'] ;
$minutes = $_POST['minutes'] ;
$secondes = ":00" ;
//*********************************************************
$text1 = "<?xml version="1.0" encoding="utf-8" ?>\n";
$text1 .= "<rss version="2.0">\n";
$text1 .= "<channel>\n";
$text1 .= "<title>".$titresite."</title>\n";
$text1 .= "<link>".$linksite."</link>\n";
$text1 .= "<description>".$descriptionsite."</description> \n";
//***************************************************************
$text = "\n";
$text .= "<title>".$titre."";
$text .= " - Posté à ";
$text .= "$heure";
$text .= ":$minutes";
$text .= " Le ";
$text .= "$jour";
$text .= "$mois";
$text .= " Par ";
$text .= "$auteur";
$text .= "</title>\n";
$text .= "<link>".$linkarticle."</link>\n";
$text .= "".$day."$jour";
$text .= "$mois";
$text .= "$annee";
$text .= "$heure";
$text .= ":$minutes";
$text .= "$secondes";
$text .= " +0100

\n";
$text .= "<description>".$description."</description>\n";
$text .= "\n";
//***************************************************
$text2 = "</channel>\n";
$text2 .= "</rss>\n";
//****************************************************
$handle = fopen($cfg,"a+"); // fluxRSS de transition
fwrite ($handle, stripslashes($text));
fclose($handle);
//******************************************************
$file = 'fluxRSS.xml';
$newfile = 'debutRSS.xml';

if (!copy($file, $newfile)) {
echo "La copie du fichier $file n'a pas réussi...\n";
}
//-------------------------------------------------
$handle11 = fopen($cfg11,"r+"); // debutRSS
fseek($handle11,-255,SEEK_CUR);

fwrite($handle11, stripslashes($text1));
fclose($handle11);
//******************************************************
$file = 'debutRSS.xml';
$newfile = 'finRSS.xml';

if (!copy($file, $newfile)) {
echo "La copie du fichier $file n'a pas réussi...\n";
}

$handle22 = fopen($cfg22,"a+"); // finRSS
fwrite ($handle22, stripslashes($text2));
fclose($handle22);
//******************************************************
$file = 'finRSS.xml';
$newfile = 'fluxRSS2.xml';

if (!copy($file, $newfile)) {
echo "La copie du fichier $file n'a pas réussi...\n";
}
//*************************************************
unlink("debutRSS.xml");
unlink("finRSS.xml");
//*****************************************************

echo "
";
echo "Retour";
echo "
";

?>
cs_gasty Messages postés 5 Date d'inscription jeudi 13 mars 2003 Statut Membre Dernière intervention 31 janvier 2010
12 mars 2008 à 14:10
Il y a un truc qui me prend la tête, je ne suis pas un pro du PHP. Comme j'ai pratiquement fini de modifier ce programme afin qu'il soit véritablement utilisable pour faire un vrai RSS ...Lorque j'utilise r+ la partie déjà existante du fichier est ecrasé sur les premières lignes , je n'arrive pas.
cs_guigui71 Messages postés 3 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 7 mars 2008
7 mars 2008 à 15:46
je le place ou ce petit bout de code?
Merci pour l'aide.
kiwi1nut Messages postés 29 Date d'inscription mercredi 25 janvier 2006 Statut Membre Dernière intervention 13 mars 2008
7 mars 2008 à 15:16
essaye ça voir

fopen($cfg['file_to_edit'], "w+");
fputs($handle, stripslashes($text));
fclose($handle);
cs_guigui71 Messages postés 3 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 7 mars 2008
7 mars 2008 à 13:35
C'est à dire?
"fputs" il faut modifier quoi?
kiwi1nut Messages postés 29 Date d'inscription mercredi 25 janvier 2006 Statut Membre Dernière intervention 13 mars 2008
7 mars 2008 à 12:37
Ben en fait d'expérience, plutôt passer par une base de donnée c'est quand même plus pratique mais au cas ou passe par fputs
cs_guigui71 Messages postés 3 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 7 mars 2008
7 mars 2008 à 11:10
Comment modifier le script pour créer plusieurs Items à la suite?
cs_ben05 Messages postés 37 Date d'inscription vendredi 14 avril 2006 Statut Membre Dernière intervention 4 février 2009
11 janv. 2007 à 17:34
Salut,

Merci pour ton commentaire. Bien entendu c'est possible avec une base de donnée, mais le bit était de le faire sans.
Car il y a beaucoup de personne non expérimenté comme moi, qui n'aime pas trop utiliser les bases de donnée.
Donc au lieu de forcer tout le monde à utiliser des bases de données, je préfère proposer une alternative.

Donc à tout ce qui ne savent pas trop utiliser une base de donnée, ou ne peuvent en disposer chez leur hébergeur... vous pourrez utiliser cette source sans base de donnée !!!
kiwi1nut Messages postés 29 Date d'inscription mercredi 25 janvier 2006 Statut Membre Dernière intervention 13 mars 2008
11 janv. 2007 à 12:44
tu aurais pu faire simple!!!!!! une base de donnée avec la date, url , titre et la création dynamique de ton flux.....
Un truc du genre
$xml = '<?xml version="1.0" encoding="iso-8859-1"?><rss version="2.0">';
$xml .= '<channel>';
$xml .= '<title>ton titre</title>';
$xml .= '<link>url de ton site</link>';
$xml .= '<description>description de ton site</description>';
$xml .= '<copyright>© ton site</copyright>';
$xml .= '<language>fr</language>';

ensuite tu te connecte a ta base
et tu extrait
while($row= mysql_fetch_array($res)){
$titre=$row["tag"];
$adresse=$row["url"];
$contenu=$row["titre"];
$mydate=$row["date"];
$datephp=date("D, d M Y H:i:s +0100", strtotime($mydate));

$xml .= '';
$xml .= '<title>'.$titre.'</title>';
$xml .= '<link>'.$adresse.'</link>';
$xml .= ''.$datephp.'

';
$xml .= '<description>'.$titre.'</description>';
$xml .= '';
}

$xml .= '</channel>';
$xml .= '</rss>';

$fp = fopen("fluxrss.xml", 'w+');
fputs($fp, $xml);
fclose($fp);

echo 'flux généré
[fluxrss.xml voir la page]';

et hop

bon allez courage
Rejoignez-nous