Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]SKRYPT KOMENTARZY
Forum PHP.pl > Forum > Przedszkole
Randallmaster
Witam,

Piszę z prośbą o przerobienie mojego kodu bądź pomocy w zmienieniu tego skryptu... Każdy komentarz pokazuje się jeden pod drugim natomiast ja chciałbym aby komentarze to pokazywały się jeden na drugim czyli ten który dodaje szedł na początek... Oraz nie wiem jak zrobić aby przy dużej ilości komentarzy np.6 tworzyła się nowa podstrona. Szukałem w google przerabiałem ale nic za bardzo mi nie wychodzi.

Bardzo zależy mi na przerobieniu tego kodu gdyż jest on prosty i przejrzysty, dlatego też proszę w wyrozumiałość..


  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <?php
  3. if (isset($_POST['submit'])) {
  4. if (isset($_POST['message'])) {
  5. if (isset($_COOKIE['dodano'])) {
  6. echo "Już dodałeś komentarz! Spróbuj za chwilę.<br>";
  7. } else {
  8. $message = str_replace('www','*',$_POST['message']);
  9. $message = ereg_replace("rnrn", "n<P>", $message);
  10. $date=date("H:i d.m.Y");
  11. $message = "<B>".$_POST['name']."</B><BR>".$date."<P>".$message."<BR><HR>";
  12. $fp = fopen (basename($_SERVER['PHP_SELF']) . ".comment", "a");
  13. fwrite ($fp, $message);
  14. fclose ($fp);
  15. setcookie ("dodano", "{$_POST['name']}", time()+300);
  16. }
  17. }
  18. }
  19. @readfile(basename(($_SERVER['PHP_SELF'] . ".comment")));
  20. ?>
  21. <html>
  22. <head>
  23. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  24. <title>Nick</title>
  25. </head>
  26.  
  27. <body>
  28. <form action="" method=post>
  29. <input type=hidden name=submit value=1>
  30. Nick:<br>
  31. <input type=text name=name><br>
  32. Wpisz komentarz:<br>
  33. <textarea name=message rows="5" cols="65"></textarea><br>
  34. <input type="image" src="smile.gif" >wyślij komentarz<alt="Wyślij komentarz"><br>
  35. </form>
  36.  
  37. </body>
  38.  
  39. </html>
Fifi209
Jeżeli chodzi o kolejność komentarzy to tak jak je wyświetlasz to je przesortuj w odwrotnej kolejności znajdziesz odpowiednie funkcje: array
Co do drugiego pytania: fraza google --> stronnicowanie php/mysql
Randallmaster
Cytat(fifi209 @ 18.11.2009, 15:12:06 ) *
Jeżeli chodzi o kolejność komentarzy to tak jak je wyświetlasz to je przesortuj w odwrotnej kolejności znajdziesz odpowiednie funkcje: array



Angielskiego aż tak dobrze nie znam... Przy zapisie komentarza do pliku zapisuje on się na końcu, dlatego też myślałem aby zapisywany komentarz zapisywał się na początku całęgo dokumentu... znalazłem takie coś:





Często zadajecie pytanie jak zrobić aby dane dopisane do pliku byly na początku a nie na końcu?
Poniżej przykład takiego skryptu.

PRZYKŁAD
  1. <?php
  2.  
  3. // zmienna $dane, która będzie zapisana
  4. // może także pochodzić z formularza np. $dane = $_POST['dane'];
  5. $dane="$jakas_zmienna\n";
  6.  
  7. // przypisanie zmniennej $file nazwy pliku
  8. $file="baza.txt";
  9.  
  10. // uchwyt pliku, otwarcie do odczytu i dopisania
  11. $fp=fopen("$file", "r+");
  12.  
  13. // dodanie do zmiennej dane poprzedniej zawartości pliku
  14. $dane=$dane.fread($fp, filesize($file));
  15.  
  16. // ustawienie kursora na początku pliku
  17. rewind($fp);
  18.  
  19. // blokada pliku do zapisu
  20. flock($fp, 2);
  21.  
  22. // zapisanie danych do pliku
  23. fwrite($fp, $dane);
  24.  
  25. // odblokowanie pliku
  26. flock($fp, 3);
  27.  
  28. // zamknięcie pliku
  29. fclose($fp);
  30. ?>






Niestety nie wiem w którym momencie mam w swoim kodzie to wkleic i gdzie mam to wkleic...
Blame
W takim razie nic nie musisz zmieniać. Wystarczy, że w skrypcie, który nam podałeś zmienisz tryb(ang. mode) dla funkcji fopen. Poszukaj w manualu takiego, który będzie umieszczał kursor na początku a nie na końcu pliku.
Randallmaster
Cytat(Blame @ 18.11.2009, 16:04:42 ) *
W takim razie nic nie musisz zmieniać. Wystarczy, że w skrypcie, który nam podałeś zmienisz tryb(ang. mode) dla funkcji fopen. Poszukaj w manualu takiego, który będzie umieszczał kursor na początku a nie na końcu pliku.



Dobrze zmieniłem typ ale nic to niestety nie dało zamiast pojawienia sie koementarza nad tym drugi ten poprzedni poprostu sie usunął przerobiłem cały tekst neistety nie wiem co zrobić z tym bo to ostatnia rzecz jakiej nie przerobilem z tamtego skryptu na moj...

// dodanie do zmiennej dane poprzedniej zawartości pliku
$dane=$dane.fread($fp, filesize($file));

Poradziłem sobie zadanie z kolejnością wyświetlania komentarzy wystarczyło dodać parę rzeczy sama zmiana typu fope nie wystarczyła...
Poprawny kod wygląda tak:

  1. <?php
  2. if (isset($_POST['submit'])) {
  3. if (isset($_POST['message'])) {
  4. if (isset($_COOKIE['dodano'])) {
  5. echo "Już dodałeś komentarz! Spróbuj za chwilę.<br>";
  6. } else {
  7. $message = str_replace('www','*',$_POST['message']);
  8. $message = ereg_replace("rnrn", "n<P>", $message);
  9. $date=date("H:i d.m.Y");
  10. $message = "<B>".$_POST['name']."</B><BR>".$date."<P>".$message."<BR><HR>";
  11. $fp = fopen (basename($_SERVER['PHP_SELF']) . ".comment", "r+");
  12. $file="komentarze.php.comment";
  13. $message=$message.fread($fp,filesize($file));
  14. rewind($fp);
  15. flock($fp, 2);
  16. fwrite ($fp, $message);
  17. flock($fp, 3);
  18. fclose ($fp);
  19. setcookie ("dodano", "{$_POST['name']}", time()+10);
  20. }
  21. }
  22. }
  23. @readfile(basename(($_SERVER['PHP_SELF'] . ".comment")));
  24. ?>


Z tamtego szablonu poza zmiana typu na "r+" trzeba było dodać:

  1. $message=$message.fread($fp,filesize($file));


Dziękuję osobą które mnie pokierowały....


Teraz Proszę o pomoc ze stronnicowaniem z tekstu bo niestety teraz z tym nie mogę sobie poradzić ;(
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.