Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z sesjami
Forum PHP.pl > Forum > Przedszkole
Andriej20
Witam.
Mam mały problemik z sesjami w php, przeszukałem naście tematów o sesjach, przeczytałem kilka tutoriali i nadal nic mi nie działa sad.gif
Do wykonania mam coś takiego:

1 strona zawiera zwykły formularz wysyłający dane metodą POST.
  1. [...]
  2. <form method="post" action="2.php">
  3. Ilość: <input type="text" value="wartosc">
  4. [...]


2 strony ma wyświetlać te dane i pytać czy wszystko jest w porządku. Jeśli tak to dane mają zostać wysłane do stron numer 3.
  1. <?php
  2. [...]
  3. echo $wartosc;
  4. echo 'Czy wprowadzono poprawne dane?';
  5. [...]
  6. ?>

I tutaj nie wiem jak to przesłać do strony numer 3, czy użyć formularza tak jak w 1 pliku czy sesji czy czegoś innego.

3 strona ma za zadanie zapisanie danych do odpowiednich plików.

Z zapisem danych do plików oraz przesłaniem danych z formularza ze strony 1 do 2 nie ma problemu. Natomiast za chiny nie potrafię przesłać ich ze strony 2 do 3. Używałem sesji ale nie dało to efektu, być może w złych miejsach używałem tych sesji.
Będę wdzięczny za jakąkolwiek pomoc.

Pozdrawiam, Andriej20.
Hazel
W drugim pliku możesz użyć formularza jeszcze raz:
  1. <?php
  2. echo '<form action="3.php" method="post">';
  3. foreach ($_POST as $klucz => $wartosc)
  4. {
  5. echo '<input type="hidden" name="'.$klucz.'" value="'.$wartosc.'" /></form>';
  6. }
  7. ?>


Drugi sposób to sesje:
Plik 2:
  1. <?php
  2. foreach ($_POST as $klucz => $wartosc)
  3. {
  4. $_SESSION['klucz'] = $wartosc;
  5. // ta pętla zapisuje wszystkie zmienne tablicy formy jako zmienne sesji o tych
  6. samych kluczach i warto&#347;ciach
  7. }
  8. ?>


Plik 3:
  1. <?php
  2. foreach ($_SESSION as $wartosc)
  3. {
  4. echo $wartosc;
  5. // ten kod wyświetla wszystkie zmienne sesji jakie są w tablicy $_SESSION
  6. }
  7. ?>


I jeszcze coś - do Twojego kodu.
Nieprawidłowo odwołałeś się do zmiennej formy:
  1. <?php
  2. echo $wartosc;
  3. // prawidłowo powinno być: echo $_POST['nazwa'];
  4. // gdzie 'nazwa' okreslasz w atrybucie 'name' pola 'input' w pierwszym pliku
  5. ?>


Teoretycznie Twój kod nie powinien działać, nawet jeżeli w pliku php.ini masz wartość register_globals ustawioną na on (co w żadnym wypadku ze względów bezpieczeństwa powinno mieć miejsca).

Mam nadzieję, że to zrozumiałe.
Andriej20
Dzięki za błyskawiczną odpowiedź.
Mam nadzieję, że teraz wszystko będzie działać jak należy.

Co do błędu z odwołaniem do zmiennej, w kodzie mam wpisane $_POST['wartosc'], a posta pisałem z głowy i zapomniałem o tym. Ale dzięki, że Zauważyłeś błąd.

Pozdrawiam, Andriej20.
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.