Вход Регистрация
Файл: 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();
    }
}
Онлайн: 0
Реклама