CompZone.Org :: Artykuły :: PHP
Która technologia najbardziej Cię interesuje?
PHP
ASP
AJAX
SQL
JavaScript
Inna
Sonda Wyniki

Add to Google

Autoryzacja użytkownika w PHP

W tym artykule przedstawię dwa sposoby uwierzytelniania osoby logującej.

Sposób I - Porównanie haseł

Sposób ukazany tutaj jest trywialny i raczej nie zaleca się stosowania go. Jednak może się komuś przydać.

Co to robi?

Skrypt pobiera wpisane w formularzu hasło i porównuje z hasłem w pliku, jeśli hasła się zgadzają użytkownik otrzymuje dostęp do strony w przeciwnym wypadku wyświetla mu się stosowny komunikat.

login.html

 <form action="login.php" method="post">
<input type="password" name="pass" size="20">
<input type="submit" value="LogIn">
</form>

Formularz w którym wpisujemy hasło aby się zalogować.

config.inc.php

 <?
$haslo = 'haslo@bcb'; //haslo admina
?>

Plik ze zdefiniowanym hasłem admina. Najlepiej trzymać takie pliki poza drzewem katalogów.

login.php

 <?

//krótkie nazwy zmiennych
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
$pass = $_POST['pass'];

//pobieramy plik z haslem admina spoza drzewa katalogu
include "$DOCUMENT_ROOT/../login_php/config.inc.php";

//sprawdzenie czy haslo zostało wpisane
if(isset($pass)){

//sprawdzenie czy haslo wpisane zgadza się z hasłem w pliku
if($pass == $haslo){

//jeśli się zgadza wyświetlamy część dla admina
echo 'Witaj adminie, panel stoi przed tobą otworem';

}
else{

//jeśli się nie zgadza wyświetlamy stosowny komunikat
echo 'Nie znasz hasła ?<br />Admin zawsze zna poprawne hasło, odejdź stąd!';

}

}
else{

//wiadomość jeśli hasło nie zostało wpisane
echo 'Nie wpisałeś hasła!!';

}

?>

Komentarze wszystko wyjaśniają przypomnę tylko co robi funkcja isset - sprawdza istnienie zmiennej.

Sposób II - Autoryzacja HTTP

Ten sposób autoryzacji jest dużo lepszy, zatem prześledźmy kod tegoż skryptu.

config.inc.php

 <?

$login = 'bcb'; //login admina
$haslo = 'haslo@bcb'; //haslo admina

?>

Plik z loginem i hasłem admina.

login2.php

 <?

//krótkie nazwy zmiennych
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
$PHP_AUTH_USER = $_SERVER['PHP_AUTH_USER'];
$PHP_AUTH_PW = $_SERVER['PHP_AUTH_PW'];

//pobieramy plik z haslem admina spoza drzewa katalogu
include "$DOCUMENT_ROOT/../login_php/config.inc.php";

//sprawdzenie loginu i hasla
if ($PHP_AUTH_USER != $login || $PHP_AUTH_PW != $haslo){

//jeśli się nie zgadza ponawiamy probe logowania
header('WWW-Authenticate: Basic realm="Podaj haslo"');
header('HTTP/1.0 401 Unauthorized');
echo 'Nie znasz hasła, błąd logowania!';

}
else{

//jeśli się zgadza wyświetlamy część dla admina
echo 'Zalogowany witamy w panelu admina!';

}

?>

Kod tegoż skryptu jest równie prosty wytłumaczyłem go w komentarzach :) lepiej nie potrafię.

jedre @ 11-07-2006 22:57
Brak komentarzy...
Copyright © 2005-2006 Compzone.Org. Kopiowanie i wykorzystywanie materiałów zawartych na tej stronie bez zgody autora zabronione!