Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Księga gości, Chcę, aby najnowszy wpis był na górze
-Olme-
post
Post #1





Goście







Mam już napisaną księgę gości.

Formularz wpisu (nie jest potrzebny w rozwiązaniu problemu, ale dołączam go, może ktoś skorzysta z niego):
  1. <LINK href="../skrypt/menupluspage.css" type=text/css rel=stylesheet>
  2. <META content="text/html; charset=iso-8859-2" http-equiv=Content-Type>
  3. <TITLE> Księga gosci </TITLE>
  4.  
  5. </HEAD>
  6.  
  7. <BODY BACKGROUND=../grafika/dk.jpg>
  8.  
  9. <TABLE BACKGROUND=../grafika/dk.jpg WIDTH=702 BORDER=0><TBODY>
  10. <TR>
  11.  
  12. <TD COLSPAN=2 ALIGN=center CLASS=pkpbig>
  13. Tutaj możesz wpisać się do mojej księgi gosci!
  14. </TD>
  15. </TR>
  16.  
  17. <TR>
  18.  
  19. <TD COLSPAN=2 HEIGHT=25>
  20. </TD>
  21. </TR>
  22.  
  23.  
  24. <TR CLASS=news>
  25.  
  26. <FORM METHOD="post" action="wpis.php">
  27.  
  28.  
  29. <TD WIDTH=200>
  30. Twoje imię lub pseudonim:
  31. </TD>
  32. <TD WIDTH=502>
  33. <INPUT TYPE="text" name="imie">
  34. </TD>
  35. </TR>
  36.  
  37. <TR CLASS=news>
  38. <TD>
  39. Adres e-mail:
  40. </TD>
  41. <TD>
  42.  
  43. <INPUT SIZE=30 TYPE="text" name="email">
  44. </TD>
  45.  
  46. </TR>
  47.  
  48. <TR CLASS=news>
  49. <TD>
  50. Strona www:
  51. </TD>
  52. <TD>
  53.  
  54. <INPUT SIZE=30 TYPE="text" name="www" VALUE="http://">
  55. </TD>
  56.  
  57. </TR>
  58.  
  59.  
  60. <TR CLASS=news>
  61.  
  62. <TD COLSPAN=2>
  63. Twój wpis:
  64. </TD>
  65. </TR>
  66.  
  67. <TR>
  68. <TD COLSPAN=2>
  69. <TEXTAREA NAME="wpis" ROWS="2" COLS="29" WRAP="on">
  70.  
  71. &nbsp&nbsp&nbsp
  72.  
  73. <INPUT type="submit" VALUE="Dodaj wpis do księgi">
  74. </FORM>
  75. </TD></TR>
  76. </BODY>
  77. </HTML>


plik zapisujący:

  1. <HTML>
  2. <HEAD>
  3. <meta http-equiv="refresh" content="1; URL=pokazwpisy.php">
  4. <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
  5. <TITLE> Wpisy do księgi </TITLE>
  6. </HEAD>
  7. <BODY BACKGROUND=../grafika/dk.jpg>
  8. <?php
  9. $date=date("d.m.Y, H:i:s");
  10. $wpis=$_POST["wpis"];
  11. $imie=$_POST["imie"];
  12. $email=$_POST["email"];
  13. $www=$_POST["www"];
  14.  
  15. $plik=fopen("wpis.txt", "a");
  16. fputs($plik, "<TR><TD WIDTH=200 HEIGHT=25>Data wpisu:</TD><TD HEIGHT=25 WIDTH=602> $date</TD></TR><TR><TD HEIGHT=25>Twoje imię lub pseudonim:</TD><TD HEIGHT=25> $imie</TD></TR>
  17. <TR><TD HEIGHT=25>Adres e-mail:</TD><TD HEIGHT=25><A CLASS=news HREF=mailto:$email>$email</A></TD></TR>
  18. <TR><TD HEIGHT=25>Strona www:</TD><TD HEIGHT=25><A CLASS=news HREF=$www>$www</A></TD></TR>
  19. <TR><TD HEIGHT=29>Tresć wpisu:</TD><TD HEIGHT=29>$wpis</TD></TR>
  20. <TR><TD COLSPAN=2 HEIGHT=1 WIDTH=700 BACKGROUND=grafika/ddk.jpg ALIGN=center>--------------------------------------------</TD></TR>
  21. ");
  22. fclose($plik);
  23.  
  24. ?>
  25.  
  26. <BR><BR><BR>
  27. Wpis został dodany! Zaczekaj chwilę, zabieram Cię do księgi!
  28.  
  29.  
  30. </BODY>
  31. </HTML>


Ja to widzę tak, że trzeba by jeszcze stworzyć drugi plik do przechowywania postów na chwilę. Po dodaniu posta będzie on wstawiany do pliku wpis.txt, który będzie wtedy wyczyszczony, bo jego zawartość zostanie przekopiowana do pliku wpis2.txt, który przed tą operacją też będzie wyczyszczony.

Próbowałem też wstawić
  1. <? include('wpis2.txt'); ?>
pod skryptem zapisującym dane z formularza, ale coś mi się zawiesiło.

Ma ktoś z Was pomysł na rozwiązanie tego problemu?
Go to the top of the page
+Quote Post
Pigula
post
Post #2





Grupa: Zarejestrowani
Postów: 446
Pomógł: 0
Dołączył: 5.03.2005
Skąd: Lublin

Ostrzeżenie: (0%)
-----


tak troche nie rozumiem chyba problemu ale wydaje mi sie ze Ci chodzi zeby wpisy byly wyswietlane od najnowszego do najstarszego?!? a wiec wczytujesz plik do tablicy za pomoca file i wyswietlasz w petli od ostatniego elementu do zerowego. mam nadzieje ze o to Ci chodzilo nie musisz miec zadnego drugiego pliku. aha poczytaj sobie jeszcze o flock przy zapisywaniu i odczytywaniu
Go to the top of the page
+Quote Post
-Olme-
post
Post #3





Goście







Niestety, nadal nie wiem jak się do tego zabrać. Przejrzenie w manualu funkcji file" title="Zobacz w manualu php" target="_manual nie pomogło mi. O jakie pętle Ci chodziło?
Go to the top of the page
+Quote Post
strife
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

Ostrzeżenie: (0%)
-----


Cytat(Olme @ 2005-08-26 19:14:03)
Niestety, nadal nie wiem jak się do tego zabrać. Przejrzenie w manualu funkcji file" title="Zobacz w manualu php" target="_manual nie pomogło mi. O jakie pętle Ci chodziło?

Wczytujesz do tablicy file" title="Zobacz w manualu php" target="_manual, potem odwracasz tablicę aby było od najnowszego do najstarszego array_reverse" title="Zobacz w manualu php" target="_manual, i do pętli przy wyświetlaniu foreach" title="Zobacz w manualu php" target="_manual.

btw. też nie wiem czy dobrze zrozumiałem tongue.gif


--------------------
Go to the top of the page
+Quote Post
-Olme-
post
Post #5





Goście







Dzięki! Wypróbuje to.


Tak, dobrze zrozumieliście, przecież napisałem w temacie: "Księga gości, Chcę, aby najnowszy wpis był na górze".
Czyli od najnowszych do najstarszych.

--
Aha, czyli w takim razie mogę sobie zrobić coś takiego, że użytkownik będzie mógł wybrać sposób prezentacji wpisów od najstarszych do najnowszych lub na odwrót.
Go to the top of the page
+Quote Post
ActivePlayer
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

Ostrzeżenie: (0%)
-----


Dodatkowo, aby zaoszczędzic miejsce w pliku, mozesz zapisac kolejne wpisy w postaci
Kod
osoba||data||wpis||costam_jeszcze


a potem, kiedy odczytujesz funkcją file, wykonać explode()" title="Zobacz w manualu php" target="_manual i wstawic wartosci w kod html. zauwaz ze w Twoim pliku bardzo duzo miejsca zajmuje kod html (mowie o pliku w ktorym zapisujesz wpisy). Dodatkowo, to rozwiązanie nie pozwala Ci na łatwą zmianę wyglądu całosci... nie mozesz zmienic wyswietlania, nie modyfikując wpisów...
Go to the top of the page
+Quote Post
NuLL
post
Post #7





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

Ostrzeżenie: (0%)
-----


http://forum.php.pl/index.php?showtopic=32251&hl=

Może się przydać - konwersja newsów na księgę to nic trudnego smile.gif


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
Morek
post
Post #8





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 28.05.2005

Ostrzeżenie: (0%)
-----


Też kiedyś miałem ten problem wystarczy dobrze poszukać na forum. Bo ja tu znalazłem właśnie odpowiedź.

No ale niech będzie, zrób tak najpier zapisz(przypisz) posta do zmiennej, potem odczytaj całą zawartość z pliku i ją skasuj. Teraz do czystego pliku zapisujesz zmienną z nowym newsem a potem to co było wcześniej w pliku.

I już możesz w stronie z KG dać zawartość pliku z "include".

Poniżej masz przykład z mojej KG.

  1. <?php
  2. $file="ogloszenia.txt";
  3. $nowy_news = "<tr><td bgcolor=lightgray align=left width=500 valign=top>
  4. <font class="tekst">
  5. <b>Kto: - </b>$nick | <b>GG:</b> - $tel | <b>Kontakt:</b> - <a href="mailto:$mail">$mail</a><BR>
  6. </td></tr>
  7. <tr><td align=left width=500 valign=top>
  8. <font class="tekst"><div align=justify>
  9. <BR>$tekst<br><hr size=1 color=black><BR>
  10. </td></tr>
  11.  
  12. ";
  13.  
  14. //odczytujemy zawartosc pliku
  15. $fp=fopen("$file", "r");
  16. flock($fp, 1);
  17. $file_contents = fread($fp, filesize($file));
  18. flock($fp, 3);
  19. fclose($fp);
  20.  
  21. //zapisujemy nowego news-a i wczesniej odczytane dane do pliku
  22. $fp=fopen("$file", "w");
  23. flock($fp, 2);
  24. fwrite($fp, "$nowy_newsn$file_contents");
  25. flock($fp, 3);
  26. fclose($fp);
  27. echo("<center><b>Wpis dodany!</b></center><BR>");
  28. }
  29. }
  30.  
  31. ?>
Go to the top of the page
+Quote Post
-Olme-
post
Post #9





Goście







Morek, wielkie dzięki!

Działa!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 18:50