Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Wylogowanie i odświeżenie w OPERZE
Mlodycompany
post 15.08.2008, 09:43:56
Post #1





Grupa: Zarejestrowani
Postów: 910
Pomógł: 44
Dołączył: 20.02.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


Witam. Mam opere i z niej korzystam. Gdy klikam wyloguj na stronie, sesja jest niszczona ale nie odświeża strony a powinno. W czym jest problem?? 

  1. <?php
  2. if($_GET['action'] == 'logout'){
  3.  header("Location: ".$_SERVER['HTTP_REFERER']."");
  4. }
  5. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
wookieb
post 15.08.2008, 09:57:16
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Kod
        Witam. Mam opere i z niej korzystam.

Witam. Mam alkohol i jestem alkoholikiem tongue.gif

Nie odświeża czy przenośi odrazu na adresz z referera?
Daj die('test'). po headerze.


--------------------
Go to the top of the page
+Quote Post
Mlodycompany
post 15.08.2008, 10:35:36
Post #3





Grupa: Zarejestrowani
Postów: 910
Pomógł: 44
Dołączył: 20.02.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


hehe

dałem die('test'); i gdy klikne pojawia mi się biała strona z "test" biggrin.gif
Go to the top of the page
+Quote Post
wookieb
post 15.08.2008, 10:39:34
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Tzn ze nie ma http_referrer.
Sprawdz zawartosc tej zmiennej
Kod
print_r($_SERVER);


--------------------
Go to the top of the page
+Quote Post
Mlodycompany
post 15.08.2008, 10:46:01
Post #5





Grupa: Zarejestrowani
Postów: 910
Pomógł: 44
Dołączył: 20.02.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


Słuszna racja, nie ma http_referer, ale przecież powinna być bo strona jest normalnie wczytywana. Czy ktoś ma jakiś inny pomysł jak to rozwiązać. Myślałem nad header("Location: index.php"); ale raczej chciałbym aby kogoś przenosiło na tą strone z której się wylogował.
Go to the top of the page
+Quote Post
golaod
post 15.08.2008, 10:57:28
Post #6





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Pracujesz na bazie mysql ? Jeśli tak to dodatkowe pole dla usera: last_page czy tam last_url
Wtedy po wylogowaniu header z last_page.
EOF
Go to the top of the page
+Quote Post
paziek
post 15.08.2008, 11:00:25
Post #7





Grupa: Zarejestrowani
Postów: 207
Pomógł: 25
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


if(jest_http_referer) przenieś_na_tą_strone_z_ktorej_sie_wylogowal
else przenies_na_index

Ewentualnie zapisuj do sesji gdzie aktualnie się znajduje i przy $_GET['action'] == 'logout' po prostu tego nie zmieniaj, tylko użyj (pamiętaj, aby skopiować do jakiejś zmiennej przed zniszczeniem sesji)

Ten post edytował paziek 15.08.2008, 11:00:59
Go to the top of the page
+Quote Post
pyro
post 15.08.2008, 11:07:10
Post #8





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


Cytat(golaod @ 15.08.2008, 11:57:28 ) *
Pracujesz na bazie mysql ? Jeśli tak to dodatkowe pole dla usera: last_page czy tam last_url
Wtedy po wylogowaniu header z last_page.
EOF


i po co obciążać dodatkowo bazę?

Cytat
if(jest_http_referer) przenieś_na_tą_strone_z_ktorej_sie_wylogowal
else przenies_na_index


Przecież autor mówi, że tego referera nie ma w $_SERVER['HTTP_REFERER'];

Co robić? Ja proponuję utworzenie:

$_SESSION['current_page']; - zmienna przechowująca adres aktualnie wyświetlanej strony
$_SESSION['last_page']; - zmienna przechowująca statnio wyświetlonej strony -> tam będzie przekierowanie


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
Go to the top of the page
+Quote Post
Mlodycompany
post 15.08.2008, 11:15:02
Post #9





Grupa: Zarejestrowani
Postów: 910
Pomógł: 44
Dołączył: 20.02.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


zrobiłem przekierowanie na index.php i już biggrin.gif
Go to the top of the page
+Quote Post
paziek
post 15.08.2008, 13:49:36
Post #10





Grupa: Zarejestrowani
Postów: 207
Pomógł: 25
Dołączył: 16.11.2006

Ostrzeżenie: (0%)
-----


Cytat(pyro @ 15.08.2008, 12:07:10 ) *
Przecież autor mówi, że tego referera nie ma w $_SERVER['HTTP_REFERER'];
Jeśli ktoś wyłączy wysyłanie to go nie ma. Nie ma jednak sensu karać z tego powodu wszystkich, stąd też instrukcja if else

Co do
Cytat(pyro @ 15.08.2008, 12:07:10 ) *
$_SESSION['current_page']; - zmienna przechowująca adres aktualnie wyświetlanej strony
$_SESSION['last_page']; - zmienna przechowująca statnio wyświetlonej strony -> tam będzie przekierowanie
Po co aż dwie zmienne? Do tego jeszcze sesje są zapisywane na dysku, więc masz zajęty ram i więcej I/O na dysku - wystarczy jedna snitch.gif

Ten post edytował paziek 15.08.2008, 13:49:58
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 16:42