Файл: adultscript-2.0.3-pro/files/modules/user/components/login.php
Строк: 95
<?php
defined('_VALID') or die('Restricted Access!');
class VComponent_user_login extends VModule_user
{
public function __construct()
{
parent::__construct();
}
public function render()
{
$db = VF::factory('database');
$errors = array();
$messages = array();
if (isset($_SESSION['message'])) {
$messages[] = $_SESSION['message'];
unset($_SESSION['message']);
} else {
if (VAuth::loggedin()) {
$_SESSION['message'] = __('login-already');
VF::redirect(BASE_URL);
}
}
$cookie = NULL;
$username = NULL;
$password = NULL;
if (isset($_COOKIE['username']) && isset($_COOKIE['password'])) {
$username = VCookie::get('username');
$password = VCookie::get('password');
$sql = "MD5(u.username) = '".$db->escape($username)."'";
$cookie = TRUE;
}
if (isset($_POST['submit_login']) OR isset($cookie)) {
if (isset($_POST['submit_login'])) {
$filter = VF::factory('filter');
$username = $filter->get('login_username');
$password = $filter->get('login_password');
$remember = $filter->get('remember');
if ($username == '' OR $password == '') {
$errors[] = __('login-empty');
}
$sql = "u.username = '".$db->escape($username)."'";
}
if (!$errors) {
$db->query("SELECT u.user_id, u.group_id, u.username, u.password, u.email, u.name, u.gender, u.birth_date,
u.country, u.city, u.zip, u.avatar, u.login_date, u.verified, u.status,
p.start_date, p.end_date, p.credit, p.status as pstatus
FROM #__user AS u
LEFT JOIN #__user_premium AS p ON (p.user_id = u.user_id)
WHERE ".$sql."
LIMIT 1");
if ($db->affected_rows()) {
$user = $db->fetch_assoc();
$passed = FALSE;
if (isset($_POST['submit_login']) &&
VHash::check($password, $user['password'])) {
$passed = TRUE;
} elseif (isset($cookie) && $password == $user['password']) {
$passed = TRUE;
}
if ($passed === TRUE) {
$status = (int) $user['status'];
if ($status === 0) {
$errors[] = __('account-suspended');
} elseif ($status === 2) {
$errors[] = __('account-approve');
} elseif ($user['verified'] == '0' && $this->ucfg['user_confirm']) {
$errors[] = __('account-confirm');
} else {
$date = date('Y-m-d h:i:s');
$time = time();
$user_id = (int) $user['user_id'];
$_SESSION['user_id'] = (int) $user_id;
$_SESSION['group_id'] = (int) $user['group_id'];
$_SESSION['username'] = $user['username'];
$_SESSION['email'] = $user['email'];
$_SESSION['name'] = $user['name'];
$_SESSION['gender'] = $user['gender'];
$_SESSION['birth_date'] = $user['birth_date'];
$_SESSION['avatar'] = $user['avatar'];
$_SESSION['country'] = $user['country'];
$_SESSION['city'] = $user['city'];
$_SESSION['zip'] = $user['zip'];
$_SESSION['login_date'] = $user['login_date'];
$_SESSION['verified'] = (int) $user['verified'];
$_SESSION['status'] = $status;
$_SESSION['credit'] = $user['credit'];
$_SESSION['start_date'] = $user['start_date'];
$_SESSION['end_date'] = $user['end_date'];
$_SESSION['message'] = __('welcome').' '.$user['username'].'!';
if (VModule::enabled('premium')) {
$system = VF::cfg_item('module.payment.system');
if ($system == 'subscription') {
$end_time = strtotime($user['end_date']);
if ($end_time < $time OR empty($user['pstatus'])) {
$group_id = VAuth::get_group_id('Registered');
$db->query("UPDATE #__user
SET group_id = ".$group_id."
WHERE user_id = ".$user_id."
LIMIT 1");
$_SESSION['group_id'] = $group_id;
}
$ip = VServer::ip(true);
$db->query("SELECT user_id
FROM #__user_premium_ips
WHERE user_id = ".(int) $user_id."
AND ip = ".$ip."
LIMIT 1");
if (!$db->affected_rows()) {
$db->query("INSERT INTO #__user_premium_ips
SET user_id = ".(int) $user_id.",
ip = ".$ip);
}
}
}
if ($this->ucfg['user_points'] == '1') {
VHelper::load('module.user.points');
VHelper_user_points::add((int) $_SESSION['user_id'], 'login');
}
if (isset($remember) && $remember == 'on') {
VCookie::set('username', md5($user['username']), (30*86400));
VCookie::set('password', $user['password'], (30*86400));
}
$db->query("UPDATE #__user
SET login_ip = ".VServer::ip(true).",
login_date = '".$date."',
online = ".$time."
WHERE user_id = ".$_SESSION['user_id']."
LIMIT 1");
$URL = BASE_URL.'/user/dashboard/';
if (isset($_SESSION['redirect'])) {
$URL = $_SESSION['redirect'];
}
$_SESSION['message'] = __('welcome').' '.$user['username'].'!';
VF::redirect($URL);
}
} else {
$errors[] = __('login-failed');
}
} else {
$errors[] = __('login-failed');
}
}
}
$tpl = VF::factory('template');
$tpl->menu = 'home';
$tpl->errors = $errors;
$tpl->messages = $messages;
$tpl->canonical = BASE_URL.'/user/login/';
$tpl->canonicalm = MOBILE_URL.'/user/login/';
$tpl->load(array('header', 'user_login', 'footer'));
$tpl->display();
}
}