Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z pustą tablica POST po wysłaniu formularza
Forum PHP.pl > Forum > Przedszkole
dusher
Witam!
Napisałem skrypt wykorzystujący prosty system szablonów (zamiana zmiennej z szablonu za pomocą str_replace()), który z założenia miał wyświetlać formularz tylko przy pierwszym wyświetleniu strony. Jednak po wysłaniu formularza tablica POST pozostaje pusta w związku z czym ponownie wyświetlany jest formularz. Być morze jest błąd gdzieś w skrypcie ale jeżeli jest gdzieś opisany lepszy sposób na rozwiązanie problemu to proszę o linka.
  1. <?php
  2.  
  3. if(empty($_POST)){
  4. $strContent.='
  5. <form action="" enctype="text/plain" method="POST">
  6. <div>
  7. Seria:<br/>
  8. <input type="text" maxlength="1" name="TckSrs"><font color="red">*</font><br/>
  9. Nr:<br/>
  10. Od:<input type="text" maxlength="6" name="TckNmb1"><font color="red">*</font><br/>
  11. Do:<input type="text" maxlength="6" name="TckNmb2"><font color="red">*</font><br/>
  12. <input type="submit" name="ok" value="OK">
  13. <input type="reset" value="Wyczyść">
  14. </div>
  15. </form>
  16. ';
  17. }
  18. else{
  19. $strContent.='test';
  20. }
  21.  
  22. $strTemplate=file_get_contents('../szablon.tpl');
  23. $strTemplate=str_replace('%CONTENT%',$strContent,$strTemplate);
  24. echo $strTemplate;
  25. ?>
Pawel_W
spróbuj bez tego enctype="text/plain"
MateuszS
a co bedzie jezeli zamiast

  1.  
  2. else {
  3. $strContent.='test';
  4. }


dasz

  1. else {
  2. echo $_POST["ok"];
  3. }
mortus
A czy ta zmienna $strContent została gdzieś zainicjowana, np. jako pusty łańcuch znaków, bo operator .= łączy łańcuchy znaków. Na początek dopisz przed if-em
  1. $strContent='';
Jeśli to jest cały Twój skrypt, to powinien Ci błąd, albo ostrzeżenie wywalać. Żeby to sprawdzić, to możesz też na początku dopisać
  1. ini_set('display_errors', 1);
  2. ini_set('error_reporting', E_ALL);

EDIT:
Możesz też przed if-em wydrukować tablicę $_POST tak:
  1. print_r($_POST);
Wtedy zobaczysz, czy zawiera ona jakieś dane.
dusher
Paweł_W: usunięcie enctype="text/plain" w zupełności wystarczyło, wielkie dzięki!

mortus: próbowałem z inicjalizacją strContent i nic się nie zmieniało, próbowałem też print_r($_POST) na samym początku skryptu (dlatego wiedziałem ze $_POST jest pusty:) )

MateuszScirka: echo $_POST["ok"] w miejsce $strContent.='test' zepsuło by ideę całego skryptu, który dopiero na końcu ma generować odpowiedź

Wszystkim dzięki za pomoc
pzdr
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.