Sandman
25.03.2004, 19:38:30
Witam :!: :!: :!:
Zaprojektowałem system logowania oparty na kontroli sesji. Skałada się on z 3 skryptów. Pierwszy sprawdza czy nastąpiło logowanie, jeżeli tak to następuje zarejestrowanie sesji i pokazuje się link za pomocą którego można przejść do strony, która jest udostępniona tylko zalogowanym uzytkownikom, jeżeli nie nastąpiło logowanie to wyświetlany jest formularz za pomocą którego można to zrobić. Drugi skrypt wyświetla strone ale tylko wtedy gdy ktos jest zalogowany. Trzeci skrypt to wylogowanie.
Wszystko działa oki za wyjątkiem jednego szczegółu. Jeżeli wykorzystamy mechanizm jaki daje przeglądarka i zaczniemy się cofać strona po stronie to dojdziemy do momentu w którym możemy odświeżyć stronę i zmienne formularz zostana znów wysłane do skryptu.
Jak się tego pozbyć :?:
Czy istnieje możliwość żeby zmienne formularza były wysyłane tylko raz żeby po wylogowaniu nie mozna było się cofnąć do stron dostępnych tylko dla zalogowanych użytkowników :?:
Dzięki za podpowiedź !!!
michaloo
25.03.2004, 19:46:27
hmm nie do konca rozumiem. Mam na swojej stronie podobny system logowania: logowanie.php, profil.php, wylogowanie.php. I jak sie zaloguje wejde do profil.php to mam wyswietlana tresc dostepna tylko dla zalogowanych userow, jak sie wyloguje wchodzac na strone wylogowanie.php i wroce sie na profil.php to wyswietla mi informacje ze jestem niezalogowany...o to chodzi?
Sandman
25.03.2004, 20:59:42
Nie spodziewałem się tak szybkiej odpowiedzi
tzn. że jak cofasz się od wyloguj do profil nie pojawia Ci się chrakterystyczna informacja o tym że - strona wygasła ponieważ od jedej do drugiej strony przesyłane były dane formularza itp., i że po odświeżeniu strony dane zostana wysłane jeszcze raz?
U mnie ta sytuacja się pojawia :cry:
Sandman
25.03.2004, 21:16:02
Głównie chodzi mi o to że zmienne formularza są pamiętane w przegladarce. Jak zrobić żeby po wylogowaniu były niszczone z historii przeglądarki :?:
michaloo
27.03.2004, 20:07:23
dalej nie do konca rozumiem. Zmienne sesyjne usuwa sie tak:
[php:1:0c4a64101b]<?php
unset($_SESSION);
session_destroy();
?>[/php:1:0c4a64101b]
i u mnie to dziala
RoVeR
28.03.2004, 10:57:22
Jemu chodzi o to że przeglądarka zapamiętuje zmienne z formulaża, i przy cofaniu/odświerzaniu może je wysłać jeszcze raz, a Sandman sobie życzy aby były usuwane z pamięci przeglądarki.
Sandman, niestety, to jest hyba niemożliwe z poziomu skryptu (ani JS ani tym bardziej php).
jest to możlwe:
:arrow: napisz oddzielny plik, który bęzdie obsługiwał formularz i potem z niego redirectuj na inna strone (albo na strone serwsiu albo z powrtoem na strone logowania jesli użytkownik zle sie zalogowal)
poczytaj o[manual:da6a391940] header[/manual:da6a391940], [manual:da6a391940]session[/manual:da6a391940]( to to zachowania informacji o tym czy użytkownik jest zalogowany, pomiędzy poszczególnymi częsciami serwisu)
UPDATE: teraz jesli nawet cofniesz sie do strony ze skrptem logującym odrazu zostaniesz przekierowany na inna strone serwisu.
arogancik
28.03.2004, 12:12:08
a nie lepiej przy pomocy header ustawić ze zawartość danej strony wygasło. tzn wyłączyć cache-owanie?
Sandman
28.03.2004, 17:14:30
Sandman
29.03.2004, 08:22:17
Wszystko poszło. Działa. Dzięki wszystkim za pomoc !!!
xmp3
29.03.2004, 09:52:05
a nie lepiej session_unregister('$nazwa_zmiennej');
ja tak zrobilem przy swoim
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.