Afficher les messages en ordre décroissant

Répondre
raphlight
le 10/02/2007 à 22:52
raphlight
Bon, comme promis, voilà un nouveau problème à résourde ! lol

Alors, voilà j'aimerais que sur mon livre d'or, les nouveaux messages ne s'affichent non pas à la suite des autres, mais au dessus (tout en haut).

Mon livre d'or est consitué d'un fichier php de traitement ( traitement.php):

<?php
/*test de la variable*/
if(((stristr($message, '<a')) || (stristr($message, 'href'))) === FALSE) {
/*on traite le message normalement*/
/*Ouverture du fichier en écriture*/
$fp = fopen("guestbook2.php",a);
/*On convertit les caracteres html*/
$nom = htmlspecialchars($_POST['nom']);
$message = stripslashes(nl2br(htmlentities($_POST['message'])));
$d = date ( "d/m/Y H:i:s" );
$page = "";
$page .= "<b>$nom</b> - $d<br>$message<br><hr>n";
/*On rajoute le message*/
fwrite($fp,"$page" ,strlen("$page"));
/*fermeture du fichier*/
fclose($fp);
/*On affiche le message*/
echo "Merci $nom, votre message a été posté. <br>";
}
/*si spam, on détruit le message*/
else {
echo "Nous avons détecter du spam dans votre message, il a donc a été détruit.";
}
?>
<br><a href="index.html">Retour à la page principale du site</a>


Et de la page sur laquelle s'affichent les messages qui est en fait une page vierge ou j'ai inclus le fichier guestbook2.php

Comment afficher les messages au-dessus les uns des autres; le plus récent en haut, le plus vieux en bas... ?

Merci d'avance
http://raphlight.free.fr/trad.php
i M@N
le 11/02/2007 à 10:11
i M@N
Hello !

Va falloir que t'apprennes un peu MySQL et le fonctionnement d'une base de données, c'est bien plus pratique pour ce genre de choses ...

Là il faut faire tout un cirque pour faire ce que tu veux :
<?php
/*on récupère et on initialise nos variables issues de $_POST*/
if (isset($_POST['nom'])) $nom = $_POST['nom']; else $nom = "";
if (isset($_POST['message'])) $message = $_POST['message']; else $message = "";
/*test de la variable*/
if(((stristr($message, '<a')) || (stristr($message, 'href'))) === FALSE) {
/*on traite le message normalement*/
/*on définit le fichier $file*/
$file = "./guestbook2.php";
/*on récupère le contenu du fichier $file
(le @ c'est pour ignorer l'erreur d'ouverture si le fichier n'existe pas encore)*/
$contenu = @file_get_contents($file);
/*Ouvre en écriture seule
place le pointeur de fichier au début du fichier
réduit la taille du fichier à 0.
Si le fichier n'existe pas, on tente de le créer*/
$fp = fopen($file, "w");
/*On convertit les caracteres html*/
$nom = htmlspecialchars($nom);
$message = stripslashes(nl2br(htmlentities($message)));
$date = date ( "d/m/Y H:i:s" );
/*on compose notre message à ajouter*/
$ajout = '<b>'.$nom.'</b> - '.$date.''.$message.'<br><hr>';
/*On rajoute le message ($ajout) puis ce que contenait le fichier $file ($contenu)*/
fwrite($fp,$ajout.$contenu);
/*fermeture du fichier*/
fclose($fp);
/*On affiche le message*/
echo 'Merci '.$nom.', votre message a été posté.<br/>';
}
/*si spam, on détruit le message*/
else {
echo "Nous avons détecter du spam dans votre message, il a donc a été détruit.";
}
?>
<br><a href="index.html">Retour à la page principale du site</a>


@+...
One Love, One Heart, One Unity.
raphlight
le 11/02/2007 à 20:48
raphlight
ah cool ! merci encore i m@n !

euh, j'ai essayé de modifier le truk que tum 'avais passé pour interdire les <a et les href, cca donne ca:

if(((stristr($message, '<a')) || (stristr($nom, '  ')) || (stristr($nom, '')) || (stristr($message, 'href'))) === FALSE) {


Mais quand on poste un message, ca met:

Warning: stristr() [function.stristr]: Empty delimiter.

il dit qu le bug est à la ligne 6 (c'est la ligne ou y'a le code que j'ai modifié)
http://raphlight.free.fr/trad.php
jocker
le 12/02/2007 à 12:56
jocker
normal compte tes parenthèses tu vas voir que ton === FALSE se retrouve en dehors.

++
i M@N
le 15/02/2007 à 01:26
i M@N
Hello.

...
|| (stristr($nom, ' ')) || (stristr($nom, ''))...
Tu connais la fonctio empty et son alter-ego !empty (! pour "n'est pas") ?

Pourquoi tester dans le même if si $nom est vide et si $message contient du spam et dans les deux cas renvoyer une erreur comme quoi du spam est détecté (c'est vrai dans un seul cas) ?
il vaudrait mieux faire un if pour chaque variable et renvoyer un message d'erreur différent.

@+...
One Love, One Heart, One Unity.
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours