Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] - wczytywanie strony po wylogowaniu
szym011
post
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 1
Dołączył: 18.06.2010

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


Witam.
Mój problem wygląda następująco:
Piszę aplikacje w której zastosowałem autoryzacje użytkowników opartą na mysql. W sęsie takim, że wchodzi osoba na strone, loguje się i w przypadku poprawnego zalogowania sesja umieszczana jest w bazie. Problem pojawia się, gdy taka osoba się wylogowuje. Po naciśnięciu wyloguj z bazy usuwana jest sesja danego użytkownika, oraz ciasteczko z jego przeglądarki. Po wylogowaniu przsenosi do strony logowania i tam po naciśnięciu wstecz (w menu przeglądarki) wraca do poprzednio zalogowanej strony z możliwością kliknięcia w coś jednorazowo(przenosi z powrotem do strony logowania). W skrypcie mam takie zabezpieczenie,ze jeżeli nie ma takiej sesji przenosi do strony logowania. Dodam, że po checi ponownego wykonania tego pliku(wywolaniem url) przenosi prawidłowo do strony logowania. Czy wie ktoś jak można rozwiązać mój problem? Wersja php: 5.0, używam systemu szablonów OPEN POWER TEMPLATE.
Przepraszam za mój język, oraz błędy. Z góry dziękuję za pomoc!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
nanoo
post
Post #2





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.11.2007

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


Ale na czym polega dokładnie Twój problem? Przyznam, że przeczytałem 3 razy temat i nie wiem w przypadku czego prosisz o pomoc.
Chodzi o to, że po wylogowaniu user po kliknięciu wstecz ciągle ma dostęp do treści, które powinny być dostępne tylko po zalogowaniu?
Go to the top of the page
+Quote Post
szym011
post
Post #3





Grupa: Zarejestrowani
Postów: 19
Pomógł: 1
Dołączył: 18.06.2010

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


Tak, przepraszam za zamieszanie. Nie wiedziałem jak sprawnie to opisać.
Go to the top of the page
+Quote Post
Niktoś
post
Post #4





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

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


Spróbuj dodać te liniki do swojego skryptu pomiędzy <head> a </head>:
Cytat
<meta http-equiv="Expires" content="0">
<meta http-equiv="Cache-Control" content="no-store, no-cache, must-revalidate">
<meta http-equiv="Cache-Control" content="post-check=0, pre-check=0">
<meta http-equiv="Pragma" content="no-cache">

Wyczyść cache swojej przeglądarki i zobacz jak działa.
Go to the top of the page
+Quote Post
szym011
post
Post #5





Grupa: Zarejestrowani
Postów: 19
Pomógł: 1
Dołączył: 18.06.2010

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


Wolałbym uniknąć tego sposobu. Aplikacja trochę informacji ładuje do cache i strasznie spowolniło by to jej działanie. Chciałbym prosty, szybki i wydajny sposób.
Go to the top of the page
+Quote Post
92nasti
post
Post #6





Grupa: Zarejestrowani
Postów: 80
Pomógł: 1
Dołączył: 22.01.2011

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


Dodałeś na samym początku sprawdzenie aktywności sesji?
Go to the top of the page
+Quote Post
szym011
post
Post #7





Grupa: Zarejestrowani
Postów: 19
Pomógł: 1
Dołączył: 18.06.2010

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


Tak. Wygląda to mniej więcej tak:
  1. if(!isset($_COOKIE['sid'])) header("Location: ./login.php");// sid nazwa ciasteczka z id sesji
  2. $session = sql_get_session_by_value($_COOKIE['sid']);// sprawdza czy istnieje w bazie sesja z takim id, jesli nie zwraca FALSE
  3. if($session == FALSE) // nie ma sesji przenosi
  4. {
  5. header("Location: login.php");
  6. }


Ten post edytował szym011 27.11.2011, 23:27:31
Go to the top of the page
+Quote Post
Niktoś
post
Post #8





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

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


Nie wiem ,ale mam takie przeczucie ,że z tym raczej nic nie zrobisz jak masz cache włączone.Wydaje mi się ,że jedynym wyjściem jest właśnie wyłączenie cachowania na stronie.

Ten post edytował Niktoś 27.11.2011, 23:30:38
Go to the top of the page
+Quote Post
szym011
post
Post #9





Grupa: Zarejestrowani
Postów: 19
Pomógł: 1
Dołączył: 18.06.2010

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


Spróbowałem jednak zastosować wyłączenie cache no i niestety brak efektu. Nadal po wylogowaniu mogę wrócić do poprzedniej strony.
Jakieś inne pomysły?
Go to the top of the page
+Quote Post
Kostek.88
post
Post #10





Grupa: Zarejestrowani
Postów: 376
Pomógł: 47
Dołączył: 23.08.2007
Skąd: Warszawa

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


A moze po prostu header('Location: /adres strony'); exit; (IMG:style_emoticons/default/questionmark.gif) Oczywiscie zaraz po wylogowaniu ze strony.

Ten post edytował Kostek.88 6.12.2011, 21:41:31
Go to the top of the page
+Quote Post
r4xz
post
Post #11





Grupa: Zarejestrowani
Postów: 673
Pomógł: 106
Dołączył: 31.12.2008

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


sądzę iż jest to pewnego rodzaju walka z wiatrakami i wypadałoby najpierw zastanowić się nad sensem takiego rozwiązania. wady niestety widać gołym okiem (brak cache chociażby). drugi aspekt - jest to pewnego rodzaju próba 'zablokowania' przycisku 'wstecz' - a po coś on ino został stworzony (ale to już czysto subiektywne zdanie) (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
abort
post
Post #12





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

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


OK, jestem w stanie zrozumieć Twoją chęć tego, by przez przycisk 'back' nie dostać informacji, do których potrzeba się zalogować. Ale... w takim razie co zrobisz, jeśli ktoś otworzy sobie kilka zakładek czy nawet okien z treścią z serwisu (i informacjami tylko dla zalogowanych), a w jednym z nich się wyloguje? A co zrobisz, jak sobie taką stronę zapisze na dysk?

Sorry, ale ja nie widzę sensownego rozwiązania. Nie ma możliwości kontrolowania tego, co już zostało wysłane do przeglądarki...
Go to the top of the page
+Quote Post
by_ikar
post
Post #13





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


IMO jak masz sprawdzanie w dalszej części strony czy użytkownik jest zalogowany, to nawet jeżeli może kliknać, to i tak go przekieruje na stronę logowania. Wniosek - dla ciebie to żaden problem.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 16:12