Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: autoryzacja z vademecum php i mysql
Forum PHP.pl > Forum > Przedszkole
borcenty
Skrypt pochodzi z vademecum php i mysql wyd helion.

  1. <?php
  2.  
  3. // jeśli używamy IIS, trzeba ustawić zmienne $PHP_AUTH_USER i $PHP_AUTH_PW
  4. if (substr($SERVER_SOFTWARE, 0, 9) == 'Microsoft' &&
  5. !isset($PHP_AUTH_USER) &&
  6. !isset($PHP_AUTH_PW) &&
  7. substr($HTTP_AUTHORIZATION, 0, 6) == 'Basic '
  8.  ) 
  9. { 
  10. list($PHP_AUTH_USER, $PHP_AUTH_PW) = 
  11. explode(':', base64_decode(substr($HTTP_AUTHORIZATION, 6))); 
  12. } 
  13.  
  14. // to wyrażenie warunkowe można zastšpić np. zapytaniem do bazy danych
  15. if ($PHP_AUTH_USER != 'uzytkownik' || $PHP_AUTH_PW != 'haslo')
  16. {
  17. // użytkownik nie podał żadnych danych albo 
  18. // podany identyfikator lub hasło sš nieprawidłowe
  19.  
  20. header('WWW-Authenticate: Basic realm=\"Nazwa zasobu\"'); 
  21. if (substr($SERVER_SOFTWARE, 0, 9) == 'Microsoft') 
  22. header('Status: 401 Unauthorized'); 
  23. else 
  24. header('HTTP/1.0 401 Unauthorized'); 
  25.  
  26. echo '<h1>Odejdź stšd!</h1>';
  27. echo 'Nie jesteś uprawniony do przeglšdania tych zasobów.';
  28. } 
  29. else 
  30. {
  31. // użytkownik podał prawidłowe dane
  32. echo '<h1>Oto ona!</h1>';
  33. echo '<p>Na pewno jesteś szczęśliwy, że możesz zobaczyć tę stronę.';
  34. }
  35.  
  36. ?>


i teraz tak - odpalam pierwszy raz, wsio jest ok. dopisałem conieco tego co ma sie wyswietlac jak sie user zaloguje i tez bylo ok. wczoraj wsio dzialalo. dzis zagladam i juz nie pojawia sie okienko proszace o login i pass tylko od razu mi wyskakuje ze nie mam uprawnien. czemu tak? z tego co rozumiem - okienko pojawia sie zawsze, jesli user nie jest zalogowany prawda? Klkniecie nauluj powoduje wyswoietlenie "nie masz uprawnień" a podanie poprawnej kombinacji wyswietla strone.

nie dziala pod opera ani ie.

z gory dzieki za pomysly.
bełdzio
uruchom ponownie przeglądarkę to sesja wygaśnie i okienko powinno się pojawić ponownie winksmiley.jpg
borcenty
gdyby to bylo takie proste to bym sam na to wpadl smile.gif

wlasnie to nie pomaga sad.gif
strife
Napiszę dosyć chaotyczne rozwiazanie tego problemu, na początku dodaj session_start" title="Zobacz w manualu PHP" target="_manual, w miejscu gdzie następuje autoryzacja, czyli poprawne hasło login dodaj $_SESSION['login'] = 'yes'; A potem na początku umieść warunek, jeśli zmienna sesyjna login będzie istniała to nie wykonuj tego kawałka kodu odpowiadającego za logowanie.

Dziwię się tylko że z dnia na dzień tak Ci się zrobiło.

Pozdro!
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.