Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: autentykacja uzytkownika
Forum PHP.pl > Forum > PHP
AxZx
witam

jest taka sytuacja ze sa w serwisie dzialy gdzie nie zalogowany user nie moze miec dostepu.
czyli sprawdzamy czy jest ustawiona sesja, itp itd

i co dalej?

chcialbym zeby wyswietlil sie formularz rejestrowania jesli nie jest zalogowany, po wypelnieniu go zeby przenosilo na strone ktora wczesniej chcial zobaczyc.

zrobilem cos takiego ze wstawia do formularza logowania ukryta zmienna z adresem skad przyszedl, ale po wywolaniu header przenosi do strony z adresem typu:
Kod
index.php?nav=strona&krok2

zamiast
Kod
index.php?nav=strona&krok2


mimo tego ze wczesniej daje
  1. <?php
  2. $skad = str_replace("&amp;", '&', $skad);
  3. ?>


gdybyscie mieli jakis inny algorytm na takie cos to bardzo chetnie podyskutuje na ten temat:)
albo gdybyscie chcieli mi pomoc przy tym co juz mam.
mikess
moze zrob zmienna sesyjna do ktorej bedzie przypisywany adres poprzedniej strony biggrin.gif
dtb
http://pl2.php.net/manual/pl/reserved.vari...ariables.server

po co zapisywac do sesji adres poprzedniej strony skoro jest tablica _server. tam masz zapisna strone skad przyszles
AxZx
ja tylko chcialem zapytac czy algorytm ktory wymyslilem jest dobrym rozwiazaniem

w tablicy _server z tego co zauwazylem;) jest tylko poprzednia strona, a nie 2 strony albo i 3 wczesniej.
DeyV
Innym, chyba lepszym rozwiązaniem, choć nieco trudniejszym do zaimplementowania jest zrezygnowanie z przekierowywania.

Zamiast tego system rozpoznaje, że użytkownik nie jest zalogowany, i zamiast uruchomienia oczekiwanej akcji (np. wyświetlenia artykułu), uruchamia akcję "logowanie".

Akcja ta powoduje wyświetlanie formularza logowania, jednak jako adres na który ma zostać wysłany formularz, podaje oryginalny adres oczekiwanego artykułu.

Co się dzieje po naciśnięciu przycisku "loguj"? Ponownie zostaje wywołana akcja "artykuł". Użytkownik jednak wciąż nie jest zalogowany, więc ponownie włącza się akcja "logowanie" Akcja ta rozpoznaje, że w POST otrzymała dane użytkownika.
Jeśli są błędne - wyświetla odpowiedni komunikat i znów formularz logowania.

A co jeśli są poprawne?
Są 2 rozwiązania.
1. Wyświetla komunikat, że jesteś zalogowany, i możesz przejść do swojego artykułu, a więc po raz kolejny generuje link do oczekiwanego artykułu.
2. Akcja logowania "wyłącza się" przesyłając do systemu informację, że można już włączyć oczekiwaną akcję, ponieważ wszystkie warunki zostały spełnione.
Dzięki temu użytkownik, odrazu po naciśnięciu przycisku "loguj" widzi oczekiwany artykuł.




A swoją drogą - używanie Refer jest niewskazane - przeglądarka może nie wysłać tej informacji, lub serwer może jej nieprzekazać. Informacja o tym jest w manualu.
AxZx
podobnie wlasnie rozwiazalem ten problem uzywajac header

user wkleja w pasek adresu jakis tam adres ktory dostal od znajomego, niestety trzeba sie zalogowac zeby tam wejsc, wiec pojawia sie formularz logowania, ale nadal adres jest taki sam.
po wyslaniu zawartosci formularza sprawdza czy poprawne i ustawia sesje, i znowu przekierowuje na ta sama strone, i znowu sprawdzane jest istnienie sesji, itd w kolko:)
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.