Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] problem z zachowywaniem zmiennych po przeladowaniu strony i ich późniejszym skasowaniem
Gonzo44
post 5.09.2007, 11:02:27
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 19.07.2007

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


Witam

Mam następujący problem:
Na stronie znajduje się formularz z którego dane pobieram POSTem, obrabiam i wyświetlam poniżej formularza celem sprawdzenia przez użytkownika poprawności obróbki przez skrypt. Jeżeli wszystko jest OK, użytkownik klika zapisz i dane powinny zostać wprowadzone do bazy SQL.
Problemem jest to, że po drugim użyciu $_POST, skasowaniu ulegają zmienne pobrane przy pierwszym użyciu i nie można ich wykorzystać przy zapisie do bazy SQL.
Całość skryptu znajduje się w jednym pliku php.
Jak można przechowywać zmienne globalnie, aby były dostępne cały czas?

Pzdr
Gonzo44

Ten post edytował Gonzo44 7.09.2007, 11:57:11
Go to the top of the page
+Quote Post
cornholio666
post 5.09.2007, 11:08:59
Post #2





Grupa: Zarejestrowani
Postów: 472
Pomógł: 8
Dołączył: 14.03.2004
Skąd: Rzeszów

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


1.pola ukryte
2. sesje
3. ciasteczka

albo poprostu jak dane sa poprawne to odrazu zapisz, po co user ma klikać zapisz ?


--------------------
I need TP for my bunghole!!!

Mój nowy przyjaciel - tytanowa płytka na stałe
------------------------------------------------------
AEGEE, kwiaciarnia rzeszów , notariusz rzeszów, zakład krawiecki rzeszów, paweł jakubowicz
Go to the top of the page
+Quote Post
Gonzo44
post 5.09.2007, 11:58:05
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 19.07.2007

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


Specyfika obrabianych danych wymaga ludzkiej kontroli nad nimi.
Konieczne jest zagwarantowanie aby nie doszło do żadnych przekłamań, czyli dokładnie te dane które widzi użytkownik zostają zapisane. Która z tych metod będzie w takim przypadku najlepsza?
Go to the top of the page
+Quote Post
Grzyw
post 5.09.2007, 12:29:08
Post #4





Grupa: Zarejestrowani
Postów: 561
Pomógł: 75
Dołączył: 19.08.2004
Skąd: Wrocław

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


Rozwiązałbym to poprzez sesje.
Skoro ma user kontrolować te wartości, wrzucaj je z sesji do pól, następnie po przesłaniu formularza aktualizuj ich wartości w sesji.


--------------------
Idąc po czyichś śladach, nie zajdziesz ani kroku dalej...
Go to the top of the page
+Quote Post
Gonzo44
post 5.09.2007, 12:38:45
Post #5





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 19.07.2007

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


ok, dzieki. Biorę się za czytanie o sesjach.
Go to the top of the page
+Quote Post
markotny
post 5.09.2007, 19:54:54
Post #6





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 2.09.2007
Skąd: Wielkopolska

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


Nie ma co czytać. smile.gif
$_SESSION['nazwa zmiennej']=$_POST['zmiena z formularza'];

Wszystko smile.gif


--------------------
Początki są zawsze trudne, ale to nie znaczy że potem musi być łatwiej.
Go to the top of the page
+Quote Post
Gonzo44
post 7.09.2007, 11:54:55
Post #7





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 19.07.2007

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


Co by nie mnożyć wątków pytam dalej.
Zmienne w sesji już mi ładnie zapamiętuje, ale nadchodzi moment kiedy trzeba je skasować by zrobić miejsce na nowe dane.
Strona tak jak poprzednio:
formularz
przycisk "sprawdz"
wyświetlenie obrobionych danych
przycisk "zapisz"

I teraz chciałbym aby po kliknięciu zapisz strona była czyszczona z danych.
na samym końcu mam dopisane dwie linijki:
unset( tutaj wszystkie zmienne oddzielone przecinkami);
session_destroy();
ale nadal po kliknięciu "zapisz" dane z miejsca "wyświetlenie obrobionych danych" nie znikają.
Go to the top of the page
+Quote Post
bmL
post 7.09.2007, 13:26:07
Post #8





Grupa: Zarejestrowani
Postów: 301
Pomógł: 25
Dołączył: 15.07.2007
Skąd: Olsztyn

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


Nie wiem czy zrozumiałem :-P
Ale czy nie dzieje się tak bo przeglądarka automatycznie uzupełnia pola formularza (przeglądarka nie skrypt php)


--------------------
Tutaj miał być jakiś mądry tekst. Miał być... No ale jest głupi tekst.
Go to the top of the page
+Quote Post
Gonzo44
post 7.09.2007, 18:29:14
Post #9





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 19.07.2007

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


Nie.
Dane wyświetlane są w tabelce instrukcją echo $_SESSION['xxx'];


Właśnie na to wpadłem. Po każdym naciśnięciu przycisku cały plik ze skryptem i stroną jest przerabiany od nowa od pierwszej linii. Czyli czyszczenie zmiennych i zamykanie sesji jest później niż wyświetlanie danych. Dobrze myślę?
Jeżeli tak to wystarczyłoby na początku pliku umieścić
  1. <?php
  2. IF($_POST['sprawdz'] == "SPRAWDZ") {funkcja1;)
  3. IF($_POST['zapisz'] == "ZAPISZ") {funkcja2;)
  4. ?>

a htmlowe przyciski w dalszej części dokumentu?

Ten post edytował Gonzo44 7.09.2007, 18:30:32
Go to the top of the page
+Quote Post

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: 16.07.2025 - 11:52