Всем привет, не падаем в обмарок) Оптимизаторы, советуем, указываем на ошибки))
P.S выё.юсь :)
P.S выё.юсь :)
<?php
class user {
public static
$data = array (),
$messages = array ();
private
$DBHandle;
public function isLoggedIn() {
$this->DBHandle = new DBHandle();
if ($_COOKIE['user_data']) {
// cookies
$data = unserialize(
stripslashes($_COOKIE['user_data'])
);
$query = $this->DBHandle->query("SELECT * FROM `user` WHERE (`id`=?) AND (`password`=?)", array (intval($data['id']), base64_decode($data['password'])));
if ($query->rowCount()!=0) {
self::$data = $query->fetch();
if (self::$data['hash'] == $data['hash'])
{
return true;
}
}
}
}
public function login($email, $password) {
if (!self::isLoggedIn()) {
$query = $this->DBHandle->query("SELECT `id`, `email`, `password`, `hash` FROM `user` WHERE (`email`=?) AND (`password`=?)", array ($email, $password));
if ($query->rowCount()!=0) {
//
$data = $query->fetch();
// hash
$hash = '';
//
$expiry = time()+(86400*365);
$this->DBHandle->query("UPDATE `user` SET `hash`=? WHERE (`id`=?)", array ($hash, $data['id']));
setcookie('user_data', serialize(
array (
'id' => $data['id'],
'password' => base64_encode($data['password']),
'hash' => $hash
)
),
$expiry, '/');
return true;
}
else
self::$messages[] = 'Ошибочные данные';
}
else
self::$messages[] = 'Вы уже авторизированы!';
}
public function logout() {
if (self::isLoggedIn()) {
setcookie('user_data', null, 0, '/');
return true;
}
else
self::$messages[] = 'Вы не авторизированы';
}
}