Вход Регистрация
Файл: adultscript-2.0.3-pro/files/modules/user/components/confirm.php
Строк: 57
<?php
defined
('_VALID') or die('Restricted Access!');
class 
VComponent_user_confirm extends VModule_user
{
    public function 
__construct()
    {
        
parent::__construct();
    }
    
    public function 
render()
    {
        
$filter    VF::factory('filter');
        
        
$errors        = array();
        
$messages    = array();
        
        if (isset(
$_GET['id']) && isset($_GET['code'])) {
            
$id        = (int) trim($_GET['id']);
            
$code    $filter->get('code''STRING''GET');
            
            
$this->db->query("SELECT status, verified, email
                        FROM #__user
                        WHERE user_id = "
.$id."
                        LIMIT 1"
);
            if (
$this->db->affected_rows()) {
                
$user $this->db->fetch_assoc();
                if (
$user['status'] == '0') {
                    
$errors[]    = __('account-suspended');
                } elseif (
$user['status'] == '2') {
                    
$errors[]    = __('account-approve');
                } elseif (
$user['verified'] == '1') {
                    
$errors[]    = __('account-verified');
                } else {
                    
$this->db->query("SELECT expire
                                  FROM #__user_verification
                                  WHERE user_id = "
.$id."
                                  AND code = '"
.$this->db->escape($code)."'
                                  LIMIT 1"
);
                    if (
$this->db->affected_rows()) {
                        
$expire strtotime($this->db->fetch_field('expire'));
                        
$delay    = ((int) VCfg::get('user.verify_expire') * 24) * 3600;
                        if ((
$expire+$delay) < time()) {
                            
$errors[]    = __('confirm-expired');
                        } else {
                            
$this->db->query("UPDATE #__user
                                        SET verified = '1'
                                        WHERE user_id = "
.$id."
                                        LIMIT 1"
);
                            if (
VAuth::loggedin() && ((int)$_SESSION['user_id'] === $id)) {
                                
$_SESSION['verified'] = '1';
                            }
                            
                            
$messages[] = __('confirm-success');;
                        }
                    } else {
                        
$errors[] = __('confirm-invalid');
                    }
                }
            } else {
                
$errors[] = __('user-invalid');
            }
        }
        
        if (isset(
$_POST['submit_confirm'])) {
            
$email $filter->get('email');
            
            if (
$email == '') {
                
$errors[]     = __('email-empty');
            } elseif (!
VValid::email($email)) {
                
$errors[]    = __('email-invalid');
            } else {
                
$this->db->query("SELECT user_id, username, status
                            FROM #__user
                            WHERE email = '"
.$this->db->escape($email)."'
                            LIMIT 1"
);
                if (
$this->db->affected_rows()) {
                    
$user    $this->db->fetch_assoc();
                    if (
$user['status'] == '0') {
                        
$errors[]    = __('account-suspended');
                    } elseif (
$user['status'] == '2') {
                        
$errors[]    = __('account-approve');
                    }
                } else {
                    
$errors[]    = __('confirm-missing');
                }
            }
            
            if (!
$errors) {
                
$user_id     = (int) $user['user_id'];
                
$username    $user['username'];
                
$code        VText::random('alnum'16);
                
                
$this->db->query("DELETE FROM #__user_verification
                            WHERE user_id = "
.$user_id);
                
                
$this->db->query("INSERT INTO #__user_verification
                            SET user_id = "
.$user_id.",
                                code = '"
.$code."',
                                expire = '"
.date('Y-m-d')."'");
                
                
$mail         VF::factory('email');
                
$link       BASE_URL.'/user/confirm/?id='.$user_id.'&amp;code='.$code;
                
$search     = array('[#SITE_NAME#]''[#BASE_URL#]''[#USERNAME#]''[#CONFIRM_URL#]''[#NOTIFS_URL#]');
                
$replace    = array(VF::cfg_item('site_name'), BASE_URL$username$linkBASE_URL.'/user/notifications/');
                
$mail->predefined('user-verify'$email$search$replace'noreply');
                
                
$messages[] = __('confirm-sent');
            }
        }
        
        
$this->tpl->menu            'home';
        
$this->tpl->meta_title    __('confirm-meta-title');
        
$this->tpl->errors        $errors;
        
$this->tpl->messages        $messages;
        
$this->tpl->load(array('header''user_confirm''footer'));
        
$this->tpl->display();
    }
}
Онлайн: 3
Реклама