Skrypt komentarzy - odczyt .txt od najnowszych

witam, mam taki skrypt:

| TREŚĆ: |
| | |
| |

<?php // nazwa pliku z trescia komentarzy $nazwa = ‘komentarze.txt’; // zapis jesli co wyslano z formularza if($_POST[‘tytul’] & $_POST[‘tresc’] & $_POST[‘autor’]) { $fp=fopen($nazwa, ‘a’); flock($fp, 2); fwrite($fp,$_POST[‘tytul’].’||’.strip_tags(strtr($_POST[‘tresc’],’\n’,’ ‘)).’||’.$_POST[‘autor’].’\n’); flock($fp, 3); fclose($fp); } // jezeli juz istnieja jakies komentarze if(is_file($nazwa)) { $linia = explode(’\n’,file_get_contents($nazwa)); $ilosc = count($linia); for($i=0; $i<$ilosc; $i–) { $komentarz = explode(’||’,$linia[$i]); echo ‘’.$komentarz[0].’’.$komentarz[1].’’.$komentarz[2].’’; } } else echo 'Jeszcze nie ma zadnych komentarzy. Badz pierwszy i skomentuj! '; ?> [/code] wszystko działa, jednak chciałbym, by nowe komentarze wyświetlały się u samej góry. podejrzewam, ze odpowiada temu linijka:

[code]for($i=0; $i<$ilosc; $i++)

jednak gdy zamieniam $i++ na $i-- strona się zawiesza. i ładuje wiele razy

gdy dam tak:

for($i=$ilosc; $i>=$ilosc-6; $i–)

wyświetla się 5 ostatnich komentarzy.(z błędem) dodaje przed pierwszym komentarze

wielokrotnie.

ale chciałbym wszystkie komentarze wyświetlać z tym, że od najnowszych (u góry)

pozdrawiam

for($i=$ilosc-2; $i>=0; $i--)

Po co przy zapisie strstr?? Przed zapisem do pliku koniecznie przefiltruj dane. Ale czy nie lepszym (wygodniejszym) rozwiązaniem będzie coś takiego. Przy zapisie podmień na tą linijkę

fwrite($fp,$_POST['tytul'].'||'.strip_tags(str_replace("\r\n"," ",$_POST['tresc'])).'||'.$_POST['autor']."\n");

i odczyt pliku

$plik = file($nazwa);

	if(count($plik) > 0)

	{

		for($i=count($plik)-1;$i>=0;$i--)

		{

			$komentarz = explode('||',$plik[$i]);

			echo '
'.$komentarz[0].'
'.$komentarz[1].'
'.$komentarz[2].'
';

		}

	}

	else

		echo 'Jeszcze nie ma zadnych komentarzy. Badz pierwszy i skomentuj!

';

[/code]

no dobrze, ale gdzie mam to wkleić? albo zamiast czego? bo wkleiłem przed

i dodają się dalej komentarze, bez wpływu captcha.

a jak dodam zamiast:

<?php

// nazwa pliku z trescia komentarzy

$nazwa = 'komentarze.txt';

// zapis jesli co wyslano z formularza

if($_POST['tytul'] & $_POST['tresc'] & $_POST['autor'])

{

$fp=fopen($nazwa, 'a');

flock($fp, 2);

fwrite($fp,$_POST['tytul'].'||'.strip_tags(strtr($_POST['tresc'],'\n',' ')).'||'.$_POST['autor'].'\n');

flock($fp, 3);

fclose($fp);

}

// jezeli juz istnieja jakies komentarze

if(is_file($nazwa))

{

$linia = explode('\n',file_get_contents($nazwa));

$ilosc = count($linia);


for($i=0; $i<$ilosc; $i--)


{

$komentarz = explode('||',$linia[$i]);

echo '
'.$komentarz[0].'
'.$komentarz[1].'
'.$komentarz[2].'
';

}

}

else

echo 'Jeszcze nie ma zadnych komentarzy. Badz pierwszy i skomentuj!

';


?>[/code]

to komentarze się nie wyświetlają, ani nie dodają w ogóle.

gdy dam na sam początek, przed to komentarze i tak się dodają, mimo wyświetlenia komunikatu, że nie został dodany.

<?php();    $status = "";

dzięki za cierpliwość. działa!

Proszę o podanie kompletnego skryptu.

20 lat później

<?php echo "Hello World!"; ?>