Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Uwierzytelnianie HTTP w PHP - jak sie wylogować?, Czyli jak zwykle problem z kochanym IE :/
sowiq
post 22.09.2008, 22:09:35
Post #1





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


Witam,
logowanie przy użyciu metody Uwierzytelnianie HTTP w PHP na pewno wszyscy bardziej zaawansowani PHP'owcy znają.

Krótko o moim problmie.

Co chcę osiągnąć?
1) link 'wyloguj', po którego kliknięciu pojawi się ponownie okno do wpisania danych / ew. link -> zaloguj ponownie, żeby można było zalogować się jako inny user

Dlaczego nie mogę tego osiągnąć?
1) jeśli zrobię sobie skrypcik, który najpierw czyści pola $_SERVER['PHP_AUTH_USER'] i $_SERVER['PHP_AUTH_PW'] a później pokazuje okienko do wpisania danych to niemożliwym jest zalogować się ponownie, bo wywoływany jest cały czas ten skrypt (ta sama ścieżka), czyli od razu po zalogowaniu następuje wylogowanie z prośbą o zalogowanie

2) wyczytałem na jakimś forum, żeby zrobić tego linka do http://logout:logout@strona.pl i działał świetnie! Ale do momentu, w którym zobaczyłem, że kochane IE nie obsługuje tego typu rzeczy :/

Niech mi ktoś mądry powie jak to obejść :/

PS. Nie jest dla mnie rozwiązaniem napisanie systemu logowania na sesjach.
Go to the top of the page
+Quote Post
webdice
post 22.09.2008, 23:05:39
Post #2


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Spróbuj z:
  1. <?php
  2. unset ($_SERVER['PHP_AUTH_USER']);
  3. unset ($_SERVER['PHP_AUTH_PW']);
  4. ?>


powinno zadziałać.
Go to the top of the page
+Quote Post
sowiq
post 23.09.2008, 09:38:01
Post #3





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


Hehe, bez przesady smile.gif Próbowałem tego na samym początku.

Niestety problem polega na tym, że unset() usunie te dane podczas aktualnego wykonywania skryptu. Przy następnym przeładowaniu zostają one ponownie wysłane w nagłówkach przeglądarki. A jeśli tego unset'a dam przed sprawdzeniem stanu zalogowania, to będzie on czyścił dane za każdym razem - czyli nawet jak wpiszę dobre, to skrypt zobaczy puste pola smile.gif

Zrobiłem trochę inaczej, też nie do końca poprawnie, ale inaczej się chyba nie da:
  1. <?php
  2. // logout.php?logoutUser=login1
  3.    if($_GET['logoutUser'] != $_SERVER['PHP_AUTH_USER']){
  4.        header("Locatio: ./");
  5.        exit;
  6.    }
  7.  
  8.    $_SERVER['PHP_AUTH_USER'] = "";
  9.    $_SERVER['PHP_AUTH_PW'] = "";
  10.  
  11.    pokazOkienkoLogowania();
  12. ?>


Czy jest to jedyna sensowna metoda? Zwróćcie uwagę, że nie da się zalogować ponownie na tego samego usera - trzeba najpierw zmienić w przeglądarce adres z ./logout.php na ./
Go to the top of the page
+Quote Post
vraq
post 2.12.2008, 11:52:54
Post #4





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 26.10.2008

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


Witam
Znalazłem przykrą wiadomość na temat wylogowania się z uwierzytelnienia, dotyczącą Podstawowego Protokołu Uwierzytelnienia.
http://www.flicks.com/technicalSupport/log...hentication.asp
Nie znam się jeszcze dobrze na PHP, a już w ogóle nie na ASP, ale myślę , że sprawa dotyczy tematów powyższych postów. (chodzi o cachowanie haseł i nazw użytkownika przez przeglądarkę, aż do momentu jej zamknięcia).
Go to the top of the page
+Quote Post
sowiq
post 2.12.2008, 12:14:43
Post #5





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


Cytat(vraq @ 2.12.2008, 11:52:54 ) *
(chodzi o cachowanie haseł i nazw użytkownika przez przeglądarkę, aż do momentu jej zamknięcia).
Właśnie stąd wynikał mój problem, ale jak pewnie zauważyłeś powyżej - rozwiązałem go w lepszy lub gorszy sposób. Niepotrzebnie odświeżasz temat sprzed 3 miesięcy.

Ten post edytował sowiq 2.12.2008, 12:15:59
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: 19.07.2025 - 20:57