echo $e->getMessage();
echo $e->getLine();
exit('Ошибка поиска прав пользователя');
}
$row = $s->fetch();
if ($row[0] > 0)
{
return TRUE;
}
else
{
return FALSE;
}
}
}
/* Определяем id пользователя */
function userId() {
if (isset($_SESSION['login'])) {
try {
include $_SERVER['DOCUMENT_ROOT'].'/dsn.php';
$sql = 'SELECT id FROM users WHERE login = :login';
$s = $dsn->prepare($sql);
$s->bindValue(':login',$_SESSION['login']);
$s->execute();
$rowid=$s->fetch();
$_SESSION['userid'] = $rowid['id'];
}
catch (PDOException $e) {
echo $e->getMessage();
echo $e->getLine();
exit('Ошибка добавления пользователя');
}
}
}
Файл содержит функции для проверки данных пользователя.
Функция userIsLoggedIn()проверяет наличие и правильность данных переданных формой авторизации, активациию пользователя. В зависимости от результатов проверки этих данных устанавливает или уничтожает значения переменных сессии $_SESSION. Возвращает «true» или «false».
Для активации пользователя используется $activation. Пользователь считается активированным, если $activation = 1. Проверяем запросом к БД для указанного логина.
Функция databaseContainsAuthor() проверяет наличие в БД пользователя с переданной парой логин – пароль. Если пользователь существует возвращает «true» если нет «false».
Функция userHasRole($role)определяет уровень пользователя: «admin» или «user». В качестве параметра передается значение $role. Если $role равна значению «id» таблицы «role» установленному для данного логина при авторизации, то возвращает значение «true» иначе «false».
Функция userId() определяет «id» пользователя. Устанавливает значение переменной сессии $_SESSION['userid'].
9.1.3 Форма авторизации
Форма авторизации «form_login.php» служит для ввода логина и пароля пользователя.
Листинг 14. form_login.php Путь: /news/chat/admin/ form_login.php
<?php include_once $_SERVER['DOCUMENT_ROOT'].'/chat/admin/clean.php'; ?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="/chat/style.css" />
<title>Авторизация</title>