[помощь] Регистрация аккаунта (mw 2.2)
Проблема в следующем: ни один скрипт регистрации для moy-web, найденный мною на форуме не регистрирует аккаунты.
Нашел множество тем с такими же проблемами, но у всех проблема была в запросе скрипта в БД. Но конфигах все указано правильно, и запросы в базу тоже соответствуют таблицам. Сборка - la2base 1.1.7.
Видимо что-то не пропускает скрипт... Он коннектится к базе, но не до конца. Например, если при регистрации указать уже существующий аккаунт, то он выдаст ошибку о том, что аккаунт уже существует.
P.S. Скрипт смены пароля работает.
Вот с МВ 2.2
проверял у меня работал
if(empty($mw))
{
header ("Location: ..");
exit;
}
?>
<center><h4>АККАУНТ</H4><hr>
| <a href="index.php?id=reg_false">Регистрация</a>
| <a href="index.php?id=changepassword2">Сменить пароль</a>
|<a href=index.php?id=msg>Написать GMу</a>|<br><hr>
</center>
<H4>Регистрация</h4>
<br><BR><ul>
<LI> Аккаунт и пароль не могут быть пустыми.<BR>
<LI> Аккаунт и пароль не могут содержать менее 4 знаков
и больее 15 знаков.<BR>
<LI>Аккаунт и пароль пишутся латинскими буквами или цифрами.<BR><BR><BR>
</ul>
<script type="text/javascript">//<![CDATA[
function isAlphaNumeric(value)
{
if (value.match(/^[a-zA-Z0-9]+$/))
return true;
else
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("444444");
return false;
}
if (f.password2.value=="")
{
alert("Не введен повтор пароля");
return false;
}
if (f.password.value!=f.password2.value)
{
alert("Не совпадает пароль");
return false;
}
return true;
}
//]]></script>
<form method="post" action="index.php?id=reg_false" onsubmit="return checkform(this)">
<table>
<tr>
<td>Логин</td>
<td><input type="text" name="account" maxlength="15" /></td>
</tr>
<tr>
<td>Пароль</td>
<td><input type="password" name="password" maxlength="15" /></td>
</tr>
<tr>
<td>Повторить пароль</td>
<td><input type="password" name="password2" maxlength="15" /></td>
</tr>
<tr>
<td colspan="2" style="text-align: center;"><br />
<input type="submit" name="submit" value="Регистрация" /></td>
</tr>
</table>
</form>
<?php
if(ereg("^([a-zA-Z0-9_-])*$", $_POST['account']) && ereg("^([a-zA-Z0-9_-])*$", $_POST['password']) && ereg("^([a-zA-Z0-9_-])*$", $_POST['password2']))
{
if ($page="index.php" && $_POST['account'] && strlen($_POST['account'])<16 && strlen($_POST['account'])>3 && $_POST['password'] && $_POST['password2'] && $_POST['password']==$_POST['password2'])
{
$check=mysql_query("select * from accounts where login='".$_POST['account']."'");
$check1=mysql_num_rows($check);
if($check1>0)
{
echo "<p clss='error'><b>Ошибка при регистрации: такой аккаунт уже сущетвует.</b></p>";
}
else
{
mysql_query("INSERT INTO accounts (login, password, access_level) VALUES ('".$_POST['account']."', '".base64_encode(pack('H*', sha1($_POST['password'])))."', 0)", $link);
mysql_close($link);
print '<p class="error"><b>Регистрация прошла успешно</b></p>';
}
}
else
{
print '<p class="error"><b> </b></p>'.mysql_error();
}
}
else
{
echo "Введенные вами данные не прошли проверку на безопасность. Пожалуйста, попробуйте зарегистрироваться с другим логином и паролем.";
}
?>
<br><br><br><br><br><br>
Я знаю, скрипты все рабочие, проблема в коннекте к базе. Пишет, что регистрация прошла успешно, а аккаунт не создается.
Рекомендую в следующий раз пользоваться поиском, так как данные проблемы были рассмотрены не раз!
А ошибка в названии таблицы access_level, так как у La2Base эта таблица называется accesslevel...И вобще DLE рулит, в топку этот МВ(совет)
if(empty($mw))
{
header ("Location: ..");
exit;
}
?>
<center><h4>АККАУНТ</H4><hr>
| <a href="index.php?id=reg_false">Регистрация</a>
| <a href="index.php?id=changepassword2">Сменить пароль</a>
|<a href=index.php?id=msg>Написать GMу</a>|<br><hr>
</center>
<H4>Регистрация</h4>
<br><BR><ul>
<LI> Аккаунт и пароль не могут быть пустыми.<BR>
<LI> Аккаунт и пароль не могут содержать менее 4 знаков
и больее 15 знаков.<BR>
<LI>Аккаунт и пароль пишутся латинскими буквами или цифрами.<BR><BR><BR>
</ul>
<script type="text/javascript">//<![CDATA[
function isAlphaNumeric(value)
{
if (value.match(/^[a-zA-Z0-9]+$/))
return true;
else
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("444444");
return false;
}
if (f.password2.value=="")
{
alert("Не введен повтор пароля");
return false;
}
if (f.password.value!=f.password2.value)
{
alert("Не совпадает пароль");
return false;
}
return true;
}
//]]></script>
<form method="post" action="index.php?id=reg_false" onsubmit="return checkform(this)">
<table>
<tr>
<td>Логин</td>
<td><input type="text" name="account" maxlength="15" /></td>
</tr>
<tr>
<td>Пароль</td>
<td><input type="password" name="password" maxlength="15" /></td>
</tr>
<tr>
<td>Повторить пароль</td>
<td><input type="password" name="password2" maxlength="15" /></td>
</tr>
<tr>
<td colspan="2" style="text-align: center;"><br />
<input type="submit" name="submit" value="Регистрация" /></td>
</tr>
</table>
</form>
<?php
if(ereg("^([a-zA-Z0-9_-])*$", $_POST['account']) && ereg("^([a-zA-Z0-9_-])*$", $_POST['password']) && ereg("^([a-zA-Z0-9_-])*$", $_POST['password2']))
{
if ($page="index.php" && $_POST['account'] && strlen($_POST['account'])<16 && strlen($_POST['account'])>3 && $_POST['password'] && $_POST['password2'] && $_POST['password']==$_POST['password2'])
{
$check=mysql_query("select * from accounts where login='".$_POST['account']."'");
$check1=mysql_num_rows($check);
if($check1>0)
{
echo "<p clss='error'><b>Ошибка при регистрации: такой аккаунт уже сущетвует.</b></p>";
}
else
{
mysql_query("INSERT INTO accounts (login, password, accesslevel) VALUES ('".$_POST['account']."', '".base64_encode(pack('H*', sha1($_POST['password'])))."', 0)", $link);
mysql_close($link);
print '<p class="error"><b>Регистрация прошла успешно</b></p>';
}
}
else
{
print '<p class="error"><b> </b></p>'.mysql_error();
}
}
else
{
echo "Введенные вами данные не прошли проверку на безопасность. Пожалуйста, попробуйте зарегистрироваться с другим логином и паролем.";
}
?>
<br><br><br><br><br><br>
— I am DJ
с каких это пор таблица называется accesslevel? прочитай первый пост, все запросы сходятся! а насчет ДЛЕ не спорю, но нужно именно МВ.
ну во 1 ето не таблица а поле....а во 2 у ла2бейз оно вроде access_level а не accesslevel (просто при себе сечас нету базы...знаю что она отличается от Эму, а в Эму она accessLevel)
точно такая же беда, и что самое интересное невыдает никаких видимых ошибок базы. пишет что регистрация прошла супешно.
вот, замените этот файл, у кого проблемы с регистрацией..
_http://dump.ru/file/2344923
Chris: вот, замените этот файл, у кого проблемы с регистрацией..
_http://dump.ru/file/2344923
в 4 посте тоже самое. еще раз говорю, проблема не в скрипте, а скорее всего в коннекте с базой.
проблема в именно скрипте, я проправил и теперь нормально регается через сайт. сборка (l2emu)
Может хватит набивать посты, а?!! СКРИПТ РАБОЧИЙ, ПРОВЕРЯЛ НА ДРУГОЙ БАЗЕ, ВСЁ РАБОТАЕТ. но в удаленной базе аккаунты не регистрируются, хотя пишет, что он успешно зарегистрирован...
Это не скрипт,у меня такое было,ток вот точно не повню что зделал,хм проверь пути к базе все по сиди и всё проверь,может косяк найдёш..
— Ушол в себя - вернусь не скоро...






