Файл: social12/reg.php
Строк: 104
<?php
ob_start();
session_start();
// Если попытка повторной авторизиции
if (!empty($_COOKIE['us']) && !empty($_COOKIE['ps'])) {
    header('Location: index.php?' . $ref);
    die();
}
include 'mod_reg.dat';
require 'config.php';
$link = connect_db();
include 'head.php';
function xss($var)
{
    $var = trim($var);
    $var = str_replace(" 0", "", $var);
    $var = mysql_real_escape_string($var);
    $var = htmlspecialchars($var, ENT_QUOTES, 'UTF-8');
    return $var;
}
function int($var)
{
    $var = abs((int)$var);
    return $var;
}
$ref = mt_rand(10000, 1000000);
echo $div_title . 'Регистрация' . $div_end;
   if ($mod_reg == 0) {
      err('Регистрация временно закрыта!');
      include 'foot.php';
      exit();
   }
$mod = isset($_GET['mod']) ? $_GET['mod'] : '';
switch($mod) {
    default:
        echo $div_razdel . '<b>Шаг 1</b>' . $div_end;
        echo $div_left . 'Приветствуем тебя на планете общения ' . $site . '!<br/><br/>
              <b>Сразу после регистрации тебе будет доступна:</b><br/>
              - личная страничка по адресу http://<span style="color:#FF0000;">ТвойНик</span><span style="color:#0000FF;">.' . $site . '</span><br/>
              <b>А еще ты сможешь:</b><br/>
              - находить друзей и общаться<br/>
              - хранить свои файлы и делиться ими с другими<br/>
              - вести свои заметки<br/>
              - обсудить что-либо в чате и на форуме<br/>
              - и много других вещей...<br/><br/>
              И, конечно, на ' . $site . ' полностью бесплатно!<br/>
              <br/>
              <a href="reg.php?mod=step2"><b>
              Продолжить регистрацию</b></a> (нажимая эту ссылку, ты подтверждаешь своё согласие с условиями сайта.)
              <br/><br/>
              Или <a href="aut.php?">Входи</a>, если ты уже зарегистрирован.<br/>
              ' . $block . '
              <a href="index.php?' . $ref . '">Назад</a>' . $div_end;
    break;
    case step2:
        $_SESSION['reg_user'] = '';
        if (!empty($_POST['user'])) {
            $error = '';
            $user = xss($_POST['user']);
    $first_l = mb_substr($user, 0, 1, 'UTF8');
    $last_l = mb_substr($user, -1, 1, 'UTF8');
if (!preg_match('/^([a-z1-9_])+$/ui', $user))
{
    $error .= '<div class="errors"><ul><li>Ник может содержать только знаки латинского алфавита знак _ и цифры(кроме 0)</li></ul></div>';
}
elseif (!preg_match('#^([a-z1-9])+$#ui', $first_l)) {
    $error .= '<div class="errors"><ul><li>Ник должен начинаться с латинской буквы или цифры!</li></ul></div>';
}
elseif (!preg_match('#^([a-z1-9])+$#ui', $last_l)) {
    $error .= '<div class="errors"><ul><li>Ник должен заканчиваться латинской буквой или цифрой!</li></ul></div>';
}
elseif (ctype_digit($user)) $error .= '<div class="errors"><ul><li>Ник не должен состоять из одних цифр!</li></ul></div>';
elseif (mb_strlen($user, 'UTF-8') < 4) $error .= '<div class="errors"><ul><li>Ник не должен содержать менее 4х знаков!</li></ul></div>';
elseif (mb_strlen($user, 'UTF-8') > 15) $error .= '<div class="errors"><ul><li>Ник не должен превышать 15 знаков!</li></ul></div>';
            $latuser = mb_strtolower($user, 'UTF8');
            $sql = mysql_query("SELECT `id` FROM `users` WHERE `latuser` = '$latuser'");
            if (mysql_num_rows($sql) != FALSE) {
                $_SESSION['empty_user'] = $user;
                for($j = 1; $j < 10; $j++) {
                    $no_em = mysql_query("SELECT COUNT(*) FROM `users` WHERE
                                         `latuser` = '" . $latuser . $j . "'");
                    if (mysql_result($no_em, 0) == 0) {
                        $no_nick .= '<a href="reg.php?mod=step2&n=' . $j . '">' . $user . $j . '</a><br/>';
                        $vyvod = $div_left . 'Вы можете использовать похожие ники:<br/>' . $no_nick . $div_end;
                    }
            }
                   $error .= '<div class="errors"><ul><li>Указанный Вами ник <b>' . $user . '</b> уже занят!</li></ul></div>' . $vyvod;
            }
            if (!empty($error)) {
                echo $error;
            } else {
                $_SESSION['reg_user'] = $user;
                header('Location: ' . htmlspecialchars_decode('reg.php?mod=step3'));
            }
        }
    $n = (isset($_GET['n'])) ? $_SESSION['empty_user'] . my_int($_GET['n']) : NULL;
        echo $div_menu . 'Шаг 1 из 2
        ' . $div_end . $div_left . '
  <form method="POST" action="reg.php?mod=step2" name="auth">
    <div>Введите желаемый ник, чтобы проверить не занят ли он:
      <br/>
      <b>http://</b><input type="text" name="user" maxlength="12" title="nick" value="'.$n.'"/>
      <b>' . $site . '</b>
      <br/>
      <small>(Знаки латинского алфавита и цифры(кроме 0). Только цифры и русские буквы нельзя! Длина от 4 до 20 символов</small><br/>
      <input type="submit" value="Далее" name="enter"/>
    </div>
  </form>
' . $div_razdel . '<a href="reg.php?mod=step1">Назад</a>' . $div_end . $div_end;
    break;
    case step3:
        if (empty($_SESSION['reg_user'])) header('Location: reg.php?' . $ref);
        if (isset($_GET['ok'])) {
                $error = '';
                $user = $_SESSION['reg_user'];
                $first_l = mb_substr($user, 0, 1, 'UTF8');
                $last_l = mb_substr($user, -1, 1, 'UTF8');
                $latuser = mb_strtolower($user, 'UTF8');
                $sql = mysql_query("SELECT `id` FROM `users` WHERE `latuser` = '$latuser' LIMIT 1");
                if (!preg_match('/^([a-z1-9_])+$/ui', $user)) $error .= 'Ник может содержать только знаки латинского алфавита, знак _ и цифры(кроме 0)';
                elseif (!preg_match('#^([a-z1-9])+$#ui', $first_l)) $error .= 'Ник должен начинаться с латинской буквы или цифры!';
                elseif (!preg_match('#^([a-z1-9])+$#ui', $last_l)) $error .= 'Ник должен заканчиваться латинской буквой или цифрой!';
                elseif (mysql_num_rows($sql)) $error .= 'Указанный Вами ник <b>' . $user . '</b> уже занят!';
                elseif (mb_strlen($user, 'UTF-8') < 4) $error .= 'Ник не должен содержать менее 4х знаков!';
                elseif (mb_strlen($user, 'UTF-8') > 15) $error .= 'Ник не должен превышать 15 знаков!';
                elseif (ctype_digit($user)) $error .= 'Ник не должен состоять из одних цифр!';
                elseif (empty($_POST['pass'])) $error .= 'Не заполнено поле пароль!';
                elseif (empty($_POST['pass2'])) $error .= 'Не заполнено поле подтверждения пароля!';
                elseif (!preg_match("!^[a-z0-9]+$!i", $_POST['pass'])) $error .= 'В пароле обнаружены запрещенные знаки!';
                elseif (mb_strlen($_POST['pass'], 'UTF8') < 6) $error .= 'Пароль не должен быть короче шести символов!';
                elseif ($_POST['pass'] !== $_POST['pass2']) $error .= 'Пароли не совпадают!';
                elseif (is_numeric($_POST['pass'])) $error .= 'Слишком простой пароль, используйте буквы и цифры!';
                elseif (empty($_POST['code'])) $error .= 'Не введен проверочный код!';
                elseif ($_SESSION['captcha'] != $_POST['code']) $error .= 'Не верный проверочный код!';
                if (empty($error)) {
                    $pass = xss($_POST['pass']);
                    $pass2 = xss($_POST['pass2']);
    ######
    $num_balls = mysql_fetch_array(mysql_query("SELECT `num_balls` FROM `setting` WHERE `ids` = '1'"));
    ######
    $now = date('d-m-y');
    $ins_str = "INSERT INTO `users` SET
                `user` = '" . $user . "',
                `pass` = '" . $pass . "',
                `date` = '" . $now . "',
                `balls` = '" . $num_balls[0] . "',
                `latuser` = '" . $latuser . "',
                `user_ip` = '" . xss($ipl) . "',
                `user_soft` = '" . xss($agent) . "',
                `mod_reg` = '$mod_reg'";
if (mysql_query($ins_str))
{
    // последний ид (мой)
    $myid = mysql_insert_id();
            // Запись данных в сессию и куки
            $_SESSION['us'] = $myid;
            $_SESSION['ps'] = $pass;
             setcookie('us', $myid, time() + 604800, '/');
             setcookie('ps', $pass, time() + 604800, '/');
            unset($_SESSION['reg_user']);
}
else
{
    $error .= mysql_error() . '<br/>';
}
}
if (empty($error))
{
    $last_me = mysql_fetch_array(mysql_query("SELECT `id` FROM `users` ORDER BY `id` DESC LIMIT 1"));
###################################################
        $m1 = 'Рекомендуем для начала заполнить свою анкету и прочитать <a href="faq.php?'.$ref.'">Путеводитель</a>.
               <br/>
                Обращаем Ваше внимание на то, что "<a href="edit.php?'.$ref.'">ред</a>" на Вашей главной странице будет красным
               <br/>
               до тех пор, пока страница не заполнена хотябы на 30%.
               <br/>
                Чем выше "%", тем выше Вы будете в поиске и в списках друзей.
               <br/>
                В ' . $site . ' нет ничего сложного, потратье 5 минут, чтобы освоиться и Вы будете с нами всегда.
               <br/>
                И не ждите, что вам сразу начнуть писать другие участники - ищите сами, знакомтесь,
               <br/>
               общайтесь и тогда всё у вас получится!
               <br/>
                Мы желаем Вам приятного общения, поиска старых и новых друзей и безмерной любви!';
        $m2 = 'Здравствуй, ' . $user . '!
               <br/>
                Приветствуем тебя на ' . $site . '
               <br/>
                Теперь у тебя есть собственный сайт в сети по адресу http://' . $user . '.' . $site . '
               <br/>
                Храни тут свои файлы, фотографии и тд, и они всегда будут доступны как с мобильного телефона, так и с компьютера. 
               <br/>
                Обязательно поделись ссылкой на свой сайт с друзьями, пусть они знают о том, что происходит в твоей жизни.';
        mysql_query("INSERT INTO `letters` (`id`,`who`,`idwho`,`message`,`data`,`read`,`mod`)
                     VALUES (0,'0','$last_me[0]','$m1','" . time() . "','0','i')");
        mysql_query("INSERT INTO `letters` (`id`,`who`,`idwho`,`message`,`data`,`read`,`mod`)
                     VALUES (0,'0','$last_me[0]','$m2','" . time() . "','0','i')");
###################################################
// Редирект на авторайз
header('Location: index.php?' . $ref);
                } else {
                    echo '<div class="errors"><ul><li>' . $error . '</li></ul></div>';
                }
        }
    if (!isset($_SESSION['reg_user']))
    {
        header('Location: reg.php?');
        die();
    }
        
        if (!empty($error) || !isset($_GET['ok'])) {
     
           $_SESSION['captcha'] = mt_rand(100, 999);
        /*if (isset($_GET['Code'])) $NoCode = captcha($_SESSION['captcha']) . '<br/>';
        else $NoCode = '<img src="captcha.php?' . rand(0, 999) . '" alt=""/><br/>
                        <small><a href="'.$_SERVER['REQUEST_URI'].'&Code">Не вижу код</a></small><br/>';*/
         echo $div_left . $div_menu . 'Шаг 2 из 2' . $div_end . '
                <FORM method="POST" action="reg.php?mod=step3&ok" name="auth">
                ' . $div_tworazdel . 'Ник: <b>' . $_SESSION['reg_user'] . '</b>' . $div_end . $div_razdel . '
              - Придумайте себе сложный пароль, латинские буквы и цифры<br/>
               - Пароль чувствителен к регистру(sobaka и sObAKA - разные пароли).<br/>  
              - И не вводите пароль такой же как Ник!
              ' . $div_end . '
    <div>
      Пароль:
      <br/>
      <input type="password" name="pass" maxlength="20" title="Пароль"/>
      <br/>
      Повтор пароля:
      <br/>
      <input type="password" name="pass2" maxlength="20" title="Повтор пароля"/>
      <br/>
      Введите цыфры с картинки:<br/>
      <img src="captcha.php?' . rand(0, 999) . '" alt=""/><br/>
      <input type="text" name="code" size="3" maxlength="3" format="*N" title="code"/>
      <br/>
      <input type="submit" value="Завершить" name="enter"/>
    </div>
  </form>
' . $div_razdel . '<a href="reg.php?mod=step2">Назад</a>' . $div_end . $div_end;
        }
        break;
}
    include 'foot.php';
ob_end_flush();
?>