Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Guestbook Script
Forum PHP.pl > Forum > Przedszkole
Endrjub
Witam
Mam taki skrypcik:
  1. <?php
  2. echo &#092;"<form method=\"POST\" action=\"txt.php\">
  3. <b>Imie</b><input type=&#092;"text\" name=\"imie\" value=\"\" size=\"20%\"><br>
  4. <b>Nazwisko</b><input type=&#092;"text\" name=\"nazwisko\" value=\"\" size=\"20%\"><br>
  5. <input type=&#092;"submit\" name=\"send\" value=\"wyslij\"><input type=\"submit\" name=\"show\" value=\"pokaz\">\";
  6.  
  7. if($_POST['imie'] == &#092;"\" || $_POST['nazwisko'] == \"\"){
  8. echo &#092;"<br>\";
  9. echo &#092;"<br>\";
  10.  
  11. $filesize = filesize(&#092;"aaa.txt\"); 
  12. $file = fopen(&#092;"aaa.txt\",\"r\");
  13. flock($file, 1);
  14. @ $qqq = fread($file,$filesize);
  15. flock($file, 3);
  16. fclose($file);
  17. echo &#092;"$qqq\";
  18.  
  19. }
  20.  
  21. if(isset($_POST['send'])){
  22. if($_POST['send']=='wyslij'){
  23. $filesize = filesize(&#092;"aaa.txt\"); 
  24. $file = fopen(&#092;"aaa.txt\",\"r\");
  25. flock($file, 1);
  26. @ $content = fread($file,$filesize);
  27. flock($file, 3);
  28. fclose($file);
  29.  
  30.  
  31. $filesize = filesize(&#092;"aaa.txt\"); 
  32. $file = fopen(&#092;"aaa.txt\",\"w\");
  33. flock($file, 2);
  34. $content1=&#092;"<TABLE BORDER=\"0\" CELLPADDING=\"1\" CELLSPACING=\"0\" bgcolor=EEEEEE width=\"500\">
  35. <TR><TD width=&#092;"30%\"><B>Imie:</B></TD><TD>\".$_POST['imie'].\"</TD></TR>
  36. <TR><TD><B>Nazwisko:</B></TD><TD>&#092;".$_POST['nazwisko'].\"</TD></TR>
  37. <TR><TD><br><hr></TD></TR></TABLE>&#092;";
  38.  
  39. fwrite($file,&#092;"$content1 n $content\");
  40. flock($file, 3);
  41. fclose($file);
  42.  
  43. }
  44. }
  45.  
  46. elseif(isset($_POST['show'])){
  47. if($_POST['show']=='pokaz'){
  48.  
  49. $filesize = filesize(&#092;"aaa.txt\"); 
  50. $file = fopen(&#092;"aaa.txt\",\"r\");
  51. flock($file, 1);
  52. $content = fread($file,$filesize);
  53. flock($file, 3);
  54. fclose($file);
  55. echo &#092;"<br>\";
  56. echo &#092;"$content\";
  57. }
  58. }
  59. ?>

I chodzi mi o to, zeby przy odpaleniu skryptu pojawily sie od razu zapisane wpisy.
I niby tak jest, ale jak dodam kolejny wpis to wszystko mi sie dubluje.
Dodatkowo nie wiem dlaczego wyrzuca mi taki komunikat:
Notice: Undefined index: imie in c:\program files\apache group\apache2\htdocs\endrju\txt\txt.php on line 7
Jak sobie z tym poradzic?questionmark.gif

Z gory dzieki za odpowiedz.
Bartech
Z góry piszę że odpowiedź jest tylko połowiczna, nie znalazłem powiem dokładnej przyczyny dlaczego dublują się dane, ale wiem jak tego uniknąć. Otóż w zwyczajowym programowaniu mało kto robi w formularzu podwójny submit, nawet kiedy zastosowałeś dwojakie nazwy to doszło do jakiegoś przekłamania i do podwojenia odczytu. Zrobiłem prosty test, zastępiłem twój przycisk pokaz, linkiem do tego samego celu:

Cytat
<a href=\"txt.php?show=pokaz\">pokaz</a>


I efekt to pojedyńcze wyświetlenie bazy danych. Wniosek z tego jest następujący, należy poszukiwać błądu w nazwach zmiennych, prawdopodobnie jakaś nazwa się dubluje bądź logicznym dla php jest podwojenie wyświetlenia ponieważ formularz nie może być składany z dwóch różnych submitów!!!!

Efektem czego proponuję zastąpić Twój formularz tym:
  1. <?php
  2. echo &#092;"<form method=\"POST\" action=\"txt.php\">
  3. <b>Imie</b><input type=&#092;"text\" name=\"imie\" value=\"\" size=\"20%\"><br>
  4. <b>Nazwisko</b><input type=&#092;"text\" name=\"nazwisko\" value=\"\" size=\"20%\"><br>
  5. <input type=&#092;"submit\" name=\"send\" value=\"wyslij\"><input type=\"submit\" name=\"show\" value=\"pokaz\">
  6. <a href=&#092;"txt.php?show=pokaz\">pokaz</a>
  7. &#092;";
  8. ?>


Lub w bardziej eleganckiej wersji (gdzie przycisk pokaż to też formularz ale osobny):
  1. <?php
  2. echo &#092;"<form method=\"POST\" action=\"txt.php\">
  3. <b>Imie</b><input type=&#092;"text\" name=\"imie\" value=\"\" size=\"20%\"><br>
  4. <b>Nazwisko</b><input type=&#092;"text\" name=\"nazwisko\" value=\"\" size=\"20%\"><br>
  5. <input type=&#092;"submit\" name=\"send\" value=\"wyslij\">
  6. <form method=&#092;"POST\" action=\"txt.php?name=show&value=pokaz\">
  7. <input type=&#092;"submit\" name=\"xxx\" value=\"pokaz\">
  8. &#092;";
  9. ?>


W drugim przypadku zwróć uwagę na link docelowy formularza - to on jest kluczek całej zabawy.

Mam nadzieję że pomogłem.
Endrjub
Wielkie dzieki za odpowiedz, bardzo mi sie ona przydala.
Pozdrawiam
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.