Вход Регистрация
Файл: siteadmin/modules/users/add.php
Строк: 174
<?php
defined
('_VALID') or die('Restricted Access!');

require 
$config['BASE_DIR']. '/classes/filter.class.php';
require 
$config['BASE_DIR']. '/classes/validation.class.php';
require 
$config['BASE_DIR']. '/classes/email.class.php';    

function 
generateRandomString($length 10) {
    
$characters '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    
$charactersLength strlen($characters);
    
$randomString '';
    for (
$i 0$i $length$i++) {
        
$randomString .= $characters[rand(0$charactersLength 1)];
    }
    return 
$randomString;
}

function 
process_thumb($src$dst_w$dst_h$keep_ar true) {

    
$image      = new VImageConv();
    list (
$width$height) = getimagesize($src);
    
    if(
$keep_ar) {
        
$aspect_src $width/$height;
        
$aspect_dst $dst_w/$dst_h;
        
        if (
$aspect_src $aspect_dst) {
            
$crop_w $width;        
            
$crop_h floor(($dst_h*$width)/$dst_w);
            
$crop_x 0;
            
$crop_y floor (($height $crop_h)/2);
        }
        else {
            
$crop_w floor(($dst_w*$height)/$dst_h);
            
$crop_h $height;
            
$crop_x floor (($width $crop_w)/2);
            
$crop_y 0;        
        }
        
$image->process($src$src'EXACT'$crop_w$crop_h);
        
$image->crop($crop_x$crop_y$crop_w$crop_htrue);
    }
    
$image->process($src$src'EXACT'$dst_w$dst_h);
    
$image->resize(truetrue);

}

$user = array('username' => '''email' => '''emailverified' => 'yes''account_status' => 'Active',
              
'fname' => '''lname' => '''gender' => 'Male');
if ( isset(
$_POST['add_user']) ) {
    
    
$avatar             false;
    
$filter             = new VFilter();
    
$valid              = new VValidation();
    
$username            $filter->get('username');
    
$email              $filter->get('email');
    
$fname              $filter->get('fname');
    
$lname              $filter->get('lname');
    
$gender             $filter->get('gender');
    
$relation           $filter->get('relation');
    
$password           $filter->get('password');
    
$password_confirm   $filter->get('password_confirm');
    
$account_status        $filter->get('account_status');
    
$emailverified      $filter->get('emailverified');    
    
    if ( 
$username == '' ) {        
        
$errors[] = 'Username field cannot be blank!';
        
$err['username'] = 1;
    } elseif ( !
$valid->username($username) ) {
        
$errors[] = 'Username field is not a valid username!';
        
$err['username'] = 1;        
    } elseif ( 
$valid->usernameExists($username) ) {
        
$errors[] = 'Username is already used by another user!';
        
$err['username'] = 1;        
    }
    
$user['username'] = $username;

    
    if ( 
$email == '' ) {
          
$errors[] = 'Email field cannot be blank!';
        
$err['email'] = 1;        
    } elseif ( !
$valid->email($email) ) {        
        
$errors[] = 'Email is not a valid email address!';
        
$err['email'] = 1;    
    } elseif ( 
$valid->emailExists($email) ) {
        
$errors[] = 'Email is already used by another user!';
        
$err['email'] = 1;            
    }
    
$user['email'] = $email;

    
    if ( 
$password != '' && $password != $password_confirm ) {
          
$errors[] = 'Password and confirmation password are not the same!';
        
$err['password'] = 1;
        
$err['password_confirm'] = 1;        
    }
    
    
$user['fname']            = $fname;
    
$user['lname']            = $lname;
    
$user['gender']            = $gender;
    
$user['account_status']    = $account_status;
    
$user['emailverified']  = $emailverified;
    
    if ( !
$errors ) {

        if ( 
$_FILES['user_thumb']['tmp_name'] != '' ) {
            
$avatar true;
            if ( !
is_uploaded_file($_FILES['user_thumb']['tmp_name']) ) {
                
$errors[]   = 'User avatar is not a valid uploaded file!';
            } else {
                
$tmb_filename           substr($_FILES['user_thumb']['name'], strrpos($_FILES['user_thumb']['name'], DIRECTORY_SEPARATOR)+1);
                
$tmb_extension          strtolower(substr($tmb_filenamestrrpos($tmb_filename'.')+1));
                
$tmb_allowed_extensions explode(','$config['image_allowed_extensions']);
                if ( !
in_array($tmb_extension$tmb_allowed_extensions) ) {
                    
$errors[]           = 'Invalid avatar image extension!';
                }
            }
        }
        
        if (
$password == '') {
            
$password_clear     generateRandomString();
        } else {
            
$password_clear $password;
        }
        
$password           md5($password_clear);            

        
$smarty->assign('username'$username);
        
$smarty->assign('password'$password_clear);        
        
        
$sql    "INSERT INTO signup SET username = " .$conn->qStr($username). ", email = " .$conn->qStr($email). ",
                                          pwd = '" 
.$password"', fname = " .$conn->qStr($fname). ",
                                          lname = " 
.$conn->qStr($lname). ", gender = " .$conn->qStr($gender). ", 
                                          emailverified = " 
.$conn->qStr($emailverified). ", account_status = " .$conn->qStr($account_status). ", 
                                          addtime = '" 
.time(). "', logintime = '" .time(). "'";
        
$conn->execute($sql);

        
$uid            $conn->insert_Id();
        
        
$sql            "INSERT INTO users_prefs (UID) VALUES (" .$uid")";
        
$conn->execute($sql);
        
$sql            "INSERT INTO users_online (UID, online) VALUES (" .$uid", " .time(). ")";
        
$conn->execute($sql);        

        if (
$avatar) {
            
$orig    $config['BASE_DIR']. '/media/users/orig/' .$uid'.jpg';
            if ( !
move_uploaded_file($_FILES['user_thumb']['tmp_name'], $orig) ) {
                
$errors[] = 'Failed to move uploaded avatar file!';
            } else {
                require 
$config['BASE_DIR']. '/classes/image.class.php';                
                
$dst    $config['BASE_DIR']. '/media/users/' .$uid'.jpg';
                if(
copy($orig$dst)) {
                    
process_thumb($dst500500);
                    if ( 
file_exists($dst) && filesize($dst) > 100 ) {
                        
$sql    "UPDATE signup SET photo = '" .$uid".jpg' WHERE UID = " .$uid" LIMIT 1";
                        
$conn->execute($sql);
                    }
                }                
            }
        }    
        
        
$sql            "SELECT email_subject, email_path FROM emailinfo
                           WHERE email_id = 'welcome' LIMIT 1"
;
        
$rs             $conn->execute($sql);        
        
$email_subject  str_replace('{$site_title}'$config['site_title'], $rs->fields['email_subject']);
        
$email_path     $rs->fields['email_path'];
        
$body           $smarty->fetch($config['BASE_DIR'].'/templates/'.$email_path);        

        
$mail           = new VMail();
        
$mail->setNoReply();        
        
$mail->Subject  $email_subject;
        
$mail->AltBody  $body;
        
$mail->Body     nl2br($body);
        
$mail->AddAddress($email);
        
$mail->Send();
            
        
$messages[] = 'User was successfully added!';
        
    }
}

$smarty->assign('user'$user);
?>
Онлайн: 1
Реклама