<center><h4>АККАУНТ</H4><hr>
| <a href="index.php?id=reg_true">Регистрация</a> 
| <a href="index.php?id=changepassword">Сменить пароль</a> 
| <a href="index.php?id=repass1">Востановить пароль</a>
|<a href=http://support.lin2dream.ru>Написать GMу</a>|<br><hr>
 </center><ul>  

<H4>Регистрация</h4>

<br><BR><ul>
<LI> Аккаунт и пароль не могут быть пустыми.<BR>
<LI> Аккаунт и пароль не могут содержать менее 4 знаков
и больее 20 знаков.<BR>
<LI>Аккаунт и пароль пишутся латинскими буквами или цифрами.<BR>
<BR><BR>
</ul>

<script type="text/javascript">//<![CDATA[
function isAlphaNumeric(value)
{
  if (value.match(/^[a-zA-Z0-9_]+$/))
    return true;
  return false;
}
function checkform(f)
{
  if (f.account.value=="")
  {
    alert("Введите аккаунт");
    return false;
  }
  if (!isAlphaNumeric(f.account.value))
  {
    alert("Аккаунт должен состоять из английских букв и/или цифр!");
    return false;
  }
  if (f.password.value=="")
  {
    alert("Введите пароль");
    return false;
  }
  if (!isAlphaNumeric(f.password.value))
  {
    alert("Пароль должен состоять из английских букв и/или цифр!");
    return false;
  }
  if (f.password2.value=="")
  {
    alert("Введите пароль повторно");
    return false;
  }
  if (f.password.value != f.password2.value)
  {
    alert("Пароль и повтор пароля не совпадают!");
    return false; 
  }
  if (f.email.value=="")
  {
    alert("Введите E-mail");
    return false;
  }
  if (!f.email.value.match(/^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-]+)+/))
  {
    alert("Это не e-mail!");
    return false;
  }
  if (f.question1.value=="")
  {
    alert("Введите Секретный вопрос №1");
    return false;
  }
  if (f.answer1.value=="")
  {
    alert("Введите Секретный ответ №1");
    return false;
  }
  if (f.question2.value=="")
  {
	alert("Введите Секретный вопрос №2");
    return false;
  }
  if(f.answer2.value=="")
  {
    alert("Введите Секретный ответ №2");
    return false;
  }
  return true;
}
//]]></script>
</head>
<body>
<form method="post" action="index.php?id=reg_true" onsubmit="return checkform(this)">
<table>
<?php
$input[]=Array("text"    , "account"  , 20);
$input[]=Array("password", "password" , 20);
$input[]=Array("password", "password2", 20);
$input[]=Array("text"    , "email"    , 40);
$input[]=Array("text"    , "question1", 40);
$input[]=Array("text"    , "answer1"  , 40);
$input[]=Array("text"    , "question2", 40);
$input[]=Array("text"    , "answer2"  , 40);
for ($i=0; $i<count($input); $i++)
{
$Lang["accounts_account"]="Аккаунт";
$Lang["accounts_email"]="E-mail";
$Lang["accounts_password"]="Пароль";
$Lang["accounts_password2"]="Повторите пароль";
$Lang["accounts_question1"]="Секретный вопрос №1";
$Lang["accounts_question2"]="Секретный вопрос №2";
$Lang["accounts_answer1"]="Секретный ответ №1";
$Lang["accounts_answer2"]="Секретный ответ №2";
$Lang["accounts_accountnotalphanumeric"]="Аккаунт должен состоять из английских букв и/или цифр!";
$Lang["error_error"]='Ошибка: ';
$Lang["accounts_passwordnotalphanumeric"]="Пароль должен состоять из английских букв и/или цифр!";
$Lang["accounts_notemail"]="Это не e-mail!";
$Lang["accounts_registered"]="<b>Аккаунт успешно зарегистрирован !<br><br>Обязательно запомните эти данные.<br><br></b>";
$Lang["accounts_email_error"]="Ошибка при отправке e-mail'а";
$Lang["accounts_alreadyexist"]="Такой аккаунт уже существует";
 print '<tr>
  <td>'.$Lang["accounts_".$input[$i][1]].'</td>
  <td><input type="'.$input[$i][0].'" name="'.$input[$i][1].'" maxlength="'.$input[$i][2].'" value="'.@$_POST[$input[$i][1]].'" /></td>
 </tr>
 ';
}
?>
 <tr>
  <td colspan="2" style="text-align: center;"><br /><input type="submit" value="Зарегистрироваться" /></td>
 </tr>
</table>
</form>
<?php
if ($page="index.php" && $_POST['account'] && strlen($_POST['account'])<=20 && $_POST['password'] && $_POST['password2'] && $_POST['password']==$_POST['password2'] && $_POST['email'] && strlen($_POST['email'])<=20 && $_POST['question1'] && strlen($_POST['question1']<=40) && $_POST['question2'] && strlen($_POST['question2']<=40) && $_POST['answer1'] && strlen($_POST['answer1']<=40) && $_POST['answer2'] && strlen($_POST['answer2']<=40))
{
 // anti-injection
  if (!eregi("^[a-zA-Z0-9_]+$", $_POST['account']))
    die ("<p class=\"error\">" . $Lang["error_error"] . $Lang["accounts_accountnotalphanumeric"] . "</p>");
  if (!eregi("^[a-zA-Z0-9_]+$", $_POST['password']))
    die ("<p class=\"error\">" . $Lang["error_error"] . $Lang["accounts_passwordnotalphanumeric"] . "</p>");
  if (!eregi("^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-]+)+", $_POST['email']))
    die ("<p class=\"error\">" . $Lang["error_error"] . $Lang["accounts_notemail"] . "</p>");
  
  $banwords=Array("'", "\"", ",", ";", "--", "#");
  $_POST['question1']=str_replace($banwords, '', $_POST['question1']);
  $_POST['question2']=str_replace($banwords, '', $_POST['question2']);
  $_POST['answer1']=str_replace($banwords, '', $_POST['answer1']);
  $_POST['answer2']=str_replace($banwords, '', $_POST['answer2']);
  // end anti-injection

  mysql_query("INSERT INTO accounts (login, password, lastactive, access_level, lastIP, email, question1, answer1, question2, answer2) VALUES ('".$_POST['account']."', '". base64_encode(pack('H*', sha1(utf8_encode($_POST['password'])))) ."', NULL, 0, NULL, '".$_POST['email']."', '".$_POST['question1']."', '".$_POST['answer1']."', '".$_POST['question2']."', '".$_POST['answer2']."')", $link);
  switch (mysql_errno())
  {
    case 0:
	  $msg1 = "<table border=\"0\">\n<tr colspan=\"2\"><td class=\"error\">" .$Lang["accounts_registered"]. "</td></tr>\n<tr><td>" .$Lang["accounts_account"]. "</td><td>" .$_POST['account']. "</td></tr>\n";
      $msg3 = "<tr><td>" .$Lang["accounts_email"]. "</td><td>" .$_POST['email']. "</td></tr>\n<tr><td>" .$Lang["accounts_question1"]. "</td><td>" .$_POST['question1']. "</td></tr>\n<tr><td>" .$Lang["accounts_answer1"]. "</td><td>" .$_POST['answer1']. "</td></tr>\n<tr><td>" .$Lang["accounts_question2"]. "</td><td>" .$_POST['question2']. "</td></tr>\n<tr><td>" .$Lang["accounts_answer2"]. "</td><td>" .$_POST['answer2']. "</td></tr>\n</table>";
      print "<br />\n".$msg1.$msg3;
      if ($L2JBS_config["mail_enable"])
	    if (!$ok=mail($_POST['email'], $L2JBS_lang["accounts_email_subject_registered"], $msg1."<tr><td>".$Lang["accounts_password"]."</td><td>".$_POST['password']."</td></tr>\n".$msg3, "Content-type: text/html; charset=UTF-8\r\nFrom: ".$L2JBS_lang["accounts_email_from"]))
		  print '<p class="error">'.$Lang["accounts_email_error"].'</p>';
	  break;
	case 1054: print '<p class="error">Необходимо изменить таблицу "accounts". See Readme.txt</p>'; break;
	case 1062: print '<p class="error">'.$Lang["accounts_alreadyexist"].'</p>'; break;
    default: print 'Error '.mysql_errno().': '.mysql_error(); break;
  }
}
?>

</body>
</html>
