Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Problem z logowaniem co jest nie tak
Forum PHP.pl > Forum > Przedszkole
frasek
Mam malutki problemik z moim skryptem php nie wiem dlaczego nie dziala poprawnie tzn zawsze pojawia mi sie okienko do logowania. Chcac sobie urozmaicic zycie napisalem taki oto skrypt, chcialem wykorzystac do logowania okienko a nie zwykly formularz, niestety jakos tak wyszlo ze skrypt nie dziala i za kazdym razem pojawia sie to okienko i nigdy nie znika oto tresc pliku function.php
  1. <?php
  2. function poczatek()
  3. {
  4. $login = $SERVER['PHP_AUTH_USER'];
  5. $haslo = $_SERVER['PHP_AUTH_PW'];
  6.  
  7. if(!isset($login))
  8. {
  9. header('WWW-Authenticate: Basic Realm="Private"');
  10. header('HTTP/1.1 401 Unauthorized');
  11. }
  12. else
  13. {
  14. $status = sprawdzenie($login, $haslo);
  15. if(!$status)
  16. {
  17.  header('WWW-Authenticate: Basic Realm="Private"');
  18.  header('HTTP/1.1 401 Unauthorized');
  19. }
  20. else
  21. {
  22.  zahaszowanie();
  23. }
  24. }
  25. }
  26.  
  27.  
  28.  
  29. function sprawdzenie($login, $haslo)
  30. {
  31. $sPatter = "^[0-9a-z_-]+$";
  32. /*if(!eregi($sPattern,$login) && !eregi($sPattern,$haslo))
  33. {
  34.  return(0);
  35. }*/
  36. $fp = @fopen("./passwd.d", "r")
  37.  or die("Nie można otworzyć pliku");
  38. while (!@feof($fp))
  39. {
  40. $sLine = @fgets($fp, 100);
  41. $aData = explode (":", $sLine);
  42. $aData[0] = trim($aData[0]);
  43. $aData[1] = trim($aData[1]);
  44. if($login == $aData[0] && sha1($haslo) == $aData[1])
  45. {
  46.  @fclose($fp);
  47.  return (1);
  48. }
  49. else
  50. {
  51.  @fclose($fp);
  52.  return(0);
  53. }
  54. }
  55. }
  56. ?>

a oto plik index.php, jakby sie komus pisac nie chcialo podaje wszystko.
  1. <?php
  2. include("function.php");
  3. $result=poczatek();
  4. if ($result==1)
  5. print("Zalogowales sie do systemu");
  6. else print("Cos jest nie tak");
  7. //zahaszowanie();
  8. ?>

Nie wkleilem tutaj tylko funckji haszujacej bo dziala poprawnie. Dodam tylko ze funkcja sprawdzanie rowniez dziala poprawnie, wiec problem musi tkwic w funkcji poczatek(). Jakby ktos mial pomysl dlaczego to tak dziwnie dziala to z gory dziekuje za pomoc.
Kicok
Zamień:
Kod
$login = $SERVER['PHP_AUTH_USER'];

na:
Kod
$login = $_SERVER['PHP_AUTH_USER'];
frasek
Ale ze mnie slepiec, dziala dzieki smile.gif.
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.