Autor Zpráva
marCo
Profil
Ahojte , upravil jsem si diskusi z webu http://tvorba-webu.zdarek.com/php/diskuse.php je velmi jednoducha , ale pro moje potřeby stačí. Nevíte prosím vás jak napsat script , aby nejnovejší zprávy v diskusi se zobrazovali na začátku a nemuselo se rolovat na konec? díky za odpovědi!
joejoe
Profil *
To je vseobecny problem ukladani dat do textoveho souboru:
- je slozite cokoliv s tim udelat (treba seradit opacne)
- spatne se udrzuje konzistence dat
- vicenasobny pristup je problem


nestudoval jsem zdrojak do detailu, ale predpokladam, ze co jeden radek to jeden zaznam, takze bych zkusil misto:
<?include "data.inc"; ?>

dat neco takoveho

<?
$data = file('data.inc');
$data = array_reverse($data);
foreach($data as $line) {
echo $line;
}
?>

jinak doporucuju pouzit nejaky guestbook postaveny na databazi
marCo
Profil
Zkoušel jsem podle tvé rady předělat include , ale příspěvky byly různě přeházené , takže to zatím nechám s pomocí include. Asi nejlepší bude ten guestbook.
krteczek
Profil
marCo: http://krteczek.czweb.org/jpw/kniha-navstev/ je to už stare, nedlubal jsem do toho už dlouho ale je to funkční, stáhni, a nainstaluj, nepotřebuje databázi, ale je tam ten problém, že mužeš přijít o příspěvky. Kniha má jednpduchou administraci s možností smazání příspěvků, stránkování, s občasným promazáním spamu (jednou za uherský rok) jede už asi dva roky.
koukám na to, tam je zase spamu...:-( to budu muset vyčistit...
marCo
Profil
Díky za radu...možná si jí stáhnu
marCo
Profil
Tak jsem se poradil s jedním webmasterem a ten mi poradil použít příkaz fopen ('dokument.inc','r+');. Tímto příkazem jsme se sice dostali na začátek dokumentu pro zápis , čehož sme chtěli dosáhnout , ale zapisování příspěvků přemazávalo ostatní příspěvky. Poradte prosím , zasílám kus kódu.

<?
$jmeno = $_POST['jmeno'];
$zprava = $_POST['zprava'];
$zprava = substr($zprava, 0, 100000);
if ($zprava!="" and $jmeno!=""){
$celek="<p><strong>$jmeno</strong>:$zprava</p>";
$soubor = fopen ('data.inc','r+');
fwrite ($soubor, $celek );
fclose ($soubor);
}
?>
bukaj
Profil
marCo
<?
$jmeno = $_POST['jmeno'];
$zprava = $_POST['zprava'];
$zprava = substr($zprava, 0, 100000);
if ($zprava!="" and $jmeno!=""){
$celek="<p><strong>$jmeno</strong>:$zprava</p>";
file_put_contents('data.inc', $celek . file_get_contents('data.inc'));
}
?>
krteczek
Profil
marCo: no ta moje je trochu slozitejsi ale ma tam jak vypis takjak chces tak i stránkování,
jinak bych to delal tak ze si nactu obsah souboru s daty do pole pomoci file()

$file = 'nazevSouboru.php';
$data = file($file);
$nove = 'text nejaky co chces pridat';
//pridat na zacatek
array_unshift($data, $nove) ;
//ulozit zpatky
file_put_contents($file, implode(" ", $data));
marCo
Profil
a nejake reseni ktere by rozjelo PHP 4?
djlj
Profil
marCo
Fopen, fwrite, fclose. Je to mimochodem napsané i v manuálu k funkce file_put_contents, stačí si to jen přečíst.
krteczek
Profil
marCo: je tam i funkce (v tom manualu mezi komentáři) dělající přesně to co file_put_contents(); a file_get_contents(); doporučuji je přidat do scriptů/funkcí které používáš ;-)

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: