Файл: public_html/page/user.php
Строк: 294
<?php
if (!defined('BASE_DIR')) { exit(header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found', true)); }
$obEngine->addHeadHtml('<script type="text/javascript">
$(document).ready(function()
{
if ($.cookie("ref") !== null) $(".ref").attr("value", $.cookie("ref"));
if (typeof ($.session.get("login")) !== "undefined") document.form1.login.value = $.session.get("login");
if (typeof ($.session.get("email")) !== "undefined") document.form1.email.value = $.session.get("email");
if (typeof ($.session.get("pass")) !== "undefined") document.form1.pass.value = $.session.get("pass");
});
function validate1()
{
var valid = true;
temp = $.ajax ({ url: "fetch.php", type: "POST", data: "mode=check_login&login=" + document.form1.login.value, async: false }).responseText;
if (temp.search("taken") != -1)
{
alert ("Логин занят");
valid = false;
}
if ((document.form1.login.value.length < 3) && (valid == true))
{
alert ("Минимальная длина логина 3 символа");
valid = false;
}
if ((document.form1.email.value == "") && (valid == true))
{
alert ("Не заполнено поле «Email»");
valid = false;
}
temp = $.ajax ({ url: "fetch.php", type: "POST", data: "mode=check_email&email=" + document.form1.email.value, async: false }).responseText;
if ((temp.search("taken") != -1) && (valid == true))
{
alert ("Пользователь с таким Email уже зарегистрирован");
valid = false;
}
if ((document.form1.pass.value == "") && (valid == true))
{
alert ("Не заполнено поле «Пароль»");
valid = false;
}
if ((document.form1.pass.value == document.form1.login.value) && (valid == true))
{
alert ("Пароль не должен совпадать с логином");
valid = false;
}
if ((document.form1.pass.value.length < 6) && (valid == true))
{
alert ("Минимальная длина пароля 6 символов");
valid = false;
}
if ((document.getElementById("radio1").checked == false) && (document.getElementById("radio2").checked == false) && (valid == true))
{
alert ("Не выбран начальный интерфейс аккаунта");
valid = false;
}
if (valid == true)
{
if (document.getElementById("radio1").checked) { tab_main = 0; }
if (document.getElementById("radio2").checked) { tab_main = 1; }
}
return valid;
}
function validate3()
{
var valid = true;
if ((document.form3.login.value == "") && (document.form3.email.value == ""))
{
alert ("Необходимо заполнить хотя бы одно поле");
valid = false;
}
if ((document.form3.login.value !== "") && (valid == true))
{
temp = $.ajax ({ url: "fetch.php", type: "POST", data: "mode=check_login&login=" + document.form3.login.value, async: false }).responseText;
if (temp == "free")
{
alert ("Логин не найден");
valid = false;
}
}
if ((document.form3.email.value !== "") && (valid == true))
{
temp = $.ajax ({ url: "fetch.php", type: "POST", data: "mode=check_email&email=" + document.form3.email.value, async: false }).responseText;
if (temp == "free")
{
alert ("Email не найден");
valid = false;
}
}
return valid;
}
function validate4(input)
{
var value = input.value;
var good = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz@.";
for (i=0; i<value.length; i++)
{
letter = value.charAt(i)
if (good.indexOf(letter) == -1) { input.value = value.replace(letter, ""); }
}
}
$(".radioB input").change(function()
{
$(".radioB input").removeAttr("checked");
$(this).prop("checked", true);
});
</script>');
?>
<div class="wrapper">
<?php
$mode = isset($_GET['mode']) ? $_GET['mode'] : '404';
if ($mode)
{
switch ($mode)
{
case 'login':
if (isset($_POST['login']) && isset($_POST['pass']))
{
$login = filter_var($_POST['login'], FILTER_SANITIZE_STRING);
$query = $mysqli->query("SELECT `id`, `password` FROM `".PREFIX."_users` WHERE `login` = '".$login."' LIMIT 1");
if (!$query->num_rows)
{
echo 'Пользователь не существует';
break;
}
else
{
$res = $query->fetch_assoc();
$pass = filter_var($_POST['pass'], FILTER_SANITIZE_STRING);
if (md5(md5($pass.HASH_MD5)) != $res['password'])
{
echo 'Неверный пароль';
break;
}
}
$ban = "";
if (!isset($_COOKIE['login']))
{
@setcookie('login', $login, TIME+2500000, '/');
}
else
{
if ($_COOKIE['login'] != $login)
{
$ban = ", `ban` = '1'";
@setcookie('login', $login, TIME+2500000, '/');
}
}
$mysqli->query("UPDATE `".PREFIX."_users` SET `ip_log` = '".$_SERVER['REMOTE_ADDR']."' ".$ban." WHERE `id` = '".$res['id']."'");
$_SESSION['user_id'] = $res['id'];
header('Location: /account.php');
}
break;
case 'register':
if (isset($_SESSION['user_id']))
{
echo 'Вы уже зарегистрированы';
break;
}
$obEngine->addTitleHtml('Регистрация');
?>
<script src="js/jquery.captcha.js" type="text/javascript"></script>
<div class="title">Регистрация</div>
<div class="menu">
<form name="form1" action="?mode=save" method="post" onsubmit="return validate1();">
<b style="color:red;">*</b> <b>Логин:</b>
<input name="login" value="" type="text" maxlength="50" class="tt" onkeyup="return validate4(this);" onchange="return validate4(this);">
<b style="color:red;">*</b> <b>Email:</b><input type="text" value="" maxlength="50" name="email" class="tt" onkeyup="return validate4(this);" onchange="return validate4(this);">
<br >
<span style="color:#888">(на этот электронный адрес будут высланы данные для авторизации)</span>
<b style="color:red;">*</b> <b>Пароль:</b><input type="text" value="" name="pass" maxlength="50" class="tt" onkeyup="return validate4(this);" onchange="return validate4(this);">
<br />
<span style="color: red">(не используйте пароли от других сайтов)</span>
<br><b style="color:red;">*</b> <b>Начальный интерфейс учетной записи:</b><br>
<input id="radio2" type="radio" name="tab_main" value="1" <?php echo $tab_main = isset($_GET['tab_main']) && $_GET['tab_main'] == 1 ? 'checked' : ''; ?> ><label for="radio2">Рекламодатель</label>
<input id="radio1" type="radio" name="tab_main" value="0" <?php echo $tab_main = isset($_GET['tab_main']) && $_GET['tab_main'] == 0 ? 'checked' : ''; ?> ><label for="radio1">Вебмастер</label>
<br> <input class="input" type="text" name="norobot" />
<img src="captcha.php" />
<a href="info.php?mode=rules">Правила сервиса</a>
<button>Регистрация</button>
</div>
</form>
</div>
<?php include 'module/user_menu.php'; ?>
</div>
<?php
break;
case 'save':
session_start();
if (md5($_POST['norobot']) == $_SESSION['randomnr2']) {
echo "Отлично , кажется, что вы не робот";
} else {
echo "вы весьма надоедливый бот!";
}
$login = filter_var($_POST['login'], FILTER_SANITIZE_STRING);
if (mb_strlen($login) < 3)
{
echo 'Что то пошло не так...';
unset($_SESSION['image_captcha']);
break;
}
$query = $mysqli->query("SELECT `id` FROM `".PREFIX."_users` WHERE `login` = '".$login."' LIMIT 1");
$email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);
$query = $mysqli->query("SELECT `id` FROM `".PREFIX."_users` WHERE `email` = '".$email."' LIMIT 1");
$password = filter_var($_POST['pass'], FILTER_SANITIZE_STRING);
$tab_main = $_POST['tab_main'];
$referer = isset($_COOKIE['ref']) ? (int)$_COOKIE['ref'] : 0;
$query = $mysqli->query("SELECT `id` FROM `".PREFIX."_users` WHERE `id` = '".$referer."' LIMIT 1");
if (!$query->num_rows)
{
$referer = 0;
}
$md5_password = md5(md5($password.HASH_MD5));
$result = $mysqli->query("INSERT INTO `".PREFIX."_users`
(
`login`,
`password`,
`email`,
`referer`,
`data_reg`,
`ip_reg`,
`ip_log`,
`tab_main`
)
VALUES
(
'".$login."',
'".$md5_password."',
'".$email."',
'".$referer."',
NOW(),
'".$_SERVER['REMOTE_ADDR']."',
'".$_SERVER['REMOTE_ADDR']."',
'".$tab_main."'
)");
if ($mysqli->insert_id())
{
$_SESSION['user_id'] = $mysqli->insert_id();
unset($_SESSION['image_captcha']);
addStats('all_users', 1);
$headers = "From: ".$obEngine->getConfig('site_name')." <".$obEngine->getConfig('site_name').">n";
$headers = $headers."Content-type: text/html; charset="utf-8"n";
$headers = $headers."Return-path: <".$obEngine->getConfig('site_email').">n";
$message = 'Здравствуйте, <b>'.$login.'</b>!<br>
Вы зарегистрировались в сервисе интернет-рекламы '.$obEngine->getConfig('site_name').'.<br><br>
Данные для входа на сайт: <br>
Логин: <b>'.$login.'</b><br>
Пароль: <b>'.$password.'</b><br>
<br><br>
--<br>
С наилучшими пожеланиями,<br> Администрация '.$obEngine->getConfig('site_name').''."n";
$subject = 'Регистрация в '.$obEngine->getConfig('site_name').'';
mail($email, $subject, $message, $headers);
header('Location: /account.php');
}
break;
case 'lost':
if (isset($_SESSION['user_id']))
{
echo 'Пароль смените в профиле';
break;
}
$obEngine->addTitleHtml('Восстановление пароля');
if (isset($_POST['login']))
{
$login = filter_var($_POST['login'], FILTER_SANITIZE_STRING);
$email = filter_var($_POST['email'], FILTER_SANITIZE_STRING);
$query = $mysqli->query("SELECT `id`, `login`, `email`, `password` FROM `".PREFIX."_users` WHERE `login` = '".$login."' || `email` = '".$email."' LIMIT 1");
if (!$query->num_rows)
{
echo 'Пользователь с такими данными не существует';
break;
}
else
{
$res = $query->fetch_assoc();
$password = genPassword(8);
$md5_password = md5(md5($password.HASH_MD5));
$mysqli->query("UPDATE `".PREFIX."_users` SET `password` = '".$md5_password."' WHERE `id` = '".$res['id']."'");
$headers = "From: ".$obEngine->getConfig('site_name')." <".$obEngine->getConfig('site_name').">n";
$headers = $headers."Content-type: text/html; charset="utf-8"n";
$headers = $headers."Return-path: <".$obEngine->getConfig('site_email').">n";
$message = 'Здравствуйте, <b>'.$res['login'].'</b>!<br>
Вы сделали запрос на восстановление пароля в сервисе интернет-рекламы '.$obEngine->getConfig('site_name').'.<br><br>
Данные для входа на сайт: <br>
Логин: <b>'.$res['login'].'</b><br>
Пароль: <b>'.$password.'</b><br>
<br><br>
--<br>
С наилучшими пожеланиями,<br> Администрация '.$obEngine->getConfig('site_name').''."n";
$subject = 'Восстановление пароля от '.$obEngine->getConfig('site_name').'';
mail($res['email'], $subject, $message, $headers);
unset($_SESSION['image_captcha']);
echo '<h1>Пароль выслан</h1>';
break;
}
unset($_SESSION['image_captcha']);
}
?>
<script src="js/jquery.captcha.js" type="text/javascript"></script>
<div class="title">
Bосстановление пароля</div> <div class="menu">
<form name="form3" action="?mode=lost" method="post" onsubmit="return validate3();">
Логин:
<span style="font-weight: normal;">или</span> Email:
<inpt type="text" name="login" maxlength="25" class="tt">
<input type="text" maxlength="40" value="" name="email" class="tt">
код<input class="input" type="text" name="norobot" />
<img src="captcha.php" />
<button style="float:right;">Восстановить</button><br>
</form>
</div>
<?php include 'module/user_menu.php'; ?>
</div>
<?php
break;
default:
header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found', true);
echo '<h1>Страница не найдена</h1>';
break;
}
}
?>
</div>