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

include_once 'sys/inc/start.php';
include_once 
'sys/inc/sess.php';
include_once 
'sys/inc/home.php';
include_once 
'sys/inc/settings.php';
include_once 
'sys/inc/db_connect.php';
include_once 
'sys/inc/ipua.php';
include_once 
'sys/inc/fnc.php';
include_once 
'sys/inc/shif.php';
$show_all true// показ для всех
include_once 'sys/inc/user.php';
only_unreg();
$set['title'] = lang('Регистрация');
include_once 
'sys/inc/thead.php';
include_once 
'sys/inc/captcha.php';

title();

// если вкл и есть сессия с ником
if ($set['reg_nick_mat'] == && isset($_SESSION['reg_nick'])) {
    require_once 
'sys/inc/censure.php';
    
$censure censure($_SESSION['reg_nick']);
        
//если есть мат
        
if ($censure) {
            
$msg_r 'Попытка регнуть ник с матом ' output_text($_SESSION['reg_nick']) . '" IP: ' .
            
$_SERVER['REMOTE_ADDR'] . ' [[url=/' APANEL '/ban_ip.php?min=' $_SERVER['REMOTE_ADDR'] . '] Забанить[/url]]';
            
msg(lang('Регистрация не возможна. В нике содержится мат. Попробуйте позже'));

            if (@
$_COOKIE['timess'] <= time()) {
                
$db->query('INSERT INTO `jurnal_system` (`time`, `type`, `id_user`, `msg`, `id_kont`) VALUES (?i,  ?, ?i, ?, ?i);',
                            [
time(),  'system'0$msg_r0]);
                
setcookie('timess'time() + 600time() + 60*60*24*365);
            }

            if (
$_COOKIE['timess_i'] <= time()) {
                
$_SESSION['reg_nick'] = null;
                
setcookie('timess_i'time() + 600time() + 60*60*24*365);
                exit(
header('Location: ?'));
            }
            require_once 
H.'sys/inc/tfoot.php';
            exit;
        }
}

if (
$set['guest_select'] == 1) {
    
msg(lang('Доступ к сайту разрешен только авторизованым пользователям'));
}

echo 
'  <div class="p_m">';

if (
$set['reg_select'] == 'close') {
    
$errlang('Регистрация временно приостановлена');
    
err();
    echo 
"<a href='/aut.php'>" . ('Авторизация') . "</a><br />n";
    include_once 
'sys/inc/tfoot.php';
} elseif (
$set['reg_select'] == 'open_mail' && isset($_GET['id']) && isset($_GET['activation']) && $_GET['activation'] != null) {
    
$cnt $db->query('SELECT COUNT(*) cnt FROM `user` WHERE `id`=?i AND `activation`=?',
                          [
$_GET['id'], $_GET['activation']])->row();
    if ((int)
$cnt['cnt'] == 1) {
        
$db->query('UPDATE `user` SET `activation`=? WHERE `id`=?i LIMIT ?i', [null$_GET['id'], 1]);
        
$user $db->query('SELECT * FROM `user` WHERE `id`=?i LIMIT ?i', [$_GET['id'], 1])->row();
        
$db->query('INSERT INTO `reg_mail` (`id_user`,`mail`) VALUES (?i, ?)', [$user['id'], $user['ank_mail']]);
        
aut();
        
msg(lang('Ваш аккаунт успешно активирован'));
        
$_SESSION['id_user'] = $user['id'];
        include_once 
'sys/inc/tfoot.php';
    }
}

if (isset(
$_SESSION['step']) && $_SESSION['step'] ==&&
    isset(
$_POST['pass1']) && $_POST['pass1'] != null && $_POST['pass2'] && $_POST['pass2'] != null) {
    if (
$db->query('SELECT COUNT( * ) FROM `user` WHERE `nick`=?', [$_SESSION['reg_nick']])->el() == 0) {
        if (
$set['reg_select'] == 'open_mail') {
            
$cntm $db->query('SELECT COUNT(*) cntm FROM `reg_mail` WHERE `mail`=?', [$_POST['ank_mail']])->row();
            if (!isset(
$_POST['ank_mail']) || $_POST['ank_mail'] ==null) {
                
$err[] = lang('Неоходимо ввести Email');
            } elseif (!
preg_match('#^[A-z0-9-._]+@[A-z0-9]{2,}.[A-z]{2,4}$#ui'$_POST['ank_mail'])) {
                
$err[] =lang('Неверный формат Email');
            } elseif (
$db->query('SELECT COUNT(*) FROM `reg_mail` WHERE `mail`=?', [$_POST['ank_mail']])->el() != 0) {
                
$err[] = lang("Пользователь с этим E-mail уже зарегистрирован");
            }
        }

        if (
mb_strlen($_POST['pass1']) < 6) {
            
$err[] = lang('По соображениям безопасности пароль не может быть короче 6-ти символов');
        }
        if (
mb_strlen($_POST['pass1']) > 32) {
            
$err[] = lang('Длина пароля превышает 32 символа');
        }
        if (
$_POST['pass1'] != $_POST['pass2']) {
            
$err[] = lang('Пароли не совпадают');
        }
                
//Поисковое слово
                
$world_set_update $_POST['pass1'];
                
//файл где ищем
                
$file_default file_get_contents('sys/dat/if_password.txt');

                
//если  нету записываем
                
if (stripos($file_default$world_set_update) !== false || $_POST['pass1'] == $_SESSION['reg_nick']) {
                    
$err[] = lang('Пароль слишком простой');
                }

        if (!isset(
$_SESSION['captcha']) || !isset($_POST['chislo']) || $_SESSION['captcha']!=$_POST['chislo']) {
            
$err[] = lang('Неверное проверочное число');
        }

        if (!isset(
$err)) {
            if (
$set['reg_select'] == 'open_mail') {
                
$activation md5(passgen());
                
$data = [$_SESSION['reg_nick'], shif($_POST['pass1']), $time$timeintval($_POST['pol']), $activation$_POST['ank_mail'], time()];
                
$ins $db->query('INSERT INTO `user` (`nick`, `pass`, `date_reg`, `date_last`, `pol`, `activation`, `ank_mail`, `pass_time`)
VALUES( ?, ?, ?i, ?i, ?string, ?, ?, ?i)'
$data);

                
$id_reg $ins->id();
                
$subject = ('Активация аккаунта');
                
$regmail = ('Здравствуйте') . "  $_SESSION[reg_nick]<br />" .
                                (
'Для активации Вашего аккаунта перейдите по ссылке') .
                                
":<br /><a href='http://$_SERVER[HTTP_HOST]/reg.php?id=$id_reg&amp;activation=$activation'>http://$_SERVER[HTTP_HOST]/reg.php?id=" $id_reg "&amp;activation=$activation</a><br />" .
                                (
'Если аккаунт не будет активирован в течении 24 часов, он будет удален') . " <br />" .
                                (
'С уважением, администрация сайта') . "<br />";

                
$adds "From: "pass@$_SERVER[HTTP_HOST]" <password@$_SERVER[HTTP_HOST]>n";
                
$adds .= "Content-Type: text/html; charset=utf-8n";
                
mail($_POST['ank_mail'], '=?utf-8?B?' base64_encode($subject) . '?='$regmail$adds);
                
$_SESSION['message'] = lang('Вам необходимо активировать Ваш аккаунт по ссылке, высланной на Email');
            } else {
                
$data = [$_SESSION['reg_nick'], shif($_POST['pass1']), $time$timeintval($_POST['pol']), time()];
                
$db->query('INSERT INTO `user` (`nick`, `pass`, `date_reg`, `date_last`, `pol`, `pass_time`) VALUES( ?, ?, ?i, ?i, ?string, ?i)'$data);
            }

            
$user $db->query('SELECT * FROM `user` WHERE `nick`=? AND `pass`=? LIMIT ?i', [$_SESSION['reg_nick'], shif($_POST['pass1']), 1])->row();

            if (isset(
$_SESSION['http_referer'])) {
                
$db->query('INSERT INTO `user_ref` (`time`, `id_user`, `type_input`, `url`)
                                        VALUES ( ?i, ?i, ?, ?)'
, [$time$user['id'], 'reg'$_SESSION['http_referer']]);
            }

            
$_SESSION['id_user'] = $user['id'];
            
setcookie('id_user'$user['id'], time() + 60*60*24*365);
            
setcookie('pass'cookie_encrypt($_POST['pass1'], $user['id']), time() + 60*60*24*365);

            if (
$set['reg_select'] == 'open_mail') {
                
msg(lang('Вам необходимо активировать Ваш аккаунт по ссылке, высланной на Email'));
            } else {
                
$data = ['id' $user['id'], ($webbrowser == 'web' 'web' 'wap'), $user['id']];
                
$db->query('UPDATE `user` SET `mylink`=?, `browser`=? WHERE `id`=?i'$data);

                
$_SESSION['message'] = lang('Регистрация прошла успешно, добро пожаловать на сайт');

                
$reg_set 1;
                
$Search glob('sys/reg/*.php');
                foreach (
$Search as $load_plugins) {
                    include_once 
$load_plugins;
                }

                                
//    включаем модуль возврата
                                
if ($set['reg_ref'] == 1) {
                                    exit(
header('Location: ' $_SESSION['ref_loc'] . '?&reg_ref'));
                                }
            }
            if (
$set['reg_select'] =='open_mail') {
                unset(
$user);
            }
            exit(
header('Location: /id' $user['id']));
        }
    }
//
elseif (isset($_POST['nick']) && $_POST['nick'] != null) { //
        
$cntu $db->query('SELECT COUNT(*) FROM `user` WHERE `nick`=?', [$_POST['nick']])->el();
    if ((int)
$cntu == 0) {
        
//тут тоже не надо фильтровать
        
$nick $_POST['nick'];

        if (!
preg_match("/^p{L}[p{L}d-_ ]+$/ui"$_POST['nick'])) {
            
$err[] =(lang('В нике присутствуют запрещенные символы'));
        }
        if (
preg_match("#[a-z]+#ui"$_POST['nick']) && preg_match("#[а-я]+#ui"$_POST['nick'])) {
            
$err[] =lang('Разрешается использовать символы только русского или только английского алфавита');
        }
        if (
preg_match("#(^ )|( $)#ui"$_POST['nick'])) {
            
$err[] = lang('Запрещено использовать пробел в начале и конце ника');
        }
        if (
mb_strlen($nick)<4) {
            
$err[] =lang('Короткий ник - не менее 4 символов!');
        }
        if (
mb_strlen($nick)>32) {
            
$err[] =lang('Длина ника превышает 32 символа');
        }
        
//Поисковое слово
        
$world_set_update $nick;
        
//файл где ищем
        
$file_default file_get_contents(H.'sys/dat/if_reg.txt');

        
//если  нету записываем
        
if (stripos($file_default$world_set_update) !== false) {
            
$err lang('Такие ники запрещены');
        }
    } else {
        
$err[] = lang('Ник').' "'$_POST['nick'] .'" '.lang('уже зарегистрирован');
    }

    if (!isset(
$err)) {
        
$_SESSION['reg_nick'] = $nick;
        
$_SESSION['step'] = 1;
        
msg(lang('Ник') . '    "' $nick '" ' lang('может быть успешно зарегистрирован'));
    }
// end

err();

if (!isset(
$user)) {
    echo 
'<center>' lang('Вы можете авторизоваться через') . '<br />' api_Login::out($_SERVER['HTTP_HOST'] . '/pages/plugins/ulogin.php') . '</center>';
}
echo 
"  </div> ";


if (isset(
$_SESSION['step']) && $_SESSION['step'] ==1) {
    
/*
echo "<div class='p_m'><form method='post' action='?'>";
echo lang('Ваш ник')." <br /><input type='text' name='nick' maxlength='32' value='$_SESSION[reg_nick]' /><br />";
echo "<input type='submit' class='submit_tab'  value='".lang('Другой')."' />";
echo "</form></div>";class='submit_tab'
*/
echo "  <div class='p_m'> ";

    echo 
"<form method='post' action=''>";
    echo 
lang('Ваш пол').":<br /><select class='submit_tab'name='pol'><option value='1'>".lang('Мужской')."</option><option value='0'>".lang('Женский')."</option></select><br />n";

    if (
$set['reg_select'] =='open_mail') {
        echo 
"E-mail:<br /><input type='text' name='ank_mail' /><br />";
        echo 
"*".lang('Указывайте ваш реальный адрес E-mail. На него придет код для активации аккаунта.')."<br />n";
    }
    echo 
lang('Ваш пароль')."(6-32 символов):<br /><input type='password' name='pass1' maxlength='32' /><br />n";
    echo 
lang('Повторите пароль').":<br /><input type='password' name='pass2' maxlength='32' /><br />n";
    echo 
captcha_show()."<br /><input name='chislo' size='5' maxlength='5' value='' type='text' /><br />";

    echo 
"<input type='submit' class='submit_tab' value='".lang('Войти на сайт')."' /><br/>";
    echo 
"</form>";
    echo 
lang('Регистрируясь, Вы автоматически соглашаетесь с')." <a href='/user/rules'><b>".lang('правилами')."</b></a> ".lang('сайта')."<br />";

    echo 
"</div>";
} else {
    echo 
"<center><div class='p_m'><form method='post' action='?'>";
    echo 
lang('Придумайте ник')." <br /><input type='text' name='nick' maxlength='32' /><br />";
    echo 
"<input type='submit' class='submit_tab' value='".lang('Продолжить')."' /><br />";
//echo lang('Регистрируясь, Вы автоматически соглашаетесь с')." <a href='/user/rules'><b>".lang('правилами')."</b></a> ".lang('сайта')."<br />";


echo "</form></div></center>";
}


echo 
"
<div class ='foot'>"
.lang('Уже зарегистрированы?')."<br />&raquo;<a href='/aut.php'>".lang('Авторизация')."</a></div>
<div class ='foot'>"
.lang('Не можете вспомнить пароль?')."<br />&raquo;<a href='/pass.php'>".lang('Восстановить пароль')."</a></div>";

include_once 
'sys/inc/tfoot.php';
Онлайн: 5
Реклама