Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: uwierzytelnianie http
Forum PHP.pl > Forum > Przedszkole
a79rtur
przyklad z ksiazki. po zakomentowaniu pierwszych zmiennych jak widac w kodzie, skrypt nie dziala tak jak trzeba,. poprostu nie dziala uwierzytelnianie http. pokazuje sie monit o podanie usera i hasla ale jest zawsze zle. w innym skrypcie tez to nie działało.
co jest grane ?

  1. <?php
  2. //$PHP_AUTH_USER=\"ryan\";
  3. //$PHP_AUTH_PW=\"dentist\";
  4. $aDoAuth = True;
  5. if ( isset( $PHP_AUTH_USER ) )
  6. {
  7. if ( ( $PHP_AUTH_USER == &#092;"ryan\" ) && 
  8.  ( $PHP_AUTH_PW == &#092;"dentist\" ) )
  9. {
  10. // prawidłowa nazwa użytkownika i hasło
  11. $aDoAuth = False;
  12. }
  13. }
  14. if( $aDoAuth == True ) 
  15. {
  16. Header( &#092;"WWW-Authenticate: Basic realm=\"My Realm\"\" );
  17. Header( &#092;"HTTP/1.0 401 Unauthorized\" );
  18. echo &#092;"Nie udało się zalogowanie do systemu.n\";
  19. }
  20. ?>


czy to jest dobry sposób autoryzacji ? jakie są lepsze ?
j00seph
a co to jest $PHP_AUTH_USER questionmark.gif i skąd się to bierze ?, skąd to pobiera wartość questionmark.gif

ja robie uwierzytelnianie podobnie jak ty ( z tym ze dane do autoryzacji przesyłam przez formularz (POST) ) ,a potem mam kontrole sesji (wygodne to )

http://pl2.php.net/manual/pl/ref.session.php

A co do twojego kodu - to moze tak :
Formularz WWW
  1. <form name=costam method=post action auth.php>
  2. Login:<input name=user> Pass:<imput name=pass> <input type=submit value=loguj>


a skrypt do logowania (auth.php)- na bazie twojego
  1. <?php
  2. //$USER=$HTTP_POST_VARS[\"user\"];
  3. //$PW=$HTTP_POST_VARS[\"pass\"];
  4. $aDoAuth = True;
  5. if ( isset( $USER ) )
  6. {
  7. if ( ( $USER == &#092;"ryan\" ) && 
  8.  ( $PW == &#092;"dentist\" ) )
  9. {
  10. // prawidłowa nazwa użytkownika i hasło
  11. $aDoAuth = False;
  12. }
  13. }
  14. if( $aDoAuth == True ) 
  15. {
  16. Header( &#092;"WWW-Authenticate: Basic realm=\"My Realm\"\" );
  17. Header( &#092;"HTTP/1.0 401 Unauthorized\" );
  18. echo &#092;"Nie udało się zalogowanie do systemu.n\";
  19. }
  20. ?>


i teoretycznie powinno zadzaialac
sf
http://pl.php.net/features.http-auth
a79rtur
dzieki działa smile.gif

j00seph: co miales na mysli pisząc "...,a potem mam kontrole sesji (wygodne to )" .chodzilo ci o to ze są zmienne sesyjne, w ktorych są jakby co dane usera i skrypt jak je potrzebuje to sobie pobierze ?
j00seph
Dokładnie o to chodzi
dajesz nazwe zalogowanego usera do zmiennej sesyjnej, dzięki temu zyskujesz możliwość kontroli na innych stronach/podstronach
Prosty przykład :
Działasz na php+mysql masz skrypt do wywalania rekordów z bazy danych, nazwijmy ten skrypt usun.php ,
a wywołuje się go z formularza, lub normalnie jako linka - podając jako parametr id nr. rekordu który chcesz usunąć z bazy
  1. <?php
  2. echo('<form name=usuwanie action=usun.php?id='.$do_usuniecia.'>'); 
  3.  
  4. ?>
lub
  1. <?php
  2. echo('<a href=usun.php?id='.$do_usuniecia.'>Usun ten rekord</a>'); 
  3. ?>


To w skrypcie tym(lub przed jego wywolaniem) musisz sprawdzac czy uzytkownik jest zalogowany, i tylko zalogowany user moze odpalic skrypta, inaczej każdy burak co ci wejdzie na stronke mógłby ( wywołując z paska adresu usun.php?id= ) pousuwać ci dane - i po to właśnie jest sesja 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.