Файл: include/auth.php
Строк: 274
<?php
$auth = '';
if(empty($_POST['au']))
{
$title = "Авторизация";
if($version == "wml")
{
header("Content-type: text/vnd.wap.wml; charset=utf-8");
header("Cache-Control: no-cache");
echo(doctype("Авторизация").'
Имя: <br />
<input type="text" name="name" /><br />
Пароль: <br />
<input type="password" name="password" /><br />');
if($fcode){
$pik = array('1','2','3','4','5','6','7','8','9','0');
$code = $pik[rand(0, 10)].$pik[rand(0, 10)].$pik[rand(0, 10)].$pik[rand(0, 10)].$pik[rand(0, 10)];
$code = htmlspecialchars($code);
fwrite(fopen('./codes/'.$ref.'.txt', 'w'), $code);
echo('Введите код <b>'.$code.'</b>:<br /><input type="text" name="code" value="" maxlenght="5" size="5" /><br />');
}
echo('<anchor>[Авторизоваться]
<go href="./?p=19&v=wml&rnd='.$ref.'" method="post">
<postfield name="name" value="$(name)" />
<postfield name="password" value="$(password)" />
<postfield name="code" value="$(code)" />
<postfield name="au" value="true" />
</go></anchor><br />
--- <br />
<a href="./?p=0&v=wml">Форумы</a><br />
</p></card></wml>');
} else
{
header("Content-type: text/html; charset=utf-8");
header("Last-Modified:".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-cache, must-relative");
echo('<html>
<head>
<title>'.$title.'</title>
</head>
<body bgcolor="'.$style['background'].'" link="'.$style['link'].'" vlink="'.$style['link'].'" text="#000000">
<form action="./?p=19&v=xhtml&rnd='.$ref.'" method="post">
<table align="center" border="0" cellspacing="1" cellpadding="5" width="350">
<tr align="center" bgcolor="'.$style['title'].'"><td colspan="2">
<font color="#FFFFFF"><b>'.$title.'</b>
</font></td></tr>');
echo('<tr bgcolor="'.$style['text'].'"><td>
Имя:</td><td><input type="text" name="name" /></td></tr>
<tr bgcolor="'.$style['text'].'"><td>
Пароль:</td><td><input type="password" name="password" /></td></tr>');
if($fcode){
$pik = array('1','2','3','4','5','6','7','8','9','0');
$code = $pik[rand(0, 10)].$pik[rand(0, 10)].$pik[rand(0, 10)].$pik[rand(0, 10)].$pik[rand(0, 10)];
$code = htmlspecialchars($code);
fwrite(fopen('./codes/'.$ref.'.txt', 'w'), $code);
echo('<tr bgcolor="'.$style['text'].'"><td>Введите код <b>'.$code."</b>:</td><td><input type="text" name="code" value="" maxlenght="5" size="5" /></td></tr>");
}
echo('<tr bgcolor="'.$style['text'].'"><td align="center" colspan="2">
<input type="hidden" name="au" value="true" />
<input type="hidden" name="v" value="xhtml" />
<input type="submit" value="Авторизоваться" />
</td></tr>
<tr bgcolor="'.$style['bottom'].'"><td colspan="2">
<a href="./?p=0&v=xhtml">Назад в форум</a><br />
</td></tr></table>
</form>
</body></html>');
}
} else
{
include_once("users.php");
if($fcode){
$code = file_get_contents("./codes/".$_GET['rnd'].".txt");
$_POST['code'] = htmlspecialchars($_POST['code']);
}
$_POST['name'] = translatenick(trim(chop(sql($_POST['name']))));
$_POST['password'] = trim(chop(sql($_POST['password'])));
if(empty($_POST['name']) or empty($_POST['password']))
{
$title = "Ошибка";
if($version == "wml")
{
header("Content-type: text/vnd.wap.wml; charset=utf-8");
header("Cache-Control: no-cache");
echo(doctype($title).'
Вы не заполнили все поля! <br />
<a href="./?p=0&v=wml">Назад в форум</a><br />
</p></card></wml>');
} elseif($version == "xhtml")
{
echo('<html>
<head>
<title>'.$title.'</title>
</head>
<body bgcolor="'.$style['background'].'" link="'.$style['link'].'" vlink="'.$style['link'].'" text="#000000">
<table align="center" border="0" cellspacing="1" cellpadding="5" width="350">
<tr><td align="center" bgcolor="'.$style['title'].'">
<font color="#FFFFFF"><b>'.$title.'</b></font>
</td></tr>
<tr bgcolor="'.$style['text'].'"><td>
Вы не заполнили все поля!
</td></tr>
<tr><td bgcolor="'.$style['bottom'].'">
<a href="./?p=0&v=xhtml">Назад в форум</a><br />
</td></tr>
</table></body></html>');
}
}
elseif((empty($_POST['code']) or $_POST['code'] != $code) and $fcode)
{
unlink('./codes/'.$_GET['rnd'].'.txt');
$title = "Ошибка";
if($version == "wml")
{
header("Content-type: text/vnd.wap.wml; charset=utf-8");
header("Cache-Control: no-cache");
echo(doctype($title).'
Неправильный код! <br />
<a href="./?p=0&v=wml">Назад в форум</a><br />
</p></card></wml>');
} elseif($version == "xhtml")
{
echo('<html>
<head>
<title>'.$title.'</title>
</head>
<body bgcolor="'.$style['background'].'" link="'.$style['link'].'" vlink="'.$style['link'].'" text="#000000">
<table align="center" border="0" cellspacing="1" cellpadding="5" width="350">
<tr><td align="center" bgcolor="'.$style['title'].'">
<font color="#FFFFFF"><b>'.$title.'</b></font>
</td></tr>
<tr bgcolor="'.$style['text'].'"><td>
Неправильный код!
</td></tr>
<tr><td bgcolor="'.$style['bottom'].'">
<a href="./?p=0&v=xhtml">Назад в форум</a><br />
</td></tr>
</table></body></html>');
}
}
elseif(!preg_match("|^[<>@[] =#!?*-._0-9a-zA-Zа-яА-Я]+$|u", $_POST['name']) or strlen($_POST['name']) > 15)
{
$title = "Ошибка";
if($version == "wml")
{
echo(doctype($title).'
Ник может содержать только знаки русского и латинского алфавита, пробел, цифры, точку(.), тире(-), восклицательный знак(!), знак равенства(=), круглые и квадратные скобки([,],(,)), сабака(@) и знак додчеркивания(_)! <br />
Также количество символов в нике не может превышать 15!
<a href="./?p=0&v=wml">Назад в форум</a><br />
</p></card></wml>');
} elseif($version == "xhtml")
{
echo('<html>
<head>
<title>'.$title.'</title>
</head>
<body bgcolor="'.$style['background'].'" link="'.$style['link'].'" vlink="'.$style['link'].'" text="#000000">
<table align="center" border="0" cellspacing="1" cellpadding="5" width="350">
<tr><td align="center" bgcolor="'.$style['title'].'">
<font color="#FFFFFF"><b>'.$title.'</b></font>
</td></tr>
<tr bgcolor="'.$style['text'].'"><td>
Ник может содержать только знаки русского и латинского алфавита, пробел, цифры, точку(.), тире(-), восклицательный знак(!), знак равенства(=), круглые и квадратные скобки([,],(,)), сабака(@) и знак додчеркивания(_)! <br />
Также количество символов в нике не может превышать 15!
</td></tr>
<tr><td bgcolor="'.$style['bottom'].'">
<a href="./?p=0&v=xhtml">Назад в форум</a><br />
</td></tr>
</table></body></html>');
}
} elseif(!preg_match("|^[-._0-9a-zA-Z]+$|", $_POST['password']) or strlen($_POST['password']) > 15)
{
$title = "Ошибка";
if($version == "wml")
{
echo(doctype($title).'
Пароль может содержать только знаки латинского алфавита, цифры, точку, тире и знак додчеркивания(_)! <br />
Также количество символов в пароле не может превышать 15!
<a href="./?p=0&v=wml">Назад в форум</a><br />
</p></card></wml>');
} elseif($version == "xhtml")
{
echo('<html>
<head>
<title>'.$title.'</title>
</head>
<body bgcolor="'.$style['background'].'" link="'.$style['link'].'" vlink="'.$style['link'].'" text="#000000">
<table align="center" border="0" cellspacing="1" cellpadding="5" width="350">
<tr><td align="center" bgcolor="'.$style['title'].'">
<font color="#FFFFFF"><b>'.$title.'</b></font>
</td></tr>
<tr bgcolor="'.$style['text'].'"><td>
Пароль может содержать только знаки латинского алфавита, цифры, точку, тире и знак додчеркивания(_)! <br />
Также количество символов в пароле не может превышать 15!
</td></tr>
<tr><td bgcolor="'.$style['bottom'].'">
<a href="./?p=0&v=xhtml">Назад в форум</a><br />
</td></tr>
</table></body></html>');
}
} else {
$arr = array(
'a','b','c','d','e','f',
'g','h','i','j','k','l',
'm','n','o','p','q','r',
's','t','u','v','x','y',
'z','A','B','C','D','E',
'F','G','H','I','J','K',
'L','M','N','O','P','Q',
'R','S','T','U','V','X',
'Y','Z','1','2','3','4',
'5','6','7','8','9','0');
$sid = $arr[rand(0, 60)].$arr[rand(0, 60)].$arr[rand(0, 60)].$arr[rand(0, 60)].$arr[rand(0, 60)].$arr[rand(0, 60)].$arr[rand(0, 60)].$arr[rand(0, 60)].$arr[rand(0, 60)].$arr[rand(0, 60)];
if(mysql_result(mysql_query("SELECT COUNT(*) FROM `users` WHERE username='".$_POST['name']."'"), 0))
{
// Ник зареган. Проверяем правильность пароля.
if(mysql_result(mysql_query("SELECT COUNT(*) FROM `users` WHERE username='".$_POST['name']."' AND password='".$_POST['password']."'"), 0))
{
// Пароль верен. Проверяем есть ли сессия с такими данными.
if(mysql_result(mysql_query("SELECT COUNT(*) FROM `session` WHERE nickname='".$_POST['name']."' AND password='".$_POST['password']."'"), 0))
{
mysql_query("UPDATE `session` SET sid='".$sid."', time='".time()."' WHERE nickname='".$_POST['name']."' AND password='".$_POST['password']."'");
} else {
// Если сессия не создана, то создаем ее
mysql_query("INSERT INTO `session` VALUES('".$sid."', '".$_POST['name']."', '".$_POST['password']."', '".time()."')");
}
$auth .= 1;
} else {
$auth .= 0;
}
} else
{
// Ник не зареган.
mysql_query("INSERT INTO `users` VALUES(0, '".$_POST['name']."', '".$_POST['password']."', '".time()."', 'user', ".time().", '', '', null, '', '', 'n', '', 'normal', 2000, 0, 'off', 0, 0, 0, '', '', 'user', 'a' , '', '', '', '')");
mysql_query("INSERT INTO `session` VALUES('".$sid."', '".$_POST['name']."', '".$_POST['password']."', '".time()."')");
$auth .= 1;
/*$errormsg = "Ошибка! Авторизация новых ников временно приостановлена!<br />
На данный момент идёт разработка нового сценария Форума.<br />
Чтобы узнать все подробности, перейдите по ссылке: <a href="http://wmf.su/?p=4&t=869&v=xhtml"><b>http://wmf.su/?p=4&t=869&v=xhtml</b></a><br />";*/
}
if($auth == 1)
{
if($fcode){
unlink('./codes/'.$_GET['rnd'].'.txt');
}
$title = 'Авторизация успешна';
if($version == "wml")
{
header("Content-type: text/vnd.wap.wml; charset=utf-8");
header("Cache-Control: no-cache");
echo(doctype($title).'
Вы успешно авторизовались! <br />
<a href="./?p=0&v=wml&sid='.$sid.'&rnd='.$ref.'">Вход в форум</a><br />
<a href="./?p=33&v=wml&sid='.$sid.'&rnd='.$ref.'">Кабинет</a><br />
<a href="./?p=28&logout=1&v=wml&sid='.$sid.'">Выход</a><br />
</p></card></wml>');
} elseif($version == "xhtml")
{
$_GET['sid'] = $sid;
include("users.php");
header("Content-type: text/html; charset=utf-8");
header("Last-Modified:".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-cache, must-relative");
echo('
<html>
<head>
<title>'.$title.'</title>
</head>
<body bgcolor="'.$style['background'].'" link="'.$style['link'].'" vlink="'.$style['link'].'" text="#000000">
<table align="center" border="0" cellspacing="1" cellpadding="5" width="350">
<tr><td align="center" bgcolor="'.$style['title'].'">
<font color="#FFFFFF"><b>'.$title.'</b></font>
</td></tr>
<tr bgcolor="'.$style['text'].'"><td>
Вы успешно авторизовались. Теперь Вы сможете более эффективно пользоваться форумом.
</td></tr>
<tr><td bgcolor="'.$style['bottom'].'">
<a href="./?p=0&v=xhtml&sid='.$sid.'&rnd='.$ref.'">Вход в форум</a><br />
<a href="./?p=33&v=xhtml&sid='.$sid.'&rnd='.$ref.'">Кабинет</a><br />
<a href="./?p=28&logout=1&v=xhtml&sid='.$sid.'">Выход</a><br />
</td></tr>
</table></body></html>');
}
}
/*elseif(!empty($errormsg))
{
$title = "Ошибка";
if($version == "wml")
{
header('Content-type: text/vnd.wap.wml; charset=utf-8');
header("Cache-Control: no-cache");
echo(doctype($title).$errormsg.'<br />---<br />
<a href="./?p=0&v=wml">Назад в форум</a><br />
</p></card></wml>');
} elseif($version == "xhtml")
{
header("Content-type: text/html; charset=utf-8");
header("Last-Modified:".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-cache, must-relative");
echo('<html>
<head>
<title>'.$title.'</title>
</head>
<body bgcolor="'.$style['background'].'" link="'.$style['link'].'" vlink="'.$style['link'].'" text="#000000">
<table align="center" border="0" cellspacing="1" cellpadding="5" width="350">
<tr><td align="center" bgcolor="'.$style['title'].'">
<font color="#FFFFFF"><b>'.$title.'</b></font>
</td></tr>
<tr bgcolor="'.$style['text'].'"><td>
'.$errormsg.'
</td></tr>
<tr><td bgcolor="'.$style['bottom'].'">
<a href="./?p=0&v=xhtml">Назад в форум</a><br />
</td></tr>
</table></body></html>');
}
}*/
else
{
$title = "Ошибка";
if($version == "wml")
{
header('Content-type: text/vnd.wap.wml; charset=utf-8');
header("Cache-Control: no-cache");
echo(doctype($title).'К сожалению, такой ник уже зарегистрирован. <br />
Пароль не верен! <br />---<br />
<a href="./?p=0&v=wml">Назад в форум</a><br />
</p></card></wml>');
} elseif($version == "xhtml")
{
header("Content-type: text/html; charset=utf-8");
header("Last-Modified:".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-cache, must-relative");
echo('<html>
<head>
<title>'.$title.'</title>
</head>
<body bgcolor="'.$style['background'].'" link="'.$style['link'].'" vlink="'.$style['link'].'" text="#000000">
<table align="center" border="0" cellspacing="1" cellpadding="5" width="350">
<tr><td align="center" bgcolor="'.$style['title'].'">
<font color="#FFFFFF"><b>'.$title.'</b></font>
</td></tr>
<tr bgcolor="'.$style['text'].'"><td>
К сожалению, такой ник уже зарегистрирован. <br />
Пароль не верен!
</td></tr>
<tr><td bgcolor="'.$style['bottom'].'">
<a href="./?p=0&v=xhtml">Назад в форум</a><br />
</td></tr>
</table></body></html>');
}
}
}
}
?>