Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Redirect After Post a sesje., Argh...
Hazel
post 31.12.2007, 19:24:59
Post #1





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

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


Na początek kod.
  1. <?php
  2. if ($_POST)
  3. {
  4.  $_SESSION['zmienna'] = $_POST['input'];
  5.  header('Location: index.php');
  6. }
  7. print_r($_POST);
  8. print_r($_SESSION);
  9. unset($_SESSION['zmienna']);
  10. print_r($_SESSION);
  11. ?>
  12. <form method="post">
  13. <input type="text" name="input">
  14. <input type="submit">
  15. </form>

wynik to 3 puste tablice, to jest:
Kod
array(0) { } array(0) { } array(0) { }

Logika skryptu ma być taka. Jeśli jest $_POST, to znaczy że były przesyłane dane. Są mi one potrzebne (chcę wiedzieć nie tylko, że ktoś coś wpisał w polu tekstowym, ale także, co wpisał). A jak zastosuję Redirect After Post (jest to konieczne w moim skrypcie), czyli wyślę ten nagłówek, to $_POST jest już nieczytelne. Dlatego przed tym zamieniam to sobie na sesje i jest ok. W zmiennej sesji mam to, co ktoś wpisał w polu. No i zaczynają się schody. Następnie zachodzi konieczność wyświetlenia zmiennej sesji, a następnie unieważnienia jej, żeby przy odświeżeniu strony zmienna już nie istniała. I wszystko by działało, gdyby nie to, że jak unieważniam zmienną sesji, to w całym skrypcie. I nad wierszem unset($_SESSION['zmienna'], i pod nim. Według mojej logiki wynikiem powinno być:
Kod
array(0) { } array(1) { ["zmienna"] => string(5) "tekst"} array(0) { }

Ale tak niestety nie jest.
Jeśli nie operuję na zmiennych sesji, tylko na dowolnych innych, to wszystko jest ok - zmienna jest niewidoczna dopiero po wykonaniu unset(), natomiast przed normalnie ma wartość.
Może tablica $_SESSION ma jakieś specjalne właściwości i jej elementy należy kasować w inny sposób? sad.gif

edit: oczywiście, da się w prosty sposób tongue.gif
  1. <?php
  2. if ($_POST)
  3. {
  4.  $_SESSION['zmienna'] = $_POST['input'];
  5.  header('Location: index.php');
  6.  exit;
  7. }
  8. ?>


Ponieważ kod po nagłówku wykonuje się dalej, i unieważnia zmienną sesji niepotrzebnie...

Ten post edytował Hazel 31.12.2007, 20:46:01


--------------------
Go to the top of the page
+Quote Post

Posty w temacie
- Hazel   Redirect After Post a sesje.   31.12.2007, 19:24:59


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 Wersja Lo-Fi Aktualny czas: 24.07.2025 - 19:17