[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: enter.php
DestWhite
Ребят помогите пожалуста, при регистрации человек вводит пароль под которым хочет заходить на проект, а потом когда заходит на главную и пытаеться войти под своим ником ему выдаёт что пароль не верен, из-за чего это может происходить?

Свернутый текст
define('INSIDE_ENTER_COW_49618537435576248293', true);
define('INSIDE_NO_TEST_USER_COW_584268941994126592', true);

include(getcwd().'/inc/db_connect.php');
include(getcwd().'/time.php');
mysql_query("SET CHARSET cp1251");
if (strlen($user) >= 45) {

$title = 'Ошибка!';
include("inc/html_header.php");
echo"<body bgcolor=EBEDEC><b><font color=red>Ошибка!</font></b><br>Что-то тут не так...";
exit;

}


$ctime = time();

$error = '';
$ip = $_SERVER['REMOTE_ADDR'];
$browser = GetEnv(HTTP_USER_AGENT);

// Восстановление забытого пароля
if ($_GET['lostpwd']){ include(getcwd().'/inc/enter/lostpwd.php'); }
else {
$user = mysql_escape_string($_POST['user']);
$pass = mysql_escape_string($_POST['pass']);

$infs = mysql_query("select id, user, pass, room from players where user='$user'");//изменил Кузнецов С.А. 2008-02-22
$info = mysql_fetch_array($infs);




// Перса нет, ищем в других городах
if (mysql_num_rows($infs)==0) $error="Логин \"<b>".$user."</b>\" не найден в базе!";
else {

if (empty($user) || empty($pass)){
$error = "Неверный запрос!";
}
//изменил Кузнецов С.А. 2008-03-01
elseif ($info['pass']!=cryptpassdb($pass_ck,$info['id']) && !empty($info['user'])) {
$error = "Неверный пароль для \"<b>".$user."</b>\"";
mysql_query("INSERT INTO security (id, user, ip, result) values('$ctime', '$user', '$ip', '2')");
// insert_msg("Была предпринята неудачная попытка логина с IP: <b>$ip</b>","$info[user]",4,"","$info[room]","1");
}

if ($inf['bloked']){
$error = "Персонаж <b>\"".$inf['user']."\"</b> заблокирован!<br>Причина блокировки: <font color=red><b>".$inf['bloked']."</b></font>";
}

}



if(empty($error)) {

$auth_code=md5($ctime-rand(1,1000));

SetCookie("user", $inf['user']);
SetCookie("pass", $pass_ck);//изменил Кузнецов С.А. 2008-03-01
SetCookie("db_auth", $auth_code);
SetCookie("db_user_id", $inf['id']);

mysql_query("LOCK TABLE authorization WRITE");

mysql_query("DELETE FROM `authorization` WHERE id='".$inf['id']."'");
mysql_query("INSERT INTO `authorization` VALUES('".$inf['id']."','".$auth_code."')");

mysql_query("UNLOCK TABLES");

// Заносим в список онлайн
if (mysql_num_rows(mysql_query("SELECT * FROM online WHERE id='".$inf['id']."'")) == 1)
mysql_query("UPDATE online SET level='".$inf['level']."', rank='".$inf['rank']."', tribe='".$inf['tribe']."', room='".$inf['room']."', lpv='".$ctime."' WHERE id='".$inf['id']."'");
else
mysql_query("INSERT INTO online values ('".$inf['id']."','".$inf['user']."','".$inf['level']."','".$inf['rank']."','".$inf['tribe']."','".$ctime."','".$inf['room']."')");
//

mysql_query("INSERT INTO security (id, user, ip, result) values('".$ctime."', '".$info['user']."','$ip','1')");
mysql_query("UPDATE `players` SET `lpv`='".time()."' WHERE `id` = '".$inf['id']."'");
header("Location: game.php");
} else { ?>
<title>Ошибка!</title><link rel=stylesheet type='text/css' href='<? echo $img_server; ?>/i/main.css'>
<
body bgcolor=EBEDEC>
<
font color=red><b>Ошибка:</b></font><br><?=$error?>
<?
}
}





Спустя 2 минуты, 48 секунд (22.03.2010 - 22:45) sergeiss написал(а):
Лучше все-таки код так разместить, а не в виде файла.

Спустя 1 минута, 5 секунд (22.03.2010 - 22:46) DestWhite написал(а):
Да так намного лучше спасибо

Спустя 31 минута, 35 секунд (22.03.2010 - 23:17) sergeiss написал(а):
Прокомментируй подробнее, что же тут получается, а что - не получается.

Спустя 2 минуты, 50 секунд (22.03.2010 - 23:20) DestWhite написал(а):
Значит так: когда при регистрации персонажа ввожу логин, пароль, пишет регистрация прошла успешно зайдите с главной страницы.
Вот, что получаеться: когда я ввожу логин( который регестрировал) и пароль( который ставил при регистрации) нажимаю ентер, мне пишет неправельный пароль для персонажа DestWhite( пример ника)
Подскажите что не так в коде, что выдаёт такую ошибку?
Из-за чего не принимаеться пароль который прописываеться при регистрации

Спустя 20 минут, 9 секунд (22.03.2010 - 23:40) sergeiss написал(а):
Я не совсем понял логику вот этого куска:

Цитата (DestWhite @ 22.03.2010 - 23:42)
if (empty($user) || empty($pass)){
$error = "Неверный запрос!";
}
    //изменил Кузнецов С.А. 2008-03-01
elseif ($info['pass']!=cryptpassdb($pass_ck,$info['id']) && !empty($info['user'])) {
$error = "Неверный пароль для \"<b>".$user."</b>\"";
mysql_query("INSERT INTO security (id, user, ip, result) values('$ctime', '$user', '$ip', '2')");
//insert_msg("Была предпринята неудачная попытка логина с IP: <b>$ip</b>","$info[user]",4,"","$info[room]","1");
}

if ($inf['bloked']){
$error = "Персонаж <b>\"".$inf['user']."\"</b> заблокирован!<br>Причина блокировки: <font color=red><b>".$inf['bloked']."</b></font>";
}

}

Во-первых, сначала ты проверяешь, что у тебя уже есть результат (больше нуля строк в выборке), а затем проверяешь, нет ли пустоты в имени или пароле. И если где-то пусто, то говоришь, что запрос неверный. Но попасть сюда, в это место, можно только в случае, если запрос был верный. Это как вообще????
Далее. Что за функция cryptpassdb(), что за переменная $pass_ck? И $info['user'] не может быть пустым (empty)... Потому что иначе запрос не даст результата! Потому что в запросе будет условие на пустоту логина. Поэтому условие !empty($info['user']) в данном месте всегда должно быть верным.

И откуда появились $inf['bloked'] и $inf['user']? Их тут не было...

Одни вопросы от этого блока кода!!! Подумай над ними.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.