Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Formularz "wielokrokowy" - zabezpieczenie nawigacji
Forum PHP.pl > Forum > Przedszkole
odkuszacz
W realizowanym serwisie zrobiłem formularz składający się z kilku kroków. Do głównego skryptu "includuje" skrypty w zależności od $_GET[krok].
Przykładowo adres wygląda tak: http://www.nazwa.pl/admin/formularz.php?krok=1. Są w nim linki nawigacyjne umożliwiające skok o 1 krok do przodu lub do tyłu. Jednak jak ktoś w adresie wyszukiwarki zmieni $_GET[krok] ręcznie i trafi w istniejącą wartość to przeskoczy - na tym mi nie zależy.

Podpowiecie jak to zabezpieczyć, żeby przeskakiwać tylko +/-1 lub ewentualnie tylko i wyłącznie linkiem przeskakiwać?

Z góry wielkie dzięki biggrin.gif
zordon
Zwykła zmienna sesyjna - krokom nadaj kolejne id, np 1, 2, 3, 4, 5...
Po wejściu na stronę o id = 2 zapisujesz to do sesji. Po kolejnym kliknięciu sprawdzasz, czy id_kroku = id_z_sesji +/-1
thek
Zordon... I tu własnie nie zgodziłbym sie do końca... Sesja = prawda... Warunek? Nie smile.gif To co powinno być zapamiętywane to krok, który był jako najdalszy. Użytkownikowi bowiem należy dać możliwość cofnięcia się do dowolnej wcześniejszej strony. Może więc być aktualnie na 3 i blokada jest taka, że na 4 może przejść tylko poprzez Zapisz lub Dalej (zależy czy następne strony są opcjonalne czy nie), ale może swobodnie przejść na 1 i 2 i z przypuśćmy 1 znów na 3. A Twoje rozwiązanie umożliwia tylko poruszanie się w przód/tył o jedną stronę.
zordon
Cytat(thek @ 1.07.2011, 08:53:10 ) *
Twoje rozwiązanie umożliwia tylko poruszanie się w przód/tył o jedną stronę.

Bo autor tematu prosił o konkretnie takie rozwiązanie smile.gif
Ja doskonale wiem, że w większości przypadków powinno się robić tak jak napisałeś, ale skoro autor dość precyzyjnie określił że chce zabezpieczenie "przeskakiwania" o 1 krok to zakładam, że ma do tego konkretny powód

thek
Dlatego to była bardziej uwaga do autora rzucona niż do Ciebie osobiście. Sam takie formularze pisałem i wiem, że im więcej kroków, tym skakanie +/-1 robi się coraz bardziej niewygodne. Zresztą uważam, że powinno się formularz rozdzielać na małe partie, ale sensownie związane z sobą. Od razu też podawać liczbę kroków (user wtedy wie ile do końca i nie zaczyna wpisywać głupot byle zakończyć) oraz starać nie przekraczać 5-6 bo za dużo kroków też zniechęca równie skutecznie jak lista opcji na 2 strony przewijania wink.gif
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.