livre d'or (ordre invers) : dernier message d'abord |
|
Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
Cyborg69 html mioche
|
livre d'or (ordre invers) : dernier message d'abord , Posté le: 18-09-2004 21:24 |
|
|
Le tuto que t'as fais Salemioche marche super bien (et je te remerci ), mais il y a un truc que je n'arrive pas a faire : que, dans la page, les plus vieux messages soient affichés plus bas que les nouveaux.
Merci d'avance |
|
|
Cyborg69 html mioche
|
livre d'or (ordre invers) : dernier message d'abord , Posté le: 26-09-2004 20:36 |
|
|
Alors, personne ne veut me répondre ? |
|
|
salemioche salemioche
|
livre d'or (ordre invers) : dernier message d'abord , Posté le: 27-09-2004 20:29 |
|
|
en fait c'est un peu compliqué parce qu'il faut lire tout le fichier guestbook.doc, puis supprimer le contenu, puis ecrire le nouveau POST et ensuite tout les anciens.
pour lire tout le fichier
Code: |
$gb = implode('', file('guestbook.doc')); |
ouvrir le fichier
Code: |
$f=fopen('guestbook.doc','w'); |
puis ecrire dedans
Code: |
fwrite($f,'toto<br>\n' . $gb);
fclose($f); |
voila ou un truc du genre, à la place de toto, tu mets le message que tu veux ajouter |
|
|
maddoc frontpage mioche
|
livre d'or (ordre invers) : dernier message d'abord , Posté le: 27-09-2004 20:39 |
|
|
Bonsoir,
Alors je vais tenter de vous modifier le code suivant :
Code: |
<?
//Ouverture du fichier en &criture
$fp = fopen("/home/salemio/net/guestbook.doc",a);
//On convertit les caracteres html
$nom = htmlspecialchars($_POST['nom']);
$mail = htmlspecialchars($_POST['mail']);
$message = stripslashes(nl2br(htmlentities($_POST['message'])));
$d = date ( "d/m/Y H:i:s" );
$page = "";
$lemail = "<a href=\"mailto:$mail\">$mail</a>";
$page .= "<b>$nom</b> (".$lemail.") - $d<br>$message<br><hr>\n";
//On rajoute le message
fwrite($fp,"$page" ,strlen("$page"));
//fermeture du fichier
fclose($fp);
//On affiche le message enregistr&
echo "Merci $nom, nous avons enregistr&: <br>";
echo "email : $mail <br> message : $message";
?>
<a href="guestbook.php">Retour au guestbook</a>
|
afin que les messages les plus récents soient affichés en premier :
Code: |
<?
//On convertit les caracteres html
$nom = htmlspecialchars($_POST['nom']);
$mail = htmlspecialchars($_POST['mail']);
$message = stripslashes(nl2br(htmlentities($_POST['message'])));
$d = date ( "d/m/Y H:i:s" );
$page = "";
$lemail = "<a href=\"mailto:$mail\">$mail</a>";
$page .= "<b>$nom</b> (".$lemail.") - $d<br>$message<br><hr>\n";
// Cr&ation d'un nom de fichier temporaire
$tmpname = tempnam("", "tmp");
$fp1 = fopen($tmpname, w);
//On ajoute le message
fwrite($fp1,"$page" ,strlen("$page"));
//Ouverture du fichier en lecture
$filename = "/home/salemio/net/guestbook.doc";
$fp2 = fopen($filename, r);
// Rajoute l'ancien fichier au bout
$contents = fread($fp2, filesize($filename));
fwrite($fp1, $contents, filesize($filename));
// Fermeture du fichier
fclose($fp2);
// Fermeture du fichier
fclose($fp1);
// Efface l'ancien guestbook
unlink($filename);
// Renomme le nouveau guest book
rename($tmpname, $filename);
//On affiche le message enregistr&
echo "Merci $nom, nous avons enregistr&: <br>";
echo "email : $mail <br> message : $message";
?>
<a href="guestbook.php">Retour au guestbook</a>
|
Je n'ai pas testé le code donc si cela ne marche pas essayer de décrire le problème afin que l'on tente de corriger le script. |
|
|
salemioche salemioche
|
livre d'or (ordre invers) : dernier message d'abord , Posté le: 27-09-2004 20:46 |
|
|
pour que ton code marche il faut avoir les droits en ecriture sur le repertoire, dans ma version seul le fichier guestbook.doc à ces droits. le risque c'est que en plus ensuite comme c'est un fichier créé par php tu ne puisse plus le supprimer par manque de droit et soit obliger de repasser par php (impossible par ftp) |
|
|
maddoc frontpage mioche
|
livre d'or (ordre invers) : dernier message d'abord , Posté le: 28-09-2004 6:24 |
|
|
Effectivement, c'est à vérifier
Je vais réfléchir à une méthode qui ne se sert pas de fichier temporaire.
maddoc |
|
|
Cyborg69 html mioche
|
livre d'or (ordre invers) : dernier message d'abord , Posté le: 03-10-2004 12:38 |
|
|
merci maddoc mais, comme salemioche, j'ai que guestbook.doc qui a les droits en écriture. Donc ca ne marche pas. Ce serai super bien si tu trouvais une autre solution
merci d'avance |
|
|
maddoc frontpage mioche
|
livre d'or (ordre invers) : dernier message d'abord , Posté le: 03-10-2004 20:30 |
|
|
Bonsoir,
On peut essayer un truc du genre :
Code: |
<?
//On convertit les caracteres html
$nom = htmlspecialchars($_POST['nom']);
$mail = htmlspecialchars($_POST['mail']);
$message = stripslashes(nl2br(htmlentities($_POST['message'])));
$d = date ( "d/m/Y H:i:s" );
$page = "";
$lemail = "<a href=\"mailto:$mail\">$mail</a>";
$page .= "<b>$nom</b> (".$lemail.") - $d<br>$message<br><hr>\n";
//Ouverture du fichier en lecture
$filename = "/home/salemio/net/guestbook.doc";
$fp = fopen($filename, 'r+');
// Taille du fichier
$size = filesize($filename);
// Lecture du fichier courant
$contents = fread($fp, $size);
// On se met au debut du fichier
fseek($fp, 0, SEEK_SET);
//On ajoute le nouveau message
fwrite($fp,"$page" ,strlen("$page"));
// Puis on rajoute les anciens
fwrite($fp, $contents, $size);
// Fermeture du fichier
fclose($fp1);
//On affiche le message enregistr&
echo "Merci $nom, nous avons enregistr&: <br>";
echo "email : $mail <br> message : $message";
?>
<a href="guestbook.php">Retour au guestbook</a>
|
Ce n'est toujours pas tester...
Maddoc
P.S. : Je ne donnerais pas de signe de vie jusqu'au 14 octobre 2004. |
|
|
Cyborg69 html mioche
|
livre d'or (ordre invers) : dernier message d'abord , Posté le: 04-10-2004 19:13 |
|
|
Merci, merci, merci, merci
Ca marche super bien |
|
|
lukypetitnuage frontpage mioche
|
livre d'or (ordre invers) : dernier message d'abord , Posté le: 16-06-2005 21:41 |
|
|
j'ai du rater quelque chose, ça marche pas chez moi, mes messages sont toujours les plus anciens au début |
|
|
Nevinrhal html mioche
|
livre d'or (ordre invers) : dernier message d'abord , Posté le: 16-06-2005 23:36 |
|
|
J'ai fait un post ici: le post [http://forum.salemioche.net/ftopic1780.php]
Mon livre d'or marche et pour l'écriture du fichier c'est ca :
Code: |
// Ecriture du fichier
$ancien = file_get_contents("LivreOr.txt");
$fic = fopen("LivreOr.txt", "w");
fwrite($fic, $page.$ancien, strlen($page)+ strlen($ancien));
fclose($fic);
?> |
|
|
|
|
|
Accueil Forum
-> php |
Toutes les heures sont au format GMT + 1 Heure
|
Page 1 sur 1 |
|
S'enregistrer
Profil
Se connecter pour vérifier ses messages privés
Rechercher
Membres
FAQ
Connexion
|