Kiszuriwalilibori
29.04.2020, 10:27:20
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
29.04.2020, 10:30:56
Opisz problem dokladniej bo przynajmniej dla mnie nie dokonca wynika co chcesz osiagnac.
Nie mozesz wyslac tych danych w jednym formularzu poprostu?
Kiszuriwalilibori
29.04.2020, 10:39:58
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
29.04.2020, 10:49:56
Generalnie sesja by pomogla. Ale jesli to ma byc prawdziwie zabezpieczenie na hakerow to jest do bani, bo haker ma gdzies sesje

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
29.04.2020, 10:53:30
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
29.04.2020, 10:58:51
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
29.04.2020, 11:13:02
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
29.04.2020, 11:14:44
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
29.04.2020, 11:30:27
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.