Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zmienne 'giną'...czy SESSION to jedyny mechanizm?
Forum PHP.pl > Forum > Przedszkole
Kiszuriwalilibori
To moje pierwsze kroki z PHP, więc z góry przepraszam za pewnie banalne i oczywiste pytanie.
Mam plik form.php ze stroną HTML wyświetlającą formularz przyjmujący i wysyłający jedną danę i plik script.php, do którego trafiają dane.

Wszystko grało do momentu kiedy chciałem wysłać i przerobić więcej niż jedną danę, ściśle mówiąc kilka pod rząd ( nie jeden formularz z kilkoma polami, ale kilkukrotne wykorzystanie tego samego).
Wygląda na to, że dane otrzymane przez script.php się resetują za każdym razem.

Zmieniłem tę konstrukcję i przeniosłem właściwie wszystko, co było w script.php do form.php, ale efekt jest taki sam - po naciśnięciu submit wszystko się czyści i nie ma dostępu do poprzednich danych.

Poczytałem trochę o SESSION, jeszcze tego nie sprawdziłem, czy SESSION to jedyne rozwiązanie, czy przeoczyłem coś oczywistego?
nospor
Opisz problem dokladniej bo przynajmniej dla mnie nie dokonca wynika co chcesz osiagnac.

Nie mozesz wyslac tych danych w jednym formularzu poprostu?
Kiszuriwalilibori
Widzisz, to jest tylko nauka, może bym i mógł, ale zdecydowanie nie chcę.

Załóżmy, że form.php pobiera i wysyła hasło.
Script.php ma zrealizować taką logikę: Przy podaniu prawidłowego hasła użytkownika pierwszy raz ma się wyświetlić komunikat" Hasło OK”, w przypadku błędnego hasła ma poprosić jeszcze raz o nie i komunikat ze strony ma być „Pierwszy błąd”, przy kolejnym błędnym haśle poprosi jeszcze raz o nie i komunikat ze strony ma być „Drugi błąd”. Przy czwartej błędnej próbie ma wyświetlić się okno dialogowe „zablokowane”.

To jest przykład. Chodzi o to, że script.php jest za każdym razem uruchamiany na nowo i nie przechowa informacji o błędnych próbach.

Z opisu session wynikałoby, że to sobie poradzi. Pytanie, czy nie ma prostszej metody - prawdopodobnie coś przeoczyłem oczywistego -ale w PHP jestem bardzo świeży.
nospor
Generalnie sesja by pomogla. Ale jesli to ma byc prawdziwie zabezpieczenie na hakerow to jest do bani, bo haker ma gdzies sesje smile.gif
Mozesz w bazie trzymac info ze dla danego loginy bylo juz x prob zlego zalogowania i blokowac login. Ale wten sposob ktos moze komus robic "psikusy".
Kiszuriwalilibori
Hakerami to się jeszcze nie przejmuję, właściwie to zacząłem się bawić php w piątek.

To jest zdecydowanie do nauki, a nie komercyjnego czy jakiegokolwiek wykorzystania.
Właściwie to nie jest pierwsza sytuacja kiedy kombinuję co poradzić na odświeżające się skrypty.

Pisząc w bazie masz na myśli podpięcie SQL czy czegoś takiego?
nospor
Tak, baza danych. Najpopularniejsza na poczatek to MySQL

No ale zalozylem ze juz korzystasz z bazy, skoro mowiles cos o wpisywaniu hasel. No ale jesli nie masz bazy jeszcze to znaczy ze masz tylko jedno haslo na cala aplikacje dla wszystkich?
Kiszuriwalilibori
Masz rację - niejasno napisałem. To jest przykład, chodzi tylko o obieg danych - i resetowanie skryptu. Szukałem rozwiązania dla przechowania takich danych ( a poza tym dopiero zaczynam i nie było dla mnie oczywiste, że dane ze skryptu giną... acz z drugiej strony są w nim deklarowane, to jak mają nie ginąć...). Właściwie o SQL pomyślałem na początku, ale z SQL jeszcze na dobre nie wystartowałem.

Tak, w poważnej aplikacji próby logowania na pewno szłyby do bazy.
nospor
php pamieta tylko dane w trakcie jednego żądania. Jak slesz kolejne żądania/formy to poprzednie dane natuaralnie znikaja. Jak chcesz zarzadzac danymi miedzy żądaniami do tego używa się wlasnie sesji
Kiszuriwalilibori
OK, dzięki, tego właśnie napisanego w jasny sposób brakowało mi w kilku źródłach, które czytałem.
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.