Zrobiłem stronę logowania w PHP. Po wypełnieniu formularza logowania jest on wysyłany do tej samej strony metodą POST.
Jednak po zalogowaniu się użytkownik może kliknąć przycisk ‛wstecz’ i wrócić do tej samej strony (strona logowania się już nie wyświetli, gdyż jest zalogowany).
To nie jest problem, jeśli użytkownik rozpoczyna od strony logowania, ale u mnie strona logowania jest do wejścia do dalszych zasobów, po przeglądnięciu ogólnych. Dlatego chcę dać użytkownikowi możliwość cofnięcia się do poprzedniej strony, pozostając zalogowanym do dalszych zasobów.
Jak wyeliminować z zachowania przeglądarki ‘www’ to jedno puste kliknięcie przycisku ‘wstecz’ (na tę samą stronę)?
A nie byłoby lepiej to logowane zrobić bardziej dynamiczne - w oparciu o AJAX, czyli takie wyskakujące okienko/popup, w którym się logujesz, ale nie zmieniasz adresu ani nie otwierasz kolejnej strony? W takim przypadku nie będzie problemu ze stroną logowania w historii przeglądania.
Możesz też rzucić okiem na https://stackoverflow.com/questions/16460974/how-not-to-add-current-page-to-browser-history
Ewentualnie taka porada - https://stackoverflow.com/questions/46913759/php-redirect-but-keep-page-in-history. Jak trafi (chociażby w wyniku wciśnięcia przycisku "wstecz") na stronę logowania ale będzie już zalogowany, to zamiast pokazywania formularza logowania, przekieruj go w inne miejsce (np. na stronę, z której trafił na panel logowania)
Musisz zrobic plik np LoginController.php i w tym pliku przyjmujesz to co leci z formularza logowania. jesli logowanie si euda to robisz redirect cos na zasadzie
header("Location : twojastrona.pl/costam");
exit();
Natomiast jesli planujesz dostep do dalszych zasobow to robisz strone z potwierdzeniem hasla tylko juz bez podawania loginu
wyglada to tak:
-
wchodze na strone ktora wymaga potwierdzenia haslem
-
odczytuje request i sprawdzam czy mam dostep do tej strony czy wymaga hasla
-
jesli wymaga hasla zapisuje adres sesji do jakiej strony chciales sie dostac i przekierowuje na strone do podania hasla
-
jesli haslo jest ok to przekierowuje do tej strony co byla tak zabezpieczona
Mozesz tez uzyc Ajaxa bo to wygodniejsze ale mysle ze najpierw pocwicz z czytsym php, a najlepiej uzyj framweorka juz
Kilka razy już wrzucałem https://en.m.wikipedia.org/wiki/Post/Redirect/Get
To praktycznie to co opisano powyżej.