Скрипт для автоматической регистрации пользователя
Код для регистрации пользователя выглядит следующим образом: Для начала необходимо создать страницу с формой для ввода данных о пользователе. Определимся с данными, которые хотим получать от пользователя. Нам будет достаточно Логина, Пароля и E-mail (для возможности восстановить пароль в случае утери).В страницу, в которой будет отображаться форма для ввода данных о игроке надо вставить следующий код:
<?
include "config.php"; // подключаем файл с конфигом
if(isset($_GET['step'])) $step = $_GET['step'];
if($step == 2)
{
// проверим соединение с mysql сервером
if(Test_mysql_connect() == false)
{
echo "<font color='#ff0000'> Ошибка!
Скорее всего игровой сервер неактивен, попробуйте зайти сюда позже.</font></a></font>";
End_page();
}
$savedata = "true"; //Сохранять или нет пользовательские данные, пароль логин , email в незашифрованном виде.
$fsname = $_SERVER['SCRIPT_NAME'];
$msconn = mysql_connect($dbhost, $dbuser, $dbpass);
if($msconn == FALSE)
{
echo "<font color='#ff0000'>Ошибка соединения.
</a></font>";
End_page();
}
if(!MYSQL_SELECT_DB($dbname))
{
echo "<font color='#ff0000'>БД не найдена! Скорее всего эта ошибка вызвана сбоем на сервере</font>"; End_page();
}
$login = trim($_POST[login]);
$pass = $_POST[pass];
$pass2 = $_POST[repeat];
$email = trim($_POST[email]);
if ($email == "")
{
echo ("<center><font color='#ff0000'>Вы не ввели e-mail</font><br>Обязательно укажите свой e-mail!</center>");
End_page();
}
if ($login == "")
{
echo ("<center><font color='#ff0000'>Вы не ввели логин</font></center>");
}
else
{
if ($pass == "")
{
echo ("<center><font color='#ff0000'>Пароль не может быть пустым</font></center>");
}
else
{
if ($pass == $pass2)
{
$q = mysql_query("SELECT * FROM accounts WHERE login='{$login}'");
if(!mysql_numrows($q) > "0")
{
$gamepass = base64_encode(pack("H*", sha1(utf8_encode($pass))));
$result = mysql_query("INSERT INTO accounts(login, password, lastactive, access_level, lastIP, lastServer, IPBlock)
VALUES('".$login."' , '".$gamepass."', '1', '0', '0.0.0.0', '1', '0')");
if($result == FALSE)
{
echo "Ошибка запроса. Свяжитесь с администрацией.";
End_page();
}
if ($savedata == "true")
{
// записываем во вторую таблицу данные юзера
$result = mysql_query("INSERT INTO accounts_info(login, pass, email) VALUES('".$login."', '".$pass."', '".$email."')");
if($result == FALSE)
{
echo "Аккаунт зарегистрирован, но произошли ошибки. Вы не сможете восстановить ваш пароль в случае утери.";
End_page();
}
}
echo ("<center>Аккаунт <font color='red'>".$login."</font> успешно зарегистрирован!</center>");
}
else
{
echo ("<center>Имя <font color='red'>".$login."</font> уже зарегистрировано, попробуйте другое.</center>");
}
}
else
{
echo ("<center><font color='#ff0000'>Пароли не совпадают</font></center>");
}
}
}
End_page();
}
else
{
?>
<form name="form1" method="post" action="?step=2">
<div align="center">
<table width="250" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="right"><font size="2">Логин</font> </td>
<td width="161"><label>
<input name="login" type="text" id="login">
</label><br><br>
</td>
</tr>
<tr>
<td align="right"><font size="2">Пароль</font> </td>
<td><label>
<input name="pass" type="password" id="pass">
</label><br><br>
</td>
</tr>
<tr>
<td align="right"><font size="2">Ещё раз</font> </td>
<td><label>
<input name="repeat" type="password" id="repeat">
</label><br><br>
</td>
</tr>
<tr>
<td align="right"><font size="2">E-mail</font> </td>
<td><label>
<input name="email" id="repeat">
</label>
</td>
</tr>
</table>
</div>
<br>
<label>
<input type="submit" name="Submit" value="Зарегистрироваться" >
</label>
</form><br>
<?
End_page();
}
function End_page()
{
?>
Здесь футер вашей страницы - то, что идёт внизу страницы
<?
exit;
}
?>
После загрузки страницы должны появиться текстовые поля для ввода данных игрока. Введите данные и нажмите кнопку "Зарегистрироваться". После этого будет предпринята попытка соединения с сервером MySql, который установлен на игровом сервере. Если попытка успешна, данные будут записаны в таблицу базы данных игроков. Если в таблице найдётся совпадение по логину, в регистрации будет отказано с выводом соответствующего сообщения.
Для того, чтобы была возможность возврата пароля необходимо сохранять данные пользователя в отдельной таблице в БД в незашифрованном виде. Эту таблицу надо создать на сервере MySql. Таблица должна иметь название "accounts_info" и иметь следующие поля: "login", "pass", и "email".
Вы можете скачать файл с этим скриптом.