Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: popc ze skryptem do logowania
Forum PHP.pl > Forum > Przedszkole
pozg
ten skrypt jest sciagniety i dzialajednak mam pytania:
1. czy warto dodawac jeszcze sesje tak na wszeli wypadek
2. jak
2. jak zrobic wylogowanie jesli uzytkownik ma otwarte pare przegladarek i zamyka tylko ta z tym logowaniem (przy uzyciu krzyzyka albo wychodzi za pomoca przycisku "wyloguj sie")
  1. <?php 
  2. function getLoginInfo() {
  3. if (isset($_SERVER['HTTP_AUTHORIZATION'])) {
  4. return explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));
  5. }
  6. if (isset($_SERVER['PHP_AUTH_USER'])) {
  7. return array($_SERVER['PHP_AUTH_USER'],$_SERVER['PHP_AUTH_PW']);
  8. }
  9. return false;}
  10.  
  11. $auth = false;
  12. if (($loginInfo = getLoginInfo()) !== false) {
  13. $mysql_link = mysql_connect('localhost', 'nazwa', 'haslo') or die('Nie można nawiązać połączenia z bazą danych');
  14. mysql_select_db('tabela', $mysql_link) or die('Błąd podczas wybierania bazy danych "test"');
  15. $mysql_result = mysql_query('SELECT prawa FROM uzytkownicy WHERE login="'.addslashes($loginInfo[0]).'" AND haslo="'.addslashes($loginInfo[1]).'"', $mysql_link);
  16. //if (mysql_num_rows($mysql_result) == 1) { if (!mysql_result($mysql_result, 0, 0)) { $auth = true; } }
  17. if (mysql_num_rows($mysql_result) == 1) { $auth = true; }
  18.  
  19. }
  20. if (!$auth) {
  21. // Brak uprawnień
  22. header('WWW-Authenticate: Basic realm="Tajne"');
  23. header('HTTP/1.0 401 Unauthorized'); 
  24. echo 'Brak uprawnień do przeglądania strony'; 
  25. }
  26. // Dane dla zalogowanych użytkowników
  27. echo 'Witaj!';
  28. ?>

dzieki
dtb
a w jaki sposob chcesz sprawdzic czy przegladarka zostala wylaczona?
LBO
dtb hmmm, ale pomogles koledze...tongue.gif tu nie chodzi o to jak sprawdzic czy okno zostalo zamkniete (bo to był tylko rzucony pomysl), tylko jak wykasowac dane o loginie i hasle z cache przegladarki. Czy istnieje odpowiedni skrypt do takiej operacji? nie znam dzialania mechanizmu logowania przegladarek, ale mnie tez zainteresowal ten temat... umie ktos odpowiedziec na to pytanie?

edit:
Cytat
Both Netscape Navigator and Internet Explorer will clear the local browser window's authentication cache for the realm upon receiving a server response of 401. This can effectively "log out" a user, forcing them to re-enter their username and password. Some people use this to "time out" logins, or provide a "log-out" button.
z manualka wziete

ponizsza procedura tego dokona:
  1. <?php
  2.  
  3. header('WWW-Authenticate: Basic realm="This Realm"');
  4. header('HTTP/1.0 401 Unauthorized');
  5. // if a session was running, clear and destroy it
  6. ?>

niestety trzeba w wyskakujacym okienku wcisnac cancel/anuluj sad.gif by zadzialo.. i nie wiem jak to sie ma do przyciskow wstecz/back w przegladarkach i tu wyskakuje drugi problem:
Cytat
Testing with Lynx has shown that Lynx does not clear the authentication credentials with a 401 server response, so pressing back and then forward again will open the resource as long as the credential requirements haven't changed.



zrobilem krotki research, dlatego jezeli cos napisalem zle - to smialo porawiajcie.. wentualnie wlasne pomysly (zreszta to co napisalem tutaj to tylko manual i user notes).

druga sprawa... nie wiem po co sie bawic HTTP auth skoro mozna wlasny sytem logowania zrobic - ktory wyglada jak chcesz i dziala jak chcesz... i jeszcze jedno: wiem ze repozytorium PEAR chyba ma klase odpowiedzialna za HTTP auth.. ktos sie kiedys z nia spotkal?
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.