Есть ли ошибка в данном пхп коде?
PHP код:
<center><b>Регистрация</b></center><br>
<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>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td> </td>
</tr>
<?=$sep?>
</table>
<?
//connectdb($CONFIG['dbdbname'], $CONFIG['dbaddress'], $CONFIG['dbuser'], $CONFIG['dbpass']);
connectdb($CONFIG['dbdbname'], $mssql_addr, $mssql_user, $mssql_pass);
$result = mssql_query(sprintf(SELECT_COUNT_ACCOUNT));
$accounts = mssql_fetch_array($result);
$accounts = $accounts[0];
if($CONFIG['maxaccounts']==0)
{
$maxaccounts = 0;
}
elseif($accounts>=$CONFIG['maxaccounts'])
{
$maxaccounts = 1;
}
else
{
$maxaccounts = 0;
}
if($maxaccounts==0)
{
if($CONFIG['registration']==1)
{
$error = 0;
if(isset($_POST["register"])&&$_POST['register']=='register')
{
$error = 2;
//connectdb($CONFIG['dbdbname'], $CONFIG['dbaddress'], $CONFIG['dbuser'], $CONFIG['dbpass']);
connectdb($CONFIG['dbdbname'], $mssql_addr, $mssql_user, $mssql_pass);
$account = $_POST['account'];
$password = $_POST['password'];
$password2 = $_POST['password2'];
$email = $_POST['email'];
$question1 = $_POST['question1'];
$answer1 = $_POST['answer1'];
$question2 = $_POST['question2'];
$answer2 = $_POST['answer2'];
$account = antiinjection($account);
$password = antiinjection($password);
$password2 = antiinjection($password2);
$email = antiinjection($email);
$question1 = antiinjection($question1);
$answer1 = antiinjection($answer1);
$question2 = antiinjection($question2);
$answer2 = antiinjection($answer2);
$ssn = isset($_POST['ssn'])?$_POST['ssn']:null;
$result = mssql_query (sprintf(CHECK_ACCOUNT, $account));
$rows=mssql_num_rows($result);
echo '<table width="100%" cellspacing=0 border=0 cellpadding=0 align=center>
<tr><td class="n-cell b-tblr ac p-2 error">';
if ($rows>0)
{
echo '<font color=red><b><u>Такой аккаунт уже существует!</font><br><br>';
$error = 1;
}
if ((strlen($account)<4 || strlen($account)>14)&& $account!="")
{
echo "<font color=red><b><u>Аккаунт должен содержать от 4 до 14 символов!</font><br><br>";
$error = 1;
}
if ((strlen($password)<8 ||strlen($password)>16) && $password!="")
{
echo "<font color=red><b><u>Пароль должен содержать от 8 до 16 символов!</font><br><br>";
$error = 1;
}
if ($password!=$password2)
{
echo "<font color=red><b><u>Повторный пароль не совпадает с первым введённым паролем!</font><br><br>";
$error = 1;
}
$result = mssql_query (sprintf(CHECK_EMAIL, $email));
$rows=mssql_num_rows($result);
if ($CONFIG['maxemail']>0)
{
if ($rows>=$CONFIG['maxemail'])
{
echo "<font color=red><b><u>Исчерпан лимит аккаунтов на ( {$CONFIG['maxemail']} ) e-mail.</font><br><br>";
$error = 1;
}
}
if ((strlen($email)<7 ||strlen($email)>50) && $email!="")
{
echo "<font color=red><b><u>E-mail должен содержать от 7 до 50 символов.</font><br><br>";
$error = 1;
}
if ((strlen($question1)<4 ||strlen($question1)>250) && $question1!="")
{
echo "<font color=red><b><u>Первый секретный вопрос должен содержать от 4 до 250 символов.</font><br><br>";
$error = 1;
}
if (strlen($answer1)>16 && $answer1!="")
{
echo "<font color=red><b><u>Первый ответ на секретный вопрос должен содержать от 1 до 16 символов.</font><br><br>";
$error = 1;
}
if ((strlen($question2)<4 ||strlen($question2)>250) && $question2!="")
{
echo "<font color=red><b><u>Второй секретный вопрос должен содержать от 4 до 250 символов.</font><br><br>";
$error = 1;
}
if (strlen($answer2)>16 && $answer2!="")
{
echo "<font color=red><b><u>Второй ответ на секретный вопрос должен содержать от 1 до 16 символов.</font><br><br>";
$error = 1;
}
echo '</td></tr>';
if ($error == 1) echo $delimiter;
echo '</table>';
}
if($error<2)
{
?>
<ul>
<LI>Аккаунт и пароль не могут быть пустыми.<BR>
<LI>Аккаунт и пароль не могут содержать менее 8 и более 16 знаков.<BR>
<LI>Аккаунт и пароль пишутся латинскими буквами и(или) цифрами.<BR>
<LI>Восстановить или сменить пароль можно только в личном кабинете<BR>
<LI><span style='color: red'>Для защиты аккаунта используйте сложные пароли вида: 0g49Xt3Sx</span><BR>
<LI><span style='color: red'>Администрация не занимается восстановлением и сменой паролей!</span><BR><BR><BR>
</ul>
<table width="100%" cellspacing=0 border=0 cellpadding=0 align=center>
<tr>
<td class="n-cell b-lr">
<form method="post" action="index.php?x=register" onsubmit="return checkform(this)">
<table width="370" cellspacing=0 border=0 cellpadding=0 align=center>
<tr>
<td align=center>Аккаунт<br><input type=text maxlength=14 name=account></td>
<td align=center>Пароль<br><input type=password maxlength=16 name=password></td>
</tr>
<tr>
<td align=center> </td>
</tr>
<tr>
<td align=center>E-Mail<br><input type=text maxlength=50 name=email></td>
<td align=center>Повторить Пароль<br><input type=password maxlength=16 name=password2></td>
</tr>
<tr>
<tr>
<td align=center> </td>
</tr>
</tr>
<td align=center colspan="4" class="b-tb ar">
<center>
<script type="text/javascript" src="http://vkontakte.ru/js/api/share.js?5"></script><br>
<script type="text/javascript">document.write(VK.Share.button({url: "<?php echo $site; ?>"},{type: "round", text: "Рассказать о сервере"}));</script>
</center>
<br><br>
<input type=hidden name=register value="register">
<input style="cursor:pointer" type=submit name=submit value="Зарегистрироваться">
</td>
</table>
</form>
</td>
</tr>
</table>
<? }
function debugsql()
{
$result=@mssql_get_last_message();
foreach($result as $ley=>$value)
print $key . " = " . $value . "<br>";
}
if($error==2)
{
$ssn1 = mt_rand(1000000,9999999);
$ssn2 = mt_rand(100000,999999);
$ssn = $ssn1 . $ssn2;
$password = @encrypt($password);
$answer1= @encrypt($answer1);
$answer2= @encrypt($answer2);
mssql_query(sprintf(INSERT_SSN, $ssn, $account, $email));
mssql_query(sprintf(INSERT_USERACCOUNT, $account));
mssql_query(sprintf(INSERT_USERINFO, $account, $ssn));
mssql_query(sprintf(INSERT_USERAUTH, $account, $password, $question1, $question2, $answer1, $answer2));
echo '<table width="100%" cellspacing=0 border=0 cellpadding=0 align=center>
<tr><td><b><font color=green size=1 face=verdana>Аккаунт создан успешно.</font></b>
<script type="text/javascript" src="http://vkontakte.ru/js/api/share.js?5"></script><br><br>
<script type="text/javascript">document.write(VK.Share.button({url: "<?php echo $site; ?>"},{type: "round", text: "Рассказать о сервере"}));</script>
';
if($CONFIG['displayssn']==1)
{
echo "
<br>SSN сгенерирован автоматически: <b>{$ssn}</b><BR><BR>
ОБЯЗАТЕЛЬНО!!! запишите и сохраните его.<BR>
Без него Вы не сможете востановить свой аккаунт в случае его хищения.";
}
echo '</td></tr></table>';
}
}
elseif($CONFIG['registration']==0)
{
echo '<table width="100%" cellspacing=0 border=0 cellpadding=0 align=center>
<tr><td>Регистрация отключена.</td></tr></table>';
}
}
elseif($maxaccounts==1)
{
echo '<table width="100%" cellspacing=0 border=0 cellpadding=0 align=center>
<tr><td>Лимит аккаунтов в '.$CONFIG['maxaccounts'].' шт.на 1 e-mail - исчерпан!</td></tr></table>';
}
?>