Вход Регистрация
Файл: pages/reg.php
Строк: 226
<?php

$show_all 
true;
only_unreg();

if (
$set['reg_select'] == 'close') {
    
add_error(__('Регистрация временно приостановлена')); 
}

do_event('ds_reg_init'); 

/**
* Подтверждение E-Mail по ссылке
*/ 
if (isset($_GET['id']) && isset($_GET['hash'])) {
    
$hash $_GET['hash']; 
    
$ank get_user($_GET['id']);

    if (!empty(
$ank['activation']) && md5($ank['activation'] . ':' SALT_FORMS_FIELDS) === $_GET['hash']) {
        
db::update('user', array('activation' => null), array('id' => $ank['id'])); 
        
delete_user_meta($user['id'], '__reg_sent_email'); 

        
$_SESSION['message'] = __('Вы успешно подтвердили свой E-Mail');
        
$redirect_url use_filters('ds_email_confirm_redirect'get_user_url($ank)); 

        
ds_redirect($redirect_url);
    } else {
        
add_error(__('Ошибка при подтверждении E-Mail')); 
    }
}

if (isset(
$_POST['activate_resent']) && isset($_SESSION['id_user'])) {
    
$ank get_user($_SESSION['id_user']); 
    
$time_sent get_user_meta($ank['id'], '__reg_sent_email'); 
    
$time_resent = (60 1) - (time() - $time_sent); 

    if (
$time_resent 0) {
        
add_error(__('Время для повторной отправки кода подтверждения, еще не наступило.')); 
    }

    if (!
is_errors()) {
        
$content __('Регистрация на сайте %s (повторная отправка кода)'$_SERVER['HTTP_HOST'], get_current_url()) . "nn"
        
$content .= __('Код подтверждения: ' $ank['activation']) . "nn"
        
$content .= __('Для завершения регистрации введите код, или перейдите по этой ссылке: %s'get_query_url(array(
            
'id' => $ank['id'], 
            
'hash' => md5($ank['activation'] . ':' SALT_FORMS_FIELDS), 
        ))); 

        
$mail_title use_filters('ds_reg_mail_title'__('Регистрация на %s'$_SERVER['HTTP_HOST'])); 
        
$mail_message use_filters('ds_reg_mail_message'$content); 
        
$mail_headers use_filters('ds_reg_mail_headers', array()); 
        
$mail_attachments use_filters('ds_reg_mail_attachments', array());  

        
ds_mail($ank['email'], $mail_title$mail_message$mail_headers$mail_attachments);
        
update_user_meta($ank['id'], '__reg_sent_email'time()); 
        
$_SESSION['message'] = __('На ваш E-Mail %s был повторно отправлен код, для подтверждения регистрации.'$ank['email']); 
        
ds_redirect('?action=activation'); 
    }
}

if (isset(
$_POST['activate_submit'])) {
    
$ank get_user($_SESSION['id_user']); 

    if (!empty(
$ank['id'])) {
        
$time_sent get_user_meta($ank['id'], '__reg_sent_email'); 

        if (
$_POST['hash'] != md5($time_sent ':' SALT_FORMS_FIELDS)) {
            
add_error(__('Подозрительный запрос, повторите попытку позже.')); 
        } elseif (
$ank['activation'] != trim($_POST['activation'])) {
            
add_error(__('Неверный код активации')); 
        }

        if (!
is_errors()) {
            
delete_user_meta($ank['id'], '__reg_sent_email'); 
            
db::update('user', array(
                
'activation' => ''
            ), array(
                
'id' => $ank['id'],
            )); 

            
$_SESSION['message'] = __('Вы успешно активировали свой аккаунт'); 
            
ds_redirect(get_user_url($ank)); 
        }
    }
}

$reg = array(); 
if (isset(
$_POST['reg'])) {
    
$reg use_filters('ds_user_reg_data', array(
        
'nick' => trim($_POST['login']), 
        
'email' => trim($_POST['email']), 
        
'pol' => ($_POST['gender'] == 0), 
        
'password' => trim($_POST['password']), 
        
'confirm' => $_POST['confirm'], 
    ), 
$_POST); 

    if (
strlen2($reg['nick']) < 3) {
        
add_error(__('Логин слишком короткий')); 
    } elseif (
strlen2($reg['nick']) > 32) {
        
add_error(__('Логин слишком длинный')); 
    } elseif (!
validate_login($reg['nick'])) {
        
add_error(__('Неправильный формат логина')); 
    } elseif (
user_exists($reg['nick']) !== false) {
        
add_error(__('Логин %s уже используется'text($reg['nick']))); 
    }

    if (empty(
$reg['email'])) {
        
add_error(__('Вы не указали E-Mail адрес')); 
    } elseif (!
validate_email($reg['email'])) {
        
add_error(__('Проверьте правильность E-Mail адреса')); 
    } elseif (
user_exists($reg['email'], 'email') !== false) {
        
add_error(__('Этот E-Mail уже привязан к другому аккаунту')); 
    }

    if (empty(
$reg['password']) || strlen2($reg['password']) < || strlen2($reg['password']) > 18) {
        
add_error(__('Пароль должен содержать от %s до %s символов'618)); 
    } elseif (
$reg['password'] !== $reg['confirm']) {
        
add_error(__('Пароли не совпадают')); 
    }
    
    
$activation mt_rand(10009999);

    if (!
is_errors()) {
        
db::insert('user'use_filters('ds_user_reg_insert', array(
            
'nick' => $reg['nick'], 
            
'email' => $reg['email'], 
            
'pass' => shif($reg['password']), 
            
'pol' => $reg['pol'], 
            
'activation' => $activation
            
'date_reg' => time(), 
            
'date_last' => time(), 
        ))); 

        
$user_id db::insert_id(); 
        
$user get_user($user_id); 

        if (isset(
$user['id'])) {
            
$_SESSION['id_user'] = $user['id'];
            
setcookie('id_user'$user['id'], time() + 60 60 24 365);
            
setcookie('pass'cookie_encrypt($reg['password']), time() + 60 60 24 365);

            if (
$reg['email']) { 
                
$content __('Регистрация на сайте %s'$_SERVER['HTTP_HOST'], get_current_url()) . "nn"
                
$content .= __('Данные для входа:') . "n"
                
$content .= __('Логин: %s'$reg['nick']) . "n"
                
$content .= __('Пароль: %s'$reg['password']) . "nn"
                
$content .= __('Код подтверждения: ' $activation) . "nn"
                
$content .= __('Для завершения регистрации введите код, или перейдите по этой ссылке: %s'get_query_url(array(
                    
'id' => $user_id
                    
'hash' => md5($activation ':' SALT_FORMS_FIELDS), 
                ))); 

                
$mail_title use_filters('ds_reg_mail_title'__('Регистрация на %s'$_SERVER['HTTP_HOST'])); 
                
$mail_message use_filters('ds_reg_mail_message'$content); 
                
$mail_headers use_filters('ds_reg_mail_headers', array()); 
                
$mail_attachments use_filters('ds_reg_mail_attachments', array()); 

                
ds_mail($reg['email'], $mail_title$mail_message$mail_headers$mail_attachments);
                
update_user_meta($user['id'], '__reg_sent_email'time()); 
            }
        }

        
do_event('ds_user_reg_success'$user); 

        
$_SESSION['message'] = __('Вы успешно зарегистрировались'); 
        
ds_redirect(use_filters('ds_user_reg_redirect'get_user_url($user_id))); 
    }
}

$set['title'] = __('Регистрация');
get_header(); 

if (isset(
$_SESSION['id_user']) && isset($_GET['action']) && $_GET['action'] == 'activation') { 
$ank get_user($_SESSION['id_user']); 
$time_sent get_user_meta($ank['id'], '__reg_sent_email'); 
$time_resent = (60 5) - (time() - $time_sent); 
?>
<form class="ds-reg-form" action="?action=activation" method="POST">
    <div class="ds-reg-input ds-reg-input-activation">
        <label for="activation"><?php echo __('Код активации'); ?></label>
        <input id="activation" type="text" name="activation" value="" />
        <div class="ds-reg-description">
            <?php echo __('На ваш E-Mail %s было отправлено сообщение с кодом подтверждения, пожалуйста введите его в эту форму.''<b>' $ank['email'] . '</b>'); ?>
        </div>
    </div>
    
    <div class="ds-reg-input ds-reg-input-text">
        <?php if ($time_resent 0) { ?>
            <?php echo __('Повторная отправка кода подтверждения, может быть через %s'get_time_ago($time_resent)); ?>
        <?php } else { ?>
            <button class="button" name="activate_resent" type="submit"><?php echo __('Отправить код повторно'); ?></button> 
        <?php ?>
    </div>

    <div class="ds-reg-submit">
        <button class="button" name="activate_submit" type="submit"><?php echo __('Подтвердить'); ?></button> 
    </div>

    <input type="hidden" name="hash" value="<?php echo md5($time_sent ':' SALT_FORMS_FIELDS); ?>" />
</form>
<?php } else { ?>
<form class="ds-reg-form" action="?" method="POST">
    <?php do_event('ds_reg_fields_before'$reg); ?>
    
    <?php if (use_filters('ds_reg_field_login'true)) : ?>
    <div class="ds-reg-input ds-reg-input-login">
        <label for="login"><?php echo __('Логин [%s]''A-z0-9-_'); ?></label>
        <input id="login" type="text" name="login" value="<?php echo (isset($reg['nick']) ? text($reg['nick']) : ''); ?>" />
    </div>
    <?php endif; ?>

    <?php if (use_filters('ds_reg_field_email'true)) : ?>
    <div class="ds-reg-input ds-reg-input-email">
        <label for="email"><?php echo __('E-Mail адрес'); ?></label>
        <input id="email" type="email" name="email" value="<?php echo (isset($reg['email']) ? text($reg['email']) : ''); ?>" />
    </div>
    <?php endif; ?>

    <?php if (use_filters('ds_reg_field_password'true)) : ?>
    <div class="ds-reg-input ds-reg-input-password">
        <label for="password"><?php echo __('Пароль'); ?></label>
        <input id="password" type="password" name="password" value="<?php echo (isset($reg['password']) ? text($reg['password']) : ''); ?>" />
    </div>
    <?php endif; ?>

    <?php if (use_filters('ds_reg_field_confirm'true)) : ?>
    <div class="ds-reg-input ds-reg-input-confirm">
        <label for="confirm"><?php echo __('Повторите пароль'); ?></label>
        <input id="confirm" type="password" name="confirm" value="<?php echo (isset($reg['confirm']) ? text($reg['confirm']) : ''); ?>" />
    </div>
    <?php endif; ?>
    
    <?php if (use_filters('ds_reg_field_gender'true)) : ?>
    <div class="ds-reg-input ds-reg-input-gender">
        <div><input id="gender_man" type="radio" name="gender" value="1" <?php echo (isset($reg['pol']) && $reg['pol'] == 'checked' : (!isset($reg['pol']) ? 'checked' '')); ?> /><label for="gender_man"><?php echo __('Мужской'); ?></label></div>
        <div><input id="gender_woman" type="radio" name="gender" value="0" <?php echo (isset($reg['pol']) && $reg['pol'] == 'checked' ''); ?> /><label for="gender_woman"><?php echo __('Женский'); ?></label></div>
    </div>
    <?php endif; ?>

    <?php do_event('ds_reg_fields_after'$reg); ?>

    <?php if (use_filters('ds_reg_field_submit'true)) : ?>
    <div class="ds-reg-submit">
        <button class="button" type="submit"><?php echo __('Зарегистрироваться'); ?></button>
    </div>
    <?php endif; ?>

    <?php do_event('ds_reg_form_end'$reg); ?>

    <input type="hidden" name="reg" value="1" />
</form>
<?php ?>
<?    
get_footer
();
Онлайн: 0
Реклама