Файл: minichat_by_KoT/minichat_by_KoT/auth.php
Строк: 82
<?php
##########################################
# ~ Разработка отдельных модулей ~~~~~~~ #
# ~ и написание скриптов на php (c)KoT ~ #
# ~ ICQ: 7675072 ~~~~~~~~~~~~~~~~~~~~~~~ #
# ~ Site: 4atlove.ru ~~~~~~~~~~~~~~~~~~~ #
# ~ E-mail: notefree@bk.ru ~~~~~~~~~~~~~ #
##########################################
ob_start();
session_start();
header("Cache-Control: no-cache");
header('Content-Type:text/html; charset=UTF-8');
require 'config.php';
$link = connect_db();
include 'head.php';
$ref = mt_rand(10000, 1000000);
$go = isset($_GET['go']) ? $_GET['go'] : NULL;
switch($go) {
default:
function xss($var)
{
$var = trim($var);
$var = str_replace(" 0", '', $var);
$var = mysql_escape_string($var);
$var = htmlspecialchars($var, ENT_QUOTES, 'UTF-8');
$var = str_replace("%", "%", $var);
$var = str_replace("-", "-", $var);
return $var;
}
function int($var)
{
$var = abs((int)$var);
return $var;
}
$soft = strtok($_SERVER['HTTP_USER_AGENT'], '/');
$soft = xss(soft);
$sql = mysql_query("SELECT * FROM `banip` WHERE (`ip` = '" . $_SERVER['REMOTE_ADDR'] . "') AND (soft = '" . mysql_real_escape_string($_SERVER['HTTP_USER_AGENT']) . "') LIMIT 1");
if (mysql_num_rows($sql))
{
echo $bad . 'Доступ запрещен!' . $div5;
include 'foot.php';
exit;
}
if (isset($_GET['ok']))
{
if (!empty($_POST['user']) && !empty($_POST['pass']) && !empty($_POST['code']))
{
// Проверка Авторайза
$user = mysql_real_escape_string(check($_POST['user']));
if ($_POST['trun'] == 1) {
$user = trun_to_rus($user);
}
$Auth = mysql_fetch_assoc(mysql_query("SELECT `id`,`pass` FROM `users` WHERE `user`='$user' AND `pass`='".xss($_POST['pass'])."' LIMIT 1"));
if (!empty($Auth)) {
echo $div1 . '<b>Войти в чат</b>' . $div5 . $div3 . '
Авторизация прошла успешно!<br/>
» <a href="menu.php?us='.$Auth['id'].'&ps='.$Auth['pass'].'"><b>Войти</b></a><br/>
<small>Мы рады Вас снова видеть в чате.</small><hr/>';
include 'foot.php';
exit();
}
$bak = replace_rus($_POST['user']);
if (!preg_match("!^[a-z1-9@\*\)\(\?\!\-_\]\[=~]+$!i", $_POST['user']) && !preg_match("!^[1-9@\*\)\(\?\!\-_\]\|\[=~]+$!i", $bak))
{
$error .= $bad . 'В нике обнаружены запрешенные знаки!' . $div5;
}
$error .= (mb_strlen($_POST['user'], 'UTF-8') < 4) ? $bad . 'Ник не должен содержать менее 4х знаков!' . $div5 : '';
$error .= (mb_strlen($_POST['user'], 'UTF-8') > 15) ? $bad . 'Ник не должен превышать 15 знаков!' . $div5 : '';
$ruser = rus_to_k($_POST['user']);
$latuser = strtolower($_POST['user']);
$sql_1 = mysql_query("SELECT * FROM `users` WHERE `ruser`='" . $ruser . "'");
$sql_2 = mysql_query("SELECT * FROM `users` WHERE `latuser`='" . $latuser . "'");
if (mysql_num_rows($sql_1) || mysql_num_rows($sql_2)) $error .= $bad . 'Ошибка Авторизации!' . $div5;
if (!preg_match("!^[a-z0-9]+$!i", $_POST['pass'])) $error .= $bad . 'В пароле обнаружены запрещенные знаки!' . $div5;
if (strlen($_POST['pass']) < 6) $error .= $bad . 'Пароль не должен быть короче 6-ти символов!' . $div5;
if ($_SESSION['reg_cod'] != $_POST['code']) $error .= $bad . 'Не верный проверочный код!' . $div5;
if ($_POST['trun'] == 1)
{
$user = trun_to_rus($_POST['user']);
}
if (empty($error)) {
$pass = xss($_POST['pass']);
$user = xss($_POST['user']);
$sex = xss($_POST['sex']);
$levels = mysql_fetch_array(mysql_query("SELECT `name` FROM `levels` WHERE `level`='0'"));
$lev0 = $levels['name'];
$now = date('d-m-Y');
$ins_str = ($ruser != $user)
?
"INSERT INTO `users` SET
`id` = '".$id."',
`user` = '" . $user . "',
`pass` = '" . $pass . "',
`date` = '" . $now . "',
`sex` = '".$sex."',
`ruser` = '" . $ruser . "',
`user_ip` = '" . xss($_SERVER['REMOTE_ADDR']) . "',
`user_soft` = '" . xss($_SERVER['HTTP_USER_AGENT']) . "',
`status` = '" . $lev0 . "'
":"
INSERT INTO `users` SET
`id` = '".$id."',
`user` = '" . $user . "',
`pass` = '" . $pass . "',
`date` = '" . $now . "',
`sex` = '".$sex."',
`latuser` = '" . $latuser . "',
`user_ip` = '" . xss($_SERVER['REMOTE_ADDR']) . "',
`user_soft` = '" . xss($_SERVER['HTTP_USER_AGENT']) . "',
`status` = '" . $lev0 . "'
";
if (mysql_query($ins_str))
{
$id = mysql_insert_id();
$rnd = mt_rand(0, 99999999);
$today = date("H:i");
$num = mysql_fetch_array(mysql_query("SELECT count(`id`) as num FROM `users`"));
$time = time();
echo 'Вы <b>' . $id . '-й</b> пользователь нашего чатика )<br/>';
mysql_query("OPTIMIZE TABLE `users`");
mysql_query("ANALYZE TABLE `users`");
}
else
{
$error .= mysql_error() . '<br/>';
}
} else {
echo $error;
}
if (empty($error))
{
echo $div3 . '
Ваш ID:<br/><b>' . $id . '</b>
<br/>
Ваш ник:<br/><b>' . $user . '</b>
<br/>
Пароль:<br/><b>' . $pass . '</b>
<hr/>
• <a href="menu.php?us='.$id.'&ps='.$pass.'"><b>Войти в чат</b></a><br/>
• <a href="index.php?"><b>На главную</b></a><br/>' . $div5;
include 'foot.php';
exit;
}
} else {
echo $bad . 'Не заполнено одно из полей!' . $div5;
}
}
$_SESSION['reg_cod'] = mt_rand(0000, 9999);
echo $div1 . '<b>Вход в чат</b>' . $div5 . $div3 .'
<small>ВНИМАНИЕ: войдя в чат вы автоматически регистрируйтесь.<br/>
Никому не сообщайте свой пароль.</small><br/>
<form method="POST" action="auth.php?&ok">
<u>Логин:</u><br/>
<input type="text" class="text" name="user" maxlength="15" title="nick" emptyok="false"/>
<br/>
<u>Транслит</u>
<input type="checkbox" name="trun" value="1"/><br/>
Пол:
<br/>
<select name="sex">
<option value="М">М
</option>
<option value="Ж">Ж
</option>
</select>
<br/>
<u>Пароль:</u>
<br/>
<input type="password" class="text" name="pass" maxlength="20" title="pass" emptyok="false"/>
<br/>
Проверочный код:
<br/>
<img src="img/img.php?' . mt_rand(0, 999) . '" alt=""/>
<br/>
<input type="text" class="text" name="code" size="4" maxlength="4" format="*N" title="code"/>
<br/>
<input type="submit" class="ibutton" value="Войти" name="enter">
</form>
• <a href="index.php?"><b>Главная</b></a>' . $div5;
ob_end_flush;
include 'foot.php';
break;
}
?>