Профессиональное программирование на PHP

Страница 330 из 591


340 Глава 13 Аутентификация пользователей и безопасность сеансов

Если cookie-файла пользователя не существует или возникли проблемы при его проверке, то пользователь немедленно перенаправляется на страницу входа. В данном случае устанавливается $_ОЕТ-переменная originating_uri, для того чтобы вернуть пользователя на исходную страницу.

Страница login.php представляет собой простую форму, позволяющую пользователю ввести свое имя и пароль. Если процедура входа пройдена успешно, то создается cookie-файл сеанса и пользователь возвращается на страницу, с которой он был перенаправлен на страницу входа. Ниже приведен код страницы log in. php.

<?РНР

require_once 'Cookie.inc1; require_once 'Authentication.inc'; require_once 'Exception.inc'; $name = $_POST [' name' ] ,-$password = $_POST['password']; $uri = $_REQUEST['originating_uri']; if(!$uri) { $uri = '/';

}

try {

$userid = Authentication::check_credentials ($name, $password);

$cookie = new Cookie($userid);

$cookie->set () ;

header ("Location: $uri" ),-

exit;

}

catch (AuthException $e) { ?>

<html>

<title> Вход в систему </title> <body>

<form name=login method=post>

Имя пользователя: <input type="text" name="name"><br> Пароль: <input type= "password" name="name"xbr> <input type="hidden" name="originating_uri"

value="<?= $_REQUEST[1originating_uri'] ?> <input type=submit name=submitted value="Login"> </form> </body> </html> <?PHP }

?>

В качестве средства аутентификации пользователя по имени и паролю можно использовать функцию check_credentials, описанную в настоящей главе выше:

class Authentication { function check_credentials($name, $password) { $dbh = new DB_Mysql_Prod(); $cur = $dbh->prepare(" SELECT

userid FROM




  Hostland.Ru

 «Бесплатный хостинг Hostland.Su» © 2006