Autor Zpráva
Lubka
Profil *
Zdravím,
mam tento jednoduchej guestbook:
<?php
$jmeno = $_POST['jmeno'];
$email = $_POST['email'];
$web = $_POST['web'];
$zprava = $_POST['zprava'];
$jmeno=HTMLSpecialChars($jmeno); //převede některé znaky na entity 
$email=HTMLSpecialChars($email);
$web=HTMLSpecialChars($web);
$zprava=HTMLSpecialChars($zprava);
$jmeno=stripslashes($jmeno); //odstraní lomítka
$email=stripslashes($email);
$web=stripslashes($web);
$zprava=stripslashes($zprava);
$zprava = str_replace("\n"," <br> ", $zprava); //nové řádky nahradí <br>
$zprava = substr($zprava, 0, 5000);//zpráva bude mít maximálně 10000 znaků pomocí substr
$email_celek=" | <a href='mailto:$email'></a>";
$web_celek=" | <a href='$web'>$web</a>";
if ($web=="http://"){$web_celek="";} //pokud se nevyplní nic se nevypíše 
if ($email=="@"){$email_celek="";} // -||-
if ($zprava!="" and $jmeno!=""){ //provede se pokud není prázdná zpráva a jméno
$celek="<p><strong>$jmeno</font></strong>$email_celek $web_celek<br>$zprava</p><hr>";
$soubor = fopen ('kniha.txt','r+'); //otevře soubor pro doplňování
fwrite ($soubor, $celek); //zapíše zprávu
fclose ($soubor); //zavře soubor
}
?>
a chtěl jsem aby se poslední napsaná zprváva zobrazovala na začatku souboru kniha.txt ale mysto toho se všechny předešlé příspěvky smazaly a zustal tam jen poslední a tak dokola, bude to asi pičovinka ale nevim si rady, díky všem za nápady:)

Moderátor panther: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
ShiraNai7
Profil
Lubka:
dokola, bude to asi pi*ovinka ale nevim si rady, díky všem za nápady:)

Stejně jako návštěvní kniha bez databáze.
Petr Wudi
Profil
řádke 22: ne r+ ale a+
$soubor = fopen ('kniha.txt','a+'); //otevře soubor pro doplňování
Lubka
Profil *
a+ zapíše správu až na konec souboru a to nechci
DoubleThink
Profil *
Nemůžeš zapisovat na začátek souboru (aniž bys nepřepisoval to, co už tam je).
Petr Wudi
Profil
Lubka:
tak přidej do proměnné celek i zbytek souboru a to zapiš:
$celek="<p><strong>$jmeno</font></strong>$email_celek $web_celek<br>$zprava</p><hr>";
$soubor = fopen ('kniha.txt','r+');
$celek = $celek . fread("kniha.txt", filesize("kniha.txt")); // Změněno, díky DoubleThinkovi za upozornění
fwrite ($soubor, $celek);

Nebo při čtení souboru postupuj od konce na začátek.
DoubleThink
Profil *
Petr Wudi:
Plus v PHP nespojuje řetězce.
Keeehi
Profil
A nebo v jednom řádku. (místo řádků 21-24)
file_put_contents($soubor,"<p><strong>$jmeno</font></strong>$email_celek $web_celek<br>$zprava</p><hr>".file_get_contents($soubor));

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0