Сама страница регистрации.
PHP код:
<?
echo '
<script>
function isEmailAddress(email) {
if (email.match(/^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-]+)+/)) {
return true;
} else {
return false;
}
}
function isAlphaNumeric(value) {
if (value.match(/^[a-zA-Z0-9]+$/)) {
return true;
} else {
return false;
}
}
function checkform() {
if(register.account.value=="") {
alert("Введите имя аккаунта")
return false;
}
if (!isAlphaNumeric(register.account.value)) {
alert("Аккаунт может содержать, только английские буквы и цифры!");
return false;
}
if(register.password.value=="") {
alert("Введите пароль!")
return false;
}
if (!isAlphaNumeric(register.password.value)) {
alert("Пароль может содержать, только английские буквы и цифры!");
return false;
}
if(register.password2.value=="") {
alert("Повторите пароль")
return false;
}
if(register.email.value=="") {
alert("Введите email")
return false;
}
if (!isEmailAddress(register.email.value)) {
alert("Введён неверный email!");
return false;
}
if(register.question1.value=="") {
alert("Введите первый #1 вопрос.")
return false;
}
if(register.answer1.value=="") {
alert("Введите первый #1 ответ.")
return false;
}
if(register.question2.value=="") {
alert("Введите второй #2 вопрос.")
return false;
}
if(register.answer2.value=="") {
alert("Введите ответ на второй #2 вопрос")
return false;
}
return true;
}
</script>
';
?>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<link href="../styles/style.css" rel="stylesheet" type="text/css">
<table width="99.2%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="cell-header"><meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="border-tl"> </td>
<td class="border-t h-cell t-bold">Регистрация аккаунта</td>
<td class="border-tr"> </td>
</tr>
<tr>
<td class="border-l"> </td>
<td class="n-cell">
<?php
connectdb($CONFIG['dbdbname'], $CONFIG['dbaddress'], $CONFIG['dbuser'], $CONFIG['dbpass']);
$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']);
$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 '<center>';
if ($rows>0) {
echo "Такой аккаунт уже существует!<br>";
$error = 1;
}
if ((strlen($account)<4 || strlen($account)>14)&& $account!="") {
echo "<font color=#FFFFFF>Аккаунт должен содержать от 4 до 14 символов!</font><br>";
$error = 1;
}
if ((strlen($password)<6 ||strlen($password)>16) && $password!="") {
echo "Пароль должен содержать от 6 до 16 символов!<br>";
$error = 1;
}
if ($password!=$password2) {
echo "Повторный пароль не совпадает с первым введённым паролем!<br>";
$error = 1;
}
$result = mssql_query (sprintf(CHECK_EMAIL, $email));
$rows=mssql_num_rows($result);
if ($CONFIG['maxemail']>0) {
if ($rows>=$CONFIG['maxemail']) {
echo "Исчерпан лимит аккаунтов на ( {$CONFIG['maxemail']} ) e-mail.<br>";
$error = 1;
}
}
if ((strlen($email)<7 ||strlen($email)>50) && $email!="") {
echo "Email должен содержать от 7 до 50 символов.<br>";
$error = 1;
}
if ((strlen($question1)<4 ||strlen($question1)>250) && $question1!="") {
echo "Первый секретный вопрос должен содержать от 4 до 250 символов.<br>";
$error = 1;
}
if (strlen($answer1)>16 && $answer1!="") {
echo "Первый ответ на секретный вопрос должен содержать от 1 до 16 символов.<br>";
$error = 1;
}
if ((strlen($question2)<4 ||strlen($question2)>250) && $question2!="") {
echo "Второй секретный вопрос должен содержать от 4 до 250 символов.<br>";
$error = 1;
}
if (strlen($answer2)>16 && $answer2!="") {
echo "Второй ответ на секретный вопрос должен содержать от 1 до 16 символов.<br>";
$error = 1;
}
echo "</div>";
}
if($error<2) {
echo '
<form name="register" action="?act=register" method="post" onsubmit="return checkform()" autocomplete="off">
<table cellspacing=0 border=0 cellpadding=0 align=center>
<tr>
<td colspan="2" class="c-header">Заполните правильно все поля для регистрации </td>
</tr>
<tr>
<td width=200 class="c-normal">
<div align="left">Аккаунт:<br>(от 4 до 14 англ. букв и цифр)
</div></td>
<td class="c-normal">
<div align=right>
<input type=text maxlength=14 name=account size="20">
</div>
</td>
</tr>
<tr>
<td class="c-normal">
<div align="left">Пароль:(не менее 8 символов: цифр, букв в разных регистрах):
</div></td>
<td class="c-normal">
<div align=right>
<input type=password maxlength=16 name=password size="20">
</div>
</td>
</tr>
<tr>
<td class="c-normal">
<div align="left">Повторите пароль:
</div></td>
<td class="c-normal">
<div align=right>
<input type=password maxlength=16 name=password2 size="20">
</div>
</td>
</tr>
<tr>
<td class="c-normal">
<div align="left">Email:
</div></td>
<td class="c-normal">
<div align=right>
<input type=text maxlength=50 name=email size="20">
</div>
</td>
</tr>
<tr>
<td class="c-normal">
<div align="left">Секретный вопрос №1:<br>(от 4 до 250 англ. букв и цифр)
</div></td>
<td class="c-normal">
<div align=right>
<input type=text maxlength=250 name=question1 size="20">
</div>
</td>
</tr>
<tr>
<td class="c-normal">
<div align="left">Ответ на секретный вопрос №1:<br>(от 1 до 16 англ. букв и цифр)
</div></td>
<td class="c-normal">
<div align=right>
<input type=text maxlength=16 name=answer1 size="20">
</div>
</td>
</tr>
<tr>
<td class="c-normal">
<div align="left">Секретный вопрос №2:<br>(от 4 до 250 англ. букв и цифр)
</div></td>
<td class="c-normal">
<div align=right>
<input type=text maxlength=250 name=question2 size="20">
</div>
</td>
</tr>
<tr>
<td class="c-normal">
<div align="left">Ответ на секретный вопрос №2:<br>(от 1 до 16 англ. букв и цифр)
</div></td>
<td class="c-normal">
<div align=right>
<input type=text maxlength=16 name=answer2 size="20">
</div>
</td>
</tr>
<tr><td colspan="2" class="c-normal"><input type=hidden name=register value="register">
<input type=submit name=submit value="Зарегистрироваться">
</td></tr>
</table>
</form>
';
}
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 "
<div align=center><strong>Аккаунт создан успешно!</strong><br><br>
";
if($CONFIG['displayssn']==1) {
echo "
SSN сгенерирован автоматически:<br>
{$ssn}<BR><BR>
";
}
echo '</div>';
}
} elseif($CONFIG['registration']==0) {
echo '<center>Регистрация отключена.</center>';
}
} elseif($maxaccounts==1) {
echo "<center>Лимит аккаунтов в {$CONFIG['maxaccounts']} шт.на 1 e-mail - исчерпан!</center>";
}
?>
<center>
<br>
Внимание!!! Нажимая на кнопку "Зарегистрироваться" вы автоматически соглашаетесь с <a href="?act=rules">нашими правилами</a> и обязуетесь их исполнять. Поэтому ознакомтесь с правилами в обязательном порядке.</center>
</td>
<td class="border-r"> </td>
</tr>
<tr>
<td class="border-bl"> </td>
<td class="border-b h-cell"><img src="skins/noname/images/line.gif"></td>
<td class="border-br"> </td>
</tr>
</table><img src="dot_5x5.gif" tppabs="images/dot_5x5.gif" width="5" height="5"><br> </td>
</tr>
</table>
</td>
Конфигурационный файл.
PHP код:
<?
$CONFIG['servername'] = "Lineage2"; // Server Name [Default: Lineage II Server]
$CONFIG['dbaddress'] = "zone-game"; // SQL IP Address [Default: localhost]
$CONFIG['dbuser'] = "sa"; // SQL Login Username [Default: sa]
$CONFIG['dbpass'] = "12345"; // SQL Login Password [Default: sas]
$CONFIG['dbdbname'] = "lin2db"; // Lineage II Database Database Name [Default: lin2db]
$CONFIG['worlddbname'] = "lin2world"; // Lineage II World Database Name [Default: lin2world]
$CONFIG['registration'] = "1"; // Enable Registration [Default: 1]
$CONFIG['maxaccounts'] = "0"; // Maximum Account Limit [Default: 0] (0 for unlimited)
$CONFIG['maxemail'] = "0"; // Maximum Accounts Per Email [Default: 1] (0 for unlimited)
$CONFIG['displayssn'] = "1"; // Display SSN at the End of Registration [Default: 1]
$CONFIG['email'] = "0"; // Enable Email Functions [Default: 0]
$CONFIG['emailaddress'] = ""; // Server Reply Email Address [Default: NULL]
$CONFIG['emailsmtp'] = ""; // SMTP Server for Sending Emails [Default: NULL]
$CONFIG['emailuser'] = ""; // Username for SMTP server [Default: NULL]
$CONFIG['emailpass'] = ""; // Password for SMTP server [Default: NULL]
?>