rss, php et forum

dragonvert
Invité n'ayant pas de compte PHPfrance

24 déc. 2007, 17:42

Bonjour @ tous voila j'ai un forum, je voulais faire un fichier en rss avec php. Je voulais que dans ce fil rss apparaisent les dix derniers mesages marquer sur mon forum, j'ai créer un code mais il me met erreur ligne 65, je voulais savoir si quelqu'un pouvais me dire mon (ou mes) erreur, merci d'avance pour vos réponses.
<?
//fichier créant la connexion à MySQL
@mysql_connect("dragonvert.sql.jexiste.fr", "dragonvert", "mdp") or die("impossible de se connecter a la base de donné");
@mysql_select_db("dragonvert") or die("impossible de se connecter a la base de donné");


// prepare le fichier html pour le mettre en utf8 (xml)
function cleanText($intext) {
    return utf8_encode(htmlspecialchars(stripslashes($intext)));
}

// on spécifie que le fichier est de la forme xml
// ne rien afficher avant cette ligne !
header("Content-Type: text/xml;charset=utf-8");

$query1 = 'SELECT id, title, contenu, time FROM table_news';
$result1 = mysql_query($query1);

// Les informations basique RSS 2.0
echo <<<END
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
    <channel>
        <title>dragonvert : l'actualité et les joueurs de la 360</title>
        <link>http://dragonvert.jexiste.fr</link>
        <description>forum general sur tout la 360</description>
        <language>fr-FR</language>
        <managingEditor>[email protected]</managingEditor>
        <webMaster>[email protected]</webMaster>
END;

/* selectionne les 5 derniers enregistrement et tri la table posts en decroissant */
$result1=mysql_query("select title,id,forum,sender,date from atk_posts order by id desc LIMIT 0,10");

/* Calcule le nombre de ligne à parcourir */
$e=mysql_num_rows($result1);

/* Fait une boucle pour parcourir les e derniers messages */
for($x=0;$x<$e;$x++){
$title=mysql_result($result1,$x,"title");

/* Applique un format de date et heure */
$date=date("d/m/y à H:i",$date);

/* Recherche le nom du forum */
$result2=mysql_query("select filename from atk_forums where id='$forum'");
$filename=mysql_result($result2,"filename");

/*Supprime le RE: au début du titre */
if (substr($title,0,3) == "Re:") {
$title=substr($title,4);
}

/* Réduit le sujet à 30 caractères */
if (strlen($title) > 30) {
$title = substr($title,0,27);
$title .= "...";
}

/* Affiche le résultat */
echo "<a href='http://dragonvert.jexiste.fr/forum/$filename?msg=$id_post&return=1#$id_post' target='_blank' name='$title' alt='$title'>$title</a><br> <B><FONT color='#FF9900'>$sender</FONT></B> le $date<br>";
};
END;
}
echo <<<END

    </channel>
</rss>
END;

?>

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

24 déc. 2007, 18:12

Modération :
dragonvert, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 déc. 2007, 18:29

Eh bien comme le message d'erreur contient toujours la raison de l'erreur, il faut le lire, le comprendre et le corriger.

Si tu ne sais pas le faire toi, il faut au moins que tu nous donnes ce message d'erreur ;)
De plus, tu nous parles de la ligne 65, mais est-ce que tu l'as vérifié ? Est-ce que tu peux nous isoler cette ligne ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

dragonvert
Invité n'ayant pas de compte PHPfrance

24 déc. 2007, 19:17

bonsoir merci pour cette réponse:) mon erreur est

Parse error: syntax error, unexpected '}' in /home/.nfs8/dragonvert/www/rss.php on line 65

la ligne 65 est : echo <<<END (6 lignes avant la fin)

je debute dans le php en fait mais j'avais reussit a creer un code pour afficher les derniers post de mes forums sur une page, par contre pour passer par le rss cest moins bon.

voila j'espère avoir été assez claire sinon le lien pour mon fichier rss c'est

http://dragonvert.jexiste.fr/rss.php

Eléphant du PHP | 185 Messages

24 déc. 2007, 19:27

Le message d'erreur indique que tu as une accolade fermante innatendue. J'ai copié/collé ton code sur notepad++ afin de l'identifier, et il semblerait que l'accolade qui provoque le problème se trouve à la ligne 64 (à moins que ce ne soit celle qui se trouve à la ligne 62). A toi de tester ! :)

Edit : il me semble également que les chaînes de caractères suivant les echo doivent être encapsulées entre des apostrophes ou des guillemets...
echo 'Ceci est mon texte...';

// ou bien...

echo "Ceci est un autre texte";
Edit 2 : pour ta propre sécurité, évite de dévoiler les informations de connexion à ta base de données sur un forum (quel qu'il soit) lorsque tu dévoiles ton code. Edite ton premier message et change donc les premières lignes par ceci :
@mysql_connect("**********", "*******", "*******") or die("impossible de se connecter a la base de donné");
@mysql_select_db("********") or die("impossible de se connecter a la base de donné");
Personne ne t'en voudras de ne pas dévoiler des informations privées ! ;)

dragonvert
Invité n'ayant pas de compte PHPfrance

24 déc. 2007, 19:52

ok, un grand merci je vais faire tout ça et bonnes fêtes de fins d'années. :D 8-)

dragonvert
Invité n'ayant pas de compte PHPfrance

24 déc. 2007, 20:38

super mega cool, ça marche,

j'ai telecharger notepad ++ et j'ai remarquer qu'a la ligne 62 ça s'allumait pas en rouge donc y'avait une fermeture et pas d'ouverture merci.

@ bientôt j'espère pour vous rendre ce que vous m'avez offert :D :D