View file include/auth.php

File size: 15.44Kb
<?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&amp;v=wml&amp;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&amp;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&amp;v=xhtml&amp;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&amp;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&amp;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&amp;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&amp;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&amp;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&amp;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&amp;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&amp;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&amp;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&amp;v=wml&amp;sid='.$sid.'&amp;rnd='.$ref.'">Вход в форум</a><br />
<a href="./?p=33&amp;v=wml&amp;sid='.$sid.'&amp;rnd='.$ref.'">Кабинет</a><br />
<a href="./?p=28&amp;logout=1&amp;v=wml&amp;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&amp;v=xhtml&amp;sid='.$sid.'&amp;rnd='.$ref.'">Вход в форум</a><br />
<a href="./?p=33&amp;v=xhtml&amp;sid='.$sid.'&amp;rnd='.$ref.'">Кабинет</a><br />
<a href="./?p=28&amp;logout=1&amp;v=xhtml&amp;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&amp;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&amp;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&amp;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&amp;v=xhtml">Назад в форум</a><br />
</td></tr>
</table></body></html>');
				}
			}
		}
	}
?>