Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Http Authorization Request && Mysql?
Forum PHP.pl > Forum > Przedszkole
krysk
Czy ktoś kiedyś próbował wywołać okienko http-request z poziomu php? Chciałbym przy jego pomocy przeprowadzić logowanie, a dane trzymać w bazie mySQL. Dodatowo wspaniale by było jeśli by można było się wylogować.
hwao
http://webcity.pl/webcity/artykuly.php/t/32
Prosze to jest link tam masz ladnie napisane jak smile.gif
Tylko zamiast $PHP_AUTH_USER musisz dac $_SERVER['PHP_AUTH_USER'] i $PHP_AUTH_PW zamienic na $_SERVER['PHP_AUTH_PW']
Co do wylogowywania to nie wiem smile.gif
Moze dane trzymaj w sessji/cookie i jak wylogujesz sie to niszczysz sesje i wtedy nie da sie zalogowac ( dane czyli $_SERVER['PHP_AUTH_USER'] i $_SERVER['PHP_AUTH_PW'] )
krysk
Pozmieniałem jak mówiłeś, ale ciągle nie wyskakuje mi owe okienko. A wg. opisu powinno wyskoczyć.

  1. <?php
  2.  if (!isset($_SERVER['PHP_AUTH_USER'])) {
  3. header('WWW-Authenticate: Basic realm=\"Tajne miejsce\"');
  4. header('HTTP/1.0 401 Unauthorized');
  5. echo 'Brak dostępu.';
  6.  } else if (isset($_SERVER['PHP_AUTH_USER'])) {
  7. if (($_SERVER['PHP_AUTH_USER'] != &#092;"admin\") || ($_SERVER['PHP_AUTH_PW'] != \"abc123\")) {
  8.  header('WWW-Authenticate: Basic realm=\"Tajne miejsce\"');
  9.  header('HTTP/1.0 401 Unauthorized');
  10.  echo 'Brak dostępu.';
  11.  exit;
  12. } else {
  13.  echo &#092;"<P>Zalogowałeś się!</p>\";
  14. }
  15.  }
  16. ?>
Chewolf
  1. <?php
  2.  if (!isset($_SERVER['PHP_AUTH_USER'])) {
  3. header('WWW-Authenticate: Basic realm=\"Administracja\"');
  4. header('HTTP/1.0 401 Unauthorized');
  5. echo 'Brak dostępu.';
  6.  } else if (isset($_SERVER['PHP_AUTH_USER'])) {
  7. if (($_SERVER['PHP_AUTH_USER'] != &#092;"nick\") || ($_SERVER['PHP_AUTH_PW'] != \"haslo\")) {
  8.  header('WWW-Authenticate: Basic realm=\"Administracja\"');
  9.  header('HTTP/1.0 401 Unauthorized');
  10.  echo 'Brak dostępu.';
  11.  exit;
  12. }
  13. else{ echo 'zalogowany'; }}
  14. ?>

Wylogowywanie, przykład :
  1. <?
  2. if($_GET['exit']!=''){
  3. unset ($_SERVER['PHP_AUTH_USER']);
  4. header (&#092;"location: $_SERVER['PHP_SELF]\");
  5. }
  6. ?>

link : ?exit=yes
stoprocent
Rozwiazanie z wykorzystaniem kodu m5910

  1. <?php
  2.  if (!isset($_SERVER['PHP_AUTH_USER'])) {
  3. header('WWW-Authenticate: Basic realm=\"Administracja\"');
  4. header('HTTP/1.0 401 Unauthorized');
  5. echo 'Brak dostępu.';
  6.  } else if (isset($_SERVER['PHP_AUTH_USER'])) {
  7. $wyszukaj = mysql_query(&#092;"SELECT * FROM users WHERE login='\".$_SERVER['PHP_AUTH_USER'].\"' AND pass=password('\".$_SERVER['PHP_AUTH_PW'].\"')\"); 
  8. $wynikow = mysql_num_rows($wyszukaj); 
  9. if($wynikow != 1) { 
  10. header('WWW-Authenticate: Basic realm=\"Administracja\"');
  11.  header('HTTP/1.0 401 Unauthorized');
  12.  echo 'Brak dostępu.';
  13.  exit;
  14. }
  15. else{ echo 'zalogowany'; }}
  16. ?>


A co do wylogowania to byl juz kiedys watek na forum i z tego co pamietam to nie da sie tak wylogowac , PHP_AUTH_x sa wazne do zamkniecia przegladarki . Zaznaczam ze moge sie mylic tongue.gif

----------
Posty nie na temat usunołem
hwao
krysk
Kurcze, chłopaki ja już nie wiem gdzie robię błąd sad.gif Wklejam Wasz kod i dalej nie działa. Może muszę coś zmienić w php.ini? Pojawia mi się ciągle komunikat z 1 waunku [!isset($_SERVER['PHP_AUTH_USER'])] sad.gif
stoprocent
Aprzeanalizowales kod questionmark.gif wszystkoie & # 3 3 ; pozamieniaj na wykrzykniki zaloz sobie tabele users z polami login i pass , pass wpisujac kodujac funkjac password , no i przed logowaniem musisz sie polaczyc z baza. to chyba wszystko .
krysk
Oczywiście, że tak zrobiłem smile.gif) Inaczej przecież bym nie zawracał Wam czterech liter.

Dla mnie w tym przykładzie nie musi być mySQL`a - sam sobie dopiszę. Chodzi mi tylko o część logiczną, która wyrzuci owe okienko i sprawdzi dane.

upd.:
Hmm... na jednym serwerze działa, a na innym nie - jaka może być tego przyczyna?
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.