Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Utrata zmiennej
Forum PHP.pl > Forum > Przedszkole
adrianozo
Witam wszystkich,

Mam pewien problem, otóż jeśli wyśle formularz za który odpowiada metoda pages() to $nazwa jest tracona, a potrzebna mi jest do zapytania i nie mam pomysłu dlaczego:
  1. <?php
  2. public function page() {
  3. if($_SESSION['login'] != true) {
  4. header('Location: '.rootpatch);
  5. exit();
  6. }
  7. $this->model->smarty->assign("siteTitle", "Podstrony", true);
  8. $help = new classHelpers();
  9. $post = $help->cleanArray($_POST);
  10. $sql = new classMysql();
  11. $this->setTpl('Page');
  12. $strona = $sql->selectAsoc("SELECT `nazwa` FROM `framework_pages`");
  13. $this->model->smarty->assign("dolisty", $strona, true);
  14. }
  15. public function pages() {
  16. if($_SESSION['login'] != true) {
  17. header('Location: '.rootpatch);
  18. exit();
  19. }
  20. $this->model->smarty->assign("siteTitle", "Podstrony", true);
  21. $help = new classHelpers();
  22. $post = $help->cleanArray($_POST);
  23. $sql = new classMysql();
  24. $this->setTpl('Pages');
  25. $nazwa = $post['nazwa'];
  26. //traci $nazwa
  27. $strona = $sql->selectAsoc("SELECT `nazwa`, `tresc_pl`, `tresc_en` FROM `framework_pages` WHERE `nazwa` = '$nazwa'");
  28. $this->model->smarty->assign("dolisty", $strona, true);
  29. if((isset($post['edytuj'])) && (!empty($post['edytuj']))) {
  30. $tresc_pl = $post['tresc_pl'];
  31. $tresc_en = $post['tresc_en'];
  32. $pages = $sql->insert("UPDATE `framework_pages` SET `tresc_pl` = '$tresc_pl', `tresc_en` = '$tresc_en' WHERE `nazwa` = '$nazwa'");
  33. header('Location: '.rootpatch.'main/tresc-podstrony');
  34. }
  35. }
  36. ?>
markonix
A nie traci się przypadkiem dlatego, że następuje tam przekierowanie (tym samym traci wszystko co jest poza sesją i zmiennymi get)?
adrianozo
Już to sprawdzałem i niestety nie to jest powodem utraty zmiennej

Rozwiązane: wystarczyło w formularzu dodać input hidden
phpion
Właśnie to jest powodem utraty zmiennej. Zmienne nie są dostępne pomiędzy kolejnymi żądanami, chyba że je gdzieś zapiszesz (sesja, plik, baza, ukryte pole itd.).
markonix
Ukryte pola (POST) są przesyłane w momencie przekierowania za pomocą header - location?
To ja chyba o czymś nie wiem?
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.