Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z sesjami, Przesyłanie danych z formularza
Andriej20
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 8.07.2007

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


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 (IMG:http://forum.php.pl/style_emoticons/default/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.
Go to the top of the page
+Quote Post
Hazel
post
Post #2





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

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


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.

Ten post edytował Hazel 28.08.2007, 20:17:09
Go to the top of the page
+Quote Post
Andriej20
post
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 8.07.2007

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


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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.09.2025 - 15:14