3KZO, А как же переход к объявлению функции, подсказки, без них никуда
ОБСУЖДЕНИЕ
ТОП | [PHP] Программируем на OOP
Мои небольшой класс для пользователя.
<?php
class User
{
private $dbhandler;
public function __construct ()
{
$this->dbhandler = dbhandler::getInstance ();
$this->authenticate ();
}
/**
* Проверка подлинности
*/
private function authenticate ()
{
if (isset ($_SESSION['is_logged']))
{
try {
$_SESSION['id'] = (int) $_SESSION['id'];
$_SESSION['password'] = addslashes (trim ($_SESSION['password']));
if (!isset ($_SESSION['password']))
throw new Exception ('Пароль не был указан.');
else {
$user = $this->findById ($_SESSION['id']);
// Проверка идентификатора
if (!isset ($user))
throw new Exception ('Пользователь с таким id (идентификатором) не найден.');
else {
// Проверка пароля
if ($user['password']!=$_SESSION['password'])
throw new Exception ('Пароль не прошел проверку.');
else {
// Проводимые манипуляции с пользователем
//
//
//
}
}
}
} catch (Exception $e) {
// Выход
$this->logout ();
//
//
//
}
}
}
/** Получить данные пользователя по id (идентификатору)
*
* @param int $id идентификатор
* @return array массив с данными
*/
public function findById ( $id )
{
$q = $this->dbhandler->prepare ('SELECT * FROM `user` WHERE (`id`=?)');
$q ->execute (array ($id));
if ($q->rowCount ()!=0) {
$user = $q->fetch ();
return $user;
}
}
/**
* Вход
*
* @param string $username имя пользователя
* @param string $password пароль
*/
function logIn ( $username, $password )
{
$q=$this->dbhandler->prepare ('SELECT `id`,`password` FROM `user` WHERE (`username`=?) AND (`password`=?)');
$q->execute (array ($username, $password));
if ($q->rowCount ()!=0) {
$user = $q->fetch ();
$_SESSION['id'] = $user['id'];
$_SESSION['password'] = $user['password'];
$_SESSION['is_logged'] = 1;
}
}
/**
* Выход
*/
function logout ()
{
unset ($_SESSION['id'], $_SESSION['password'], $_SESSION['is_logged']);
}
}
Страница 2 из 2 · Всего записей: 22