Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]problem z księgą gości
maniek30dg
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 14.09.2013

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


Witam, mam pytanie jak zrobić żeby wpisy oddzielała pozioma kreska i pod imię była data wpisu z mniejszą czcionką? jeszcze jest jeden poważny problem, po wpisaniu dłuższego tekstu i wysłaniu go wychodzi on poza wymiary strony, proszę o pomoc.
kod:
  1. <form action="index.php" method="post">
  2. <input name="imie" type="text" value="imie">
  3. <br><input name="email" type="text" value="e-mail">
  4. <br><input name="www" type="text" value="http://">
  5. <br><textarea name="wpis" rows="3" cols="30">wpis</textarea>
  6. <br><input type=submit value=" dodaj! ">
  7. </form>
  8.  
  9. <?
  10. $ksiega = "ksiega.txt";
  11.  
  12. $imie=$_POST["imie"];
  13. $email=$_POST["email"];
  14. $www=$_POST["www"];
  15. $wpis=$_POST["wpis"];
  16.  
  17.  
  18. if (strlen($wpis)>5) {
  19. $f=fopen($ksiega,"a");
  20. $rekord="`$imie`$email`$www`$wpis`";
  21. $rekord=ereg_replace(10," ",$rekord);
  22. $rekord=ereg_replace(13," ",$rekord);
  23. fputs($f,"$rekord\n"); fclose($f);
  24. }
  25.  
  26. $wpisy=file($ksiega);
  27. $wpisy=array_reverse($wpisy);
  28. $ile=count($wpisy);
  29. for ($i=0;$i<$ile;$i++) {
  30. $wpis = explode("`",$wpisy[$i]);
  31. echo "<p>$wpis[1] - $wpis[2] - $wpis[3]<br>$wpis[4]<p>";
  32. }
  33. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
BigPig
post
Post #2





Grupa: Zarejestrowani
Postów: 61
Pomógł: 9
Dołączył: 18.06.2013
Skąd: Białystok

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


Jednak ja głównie zajmuję się php, coś ogarniam w stylach, ale jednak nie mam teraz do tego głowy. Skupiłem się tylko na kodzie. Trochę było w nim bubli.

Po kolei:
  1. $ksiega = "ksiega.txt";
  2. $kreska = "__________________";
  3. $imie=$_POST["imie"];
  4. $email=$_POST["email"];
  5. $www=$_POST["www"];
  6. $wpis=$_POST["wpis"];
  7. $data = date("m.d.y");


Zapomniałeś zdefiniować zmiennej kreska, do której potem się odwołujesz.

  1. if (strlen($wpis)>5)
  2. {
  3. $f=fopen($ksiega,"a");
  4. $rekord="`$imie`$email`$www`$wpis`$data`";
  5. fputs($f,"$rekord\r\n"); fclose($f);
  6. }

1) Nie wiem po co korzystałeś z funkcji ereg_replace, pomijając fakt, że źle z niej korzystałeś.
Na stronie: http://www.php.net/manual/en/function.preg-replace.php
Jak zjedziesz w dół znajdziesz "Examples". Tam jest pokazane jak się powinno tej funkcji używać. Swoją drogą to w ogóle nie powinieneś jej używać (IMG:style_emoticons/default/smile.gif)
2) Do zmiennej "rekord" powinieneś dodać zmienną "data". Chodzi o to, że funkcja 'date' generuje ówczesną datę(czas). Jeśli chcesz zapisać, kiedy ktoś dodał wpis, musisz do rekordu dodać czas(czyli naszą zmienną "data"), kiedy ten skrypt został wykonany. Jeśli zmienną "data" dasz na końcu kodu(tak jak zrobiłeś), to gdy odczytasz plik, pojawi się ówczesna data.
3) Nie muszę wspominać o tym, że jeden warunek strlen w if'ie to trochę mało. Możnaby sprawdzić pozostałe zmienne np. czy w ogóle istnieją, potem możemy sprawdzić czy użytkownik faktycznie wpisał to co chcieliśmy. Od pierwszego zagadnienia jest funkcja 'isset', a drugą sprawą zajmiesz się jak nabierzesz trochę wprawy.
4) Jak zauważyłeś w fputs'ie dodałem \r\n zamiast \n. W systemie windows by w pliku dać nową linię, musimy użyć \r\n. (domyslam się, że jedziesz na windowsie).
5) Jeśli chodzi o html to pamiętaj domykaniu np.
zamiast <p>teskt<p> powinno być <p>tekst</p>

Patrzyłem i wszystko tam mniej więcej działa. Ze stylami już nie pomogę.

Suma:

  1.  
  2. <form method="post">
  3. <input name="imie" type="text" value="imie"/>
  4. <br><input name="email" type="text" value="e-mail"/>
  5. <br><input name="www" type="text" value="http://"/>
  6. <br><textarea name="wpis" rows="3" cols="30">wpis</textarea>
  7. <br><input type="submit" value=" dodaj! " name="submit" id="submit"/>
  8. </form>
  9.  
  10. <?php
  11.  
  12.  
  13. $ksiega = "ksiega.txt";
  14. $kreska = "__________________";
  15. $imie=$_POST["imie"];
  16. $email=$_POST["email"];
  17. $www=$_POST["www"];
  18. $wpis=$_POST["wpis"];
  19. $data = date("m.d.y");
  20.  
  21.  
  22. if (strlen($wpis)>5)
  23. {
  24. $f=fopen($ksiega,"a");
  25. $rekord="`$imie`$email`$www`$wpis`$data`"; // wytlumacz czemu tu wpisujemy
  26. fputs($f,"$rekord\r\n"); fclose($f); // wspomnij o \r\n
  27. }
  28.  
  29.  
  30. $wpisy=file($ksiega);
  31. $wpisy=array_reverse($wpisy);;
  32.  
  33. $ile=count($wpisy);
  34.  
  35. for ($i=0;$i<$ile;$i++)
  36. {
  37. $wpis = explode("`",$wpisy[$i]);
  38. echo "<p>$wpis[1] - $wpis[5] - $wpis[2] - $wpis[3]<br>$wpis[4]</p> $kreska";
  39. }
  40.  
  41. ?>


Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 14.10.2025 - 07:13