Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z wylogowaniem uzytkownika, $_SERVER['PHP_AUTH_USER'] oraz $_SERVER['PHP_AUT
phpion
post
Post #1





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Hej!
Mam problem z wylogowaniem uzytkownika. Do zalogowania i wylogowania uzywam skrypciku:
  1. <?php
  2. if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW']) || $_SERVER['PHP_AUTH_USER'] != ADMIN_LOGIN || $_SERVER['PHP_AUTH_PW'] != ADMIN_PASS) {
  3. header('WWW-Authenticate: Basic realm="Logowanie"');
  4. header('HTTP/1.0 401 Unauthorized');
  5. echo 'Access denied';
  6. }
  7.  
  8. if (isset($_GET['mode']) && $_GET['mode'] == 'logout') {
  9. unset($_SERVER['PHP_AUTH_USER']);
  10. unset($_SERVER['PHP_AUTH_PW']);
  11. echo 'Logout successful';
  12. }
  13. ?>

No i zachowuje sie to tak: przy wejsciu na strone uzytkownik proszony jest o zalogowanie sie. Gdy da Cancel otrzymuje Access denied. No i spoko. Gdy poda zle haslo otrzyma ponownie okno logowania. Tez spoko. Gdy zaloguje sie poprawnie moze sobie chodzic po stronce. Problem nastepuje przy wylogowaniu. Otoz otrzymuje komunikat Logou successful czyli niby wszystko przebieglo ponownie. Jednak odswiezenie skryptu nie powoduje ponownego pojawienia sie okna logowania. Dopiero po restarcie przegladarki uzytkownik jest proszony o ponowne podanie loginu i hasla.
Sprawdzalem czy unset() wogole sie wykonuje i tak! Po zalogowaniu w tablicy $_SERVER sa elementy o indexach PHP_AUTH_USER oraz PHP_AUTH_PW, natomiast po wylogowaniu elementy te znikaja.
Jak rozwiazac ten problem?
PS: nie chce uzywac do logowania formularza oraz cookies/sesji - chcialbym pozostac przy tym sposobie.

// EDIT:
Zmienne te kasowane sa ale tylko na stronie gdzie nastepuje logout. Gdy pozniej zmienie w adresie admin.php5?mode=logout na np. samo admin.php5 to te zmienne znowu sie pojawiaja :|
Go to the top of the page
+Quote Post
Zimon
post
Post #2





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 7.08.2006

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


a nie lepiej jest zastosować sesje??
Go to the top of the page
+Quote Post
phpion
post
Post #3





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




No latwiej ale tak jak pisalem nie chce rezygnowac z tego okienka. Przy sesjach trzebaby pisac formularz logowania itd a chcialbym tego wlasnie uniknac. Dlatego wolalbym pozostac przy tym okienku.

// EDIT
Problem zostal rozwiazany.
  1. <?php
  2. header("Cache-Control: no-cache, must-revalidate");
  3. header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
  4.  
  5. if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW']) || $_SERVER['PHP_AUTH_USER'] != ADMIN_LOGIN || $_SERVER['PHP_AUTH_PW'] != ADMIN_PASS) {
  6. header('WWW-Authenticate: Basic realm="Logowanie"');
  7. header('HTTP/1.0 401 Unauthorized');
  8. echo 'Access denied';
  9. }
  10.  
  11. if (isset($_GET['mode']) && $_GET['mode'] == 'logout') {
  12. header( 'WWW-Authenticate: Basic realm="Logowanie"');
  13. echo 'Logout successful';
  14. }
  15. ?>
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: 15.09.2025 - 02:24