Сообщений: 6
Тем: 0
Зарегистрирован: Feb 2010
Репутация:
0
Прошу дать нормальный ответ с разъяснениями
Сообщений: 191
Тем: 12
Зарегистрирован: Aug 2009
Репутация:
48
Renhor Написал:Прошу дать нормальный ответ с разъяснениями
Кароче, я буду краток, виложи содержимое файла регистрации ( с расширением .php - если кто не знал  ) сюда, я посмотрю и отредагирую...
Сообщений: 6
Тем: 0
Зарегистрирован: Feb 2010
Репутация:
0
02-10-2010, 08:42 AM
(Сообщение последний раз редактировалось: 02-10-2010, 01:10 PM PuShKinG.)
Сообщений: 643
Тем: 44
Зарегистрирован: Mar 2009
Репутация:
3,268
02-10-2010, 01:24 PM
(Сообщение последний раз редактировалось: 02-10-2010, 02:19 PM PuShKinG.)
Скрипт:
PHP код: <?php
include "config.php";
$database_encoding = 'CP1251';
$tbc = 3;
$realmd = mysql_connect("$host:$port", "$user", "$pass", True);
mysql_selectdb("$db1", $realmd);
$world = mysql_connect("$host:$port", "$user", "$pass", True);
mysql_selectdb("$db2", $world);
$characters = mysql_connect("$host:$port", "$user", "$pass", True);
mysql_selectdb("$db3", $characters);
echo "
<script type=\"text/javascript\">
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;
}
}
</script>";
echo "
<center><font size=3>Регистрация</font></center>
<font color=#00CC00>
</font><br>
<br>
<center>
<form method=post action=reg.php onsubmit=\"return checkform(this)\">
<table>
<tr>
<td><font color=white>*</font> Логин:</td>
<td><input type=text name=account maxlength=20></td>
</tr>
<tr>
<td><font color=white>*</font> Пароль:</td>
<td><input type=password name=password maxlength=20></td>
</tr>
<tr>
<td><font color=white>*</font> Повторите пароль:</td>
<td><input type=password name=password2 maxlength=20></td>
</tr>
<tr>
<td><font color=white>*</font> E-mail:</td>
<td><input type=text name=email maxlength=32></td>
</tr>
<tr>
<td colspan=2 style=\"text-align: center;\"><br><input type=submit value=Зарегистрироваться></td>
</tr>
</table>
</form></center>";
if (isset($_POST['account'])) {
if ($_POST['account'] && strlen($_POST['account'])<=20 && strlen($_POST['account'])>=3 && strlen($_POST['password'])>=3 && $_POST['password'] && $_POST['password2'] && $_POST['password']==$_POST['password2']) {
if (!eregi("^[a-zA-Z0-9_]+$", $_POST['account']))
die ("<p>Error: SQL-Injection</p>");
if (!eregi("^[a-zA-Z0-9_]+$", $_POST['password']))
die ("<p>Error: SQL-Injection</p>");
$pass = ($_POST['password']);
$username = ($_POST['account']);
$result = mysql_query("SELECT * FROM account WHERE username='".$_POST['account']."' AND sha_pass_hash='$pass'", $realmd);
if (mysql_num_rows($result) != 0) {
echo "<center><p><font color=#CC0000><b>Такой аккаунт уже существует!</b></font></p></center>";
} else {
if (!mysql_query("INSERT INTO account (username, sha_pass_hash, gmlevel, email, expansion) VALUES ('$username', SHA1(CONCAT(UPPER('$username'),':',UPPER('$pass'))), 0, '".$_POST['email']."', $tbc)", $realmd)) {echo "<center><p><font color=#CC0000><b>Ошибка</b></font></p></center>";} else {echo "<center><p><font color=#00CC00><b>Аккаунт успешно зарегестрирован!</b></font></p></center>";}
}
} else {
echo "<center><p><font color=#CC0000><b>Проверьте правильность ввода!</b></font></p></center>";
}
}
?>
С конфигом:
PHP код: <?php
//==========================Регистрация====================
$db1 = "realmd"; /**Название базы realmd**/
$db2 = "mangos"; /**Название базы mangos**/
$db3 = "characters"; /**Название базы characters**/
$host = "localhost"; /**Адрес БД, по дефолту localhost**/
$user = "root"; /**Логин к БД**/
$pass = "mangos"; /**Пароль к БД**/
$port = "3306"; /**Порт к БД**/
$database_encoding="utf8_general_ci"; /**Кодировка БД**/
?>
Работает отлично.
Сообщений: 65
Тем: 6
Зарегистрирован: Dec 2009
Репутация:
60
Цитата:$database_encoding="utf8_general_ci"; //нетрогать
ёмаё.. бывает такое.
Сообщений: 6
Тем: 0
Зарегистрирован: Feb 2010
Репутация:
0
И откуда интересно тогда ошибка??? Я все раз 5-6 перепроверил все конфиги. Не у одного меня такая ошибка
Сообщений: 191
Тем: 12
Зарегистрирован: Aug 2009
Репутация:
48
Renhor Написал:И откуда интересно тогда ошибка??? Я все раз 5-6 перепроверил все конфиги. Не у одного меня такая ошибка
С БД ничего не делал? Может какаято таблица ( именно по регистрации ) не работает правильно, попробуй оптимизировать ее...
Сообщений: 6,450
Тем: 262
Зарегистрирован: Nov 2007
Репутация:
44,165
Renhor, не у одного вас, а у кого еще? Сравните запросы со структурой таблиц, где-то там загвоздка.
PuShKinG, запрос на проверку существующего аккаунта не верен:
PHP код: <?php
$result = mysql_query("SELECT * FROM account WHERE username='".$_POST['account']."' AND sha_pass_hash='$pass'", $realmd);
Потому как нужно проверять только username, а здесь проверка и пароля.
Сообщений: 191
Тем: 12
Зарегистрирован: Aug 2009
Репутация:
48
PHP код: <?php
if (!mysql_query("INSERT INTO account (username, sha_pass_hash, email, expansion) VALUES ('$username', SHA1(CONCAT(UPPER('$username'),':',UPPER('$pass'))), 0, '".$_POST['email']."', $tbc)", $realmd)) {echo "<center><p><font color=#CC0000><b>Ошибка</b></font></p></center>";} else {echo "<center><p><font color=#00CC00><b>Аккаунт успешно зарегестрирован!</b></font></p></center>";}
Вот ето отвечает за вивод ОШИБКА, что здесб не ладненько....
Сообщений: 2
Тем: 0
Зарегистрирован: Feb 2010
Репутация:
0
PROGRAMMATOR Написал:Renhor, не у одного вас, а у кого еще? Сравните запросы со структурой таблиц, где-то там загвоздка. У меня тоже,при чем у меня была более старая версия этого сайта и все работало нормально,но после того,как я отключил сайт и сервер,а затем,спустя время вновь взялся за это (вчера) регистрация выдавала ошибку.
Быть может это вовсе не ошибки в коде,а я не все везде настроил правильно?Хотя нет,вроде бы все правильно. (но я не вебмастер)
|