Есть форма входа пользователя в свой профиль и есть обработчик.
Проблема: не хочет проверятся $_POST['password'], т.е если в форму ввожу свой логин и пароль, всё ОК, но если ввожу свой логин и левый пароль - тоже всё ОК.
<?php session_start();
include 'blocks/db.php';
if(isset($_POST['login']) && $_POST['password']) {
$result = mysql_query("SELECT `login`, `password`
FROM `users`
WHERE `login` = '{$_POST['login']}' AND `password` = '{$_POST['password']}'
", $db);
$row = mysql_fetch_assoc($result);
$login = $row['login'];
$password = $row['password'];
echo $password; echo $login;
}
else { echo "error"; }
?>
С базы всё вытаскивается глако. echo $password; echo $login; для проверки. При любом пароле выведет: 123admin.
Прошу заметить, логин проверяет, чужой логин не пропустит, а пароль...Пускает.
Спустя 43 минуты, 56 секунд (8.01.2011 - 03:52) inpost написал(а):
RCuPeR
Назови переменную другим именем: password2, к примеру, и посмотри, что выводится. А вообще, нужно проверять через: mysql_num_rows, прошел ли SELECT и есть ли такие поля.
В добавок
Назови переменную другим именем: password2, к примеру, и посмотри, что выводится. А вообще, нужно проверять через: mysql_num_rows, прошел ли SELECT и есть ли такие поля.
В добавок
! |
inpost |
Спустя 9 часов, 39 минут, 51 секунда (8.01.2011 - 13:32) RCuPeR написал(а):
Ничего не получается.
Это мистика какае-то.
ПЫСЫ. За мат извиняюсь, убери если не трудно, я походу не имею прав на редактирование топиков.
Это мистика какае-то.
<?php session_start();
include 'blocks/db.php';
if(!empty($_POST['login']) && $_POST['password']) {
$result = mysql_query("SELECT `login`, `password`
FROM `users`
WHERE `login` = '{$_POST['login']}' AND `password` = '{$_POST['password']}'
", $db);
$num = mysql_num_rows($result);
if($num !== 0){
$row = mysql_fetch_assoc($result);
$login = $row['login'];
$password2 = $row['password'];
echo $password2; echo $login;
}
else { echo "Такой записи не существует.";}
}
else { echo "error"; }
?>
ПЫСЫ. За мат извиняюсь, убери если не трудно, я походу не имею прав на редактирование топиков.
Спустя 10 минут, 13 секунд (8.01.2011 - 13:42) Ангелочек написал(а):
Чуется рука великого гуру дяди Жени.
Проверь базу может там поле password например pasword
Проверь базу может там поле password например pasword
Спустя 1 минута, 46 секунд (8.01.2011 - 13:44) nugle написал(а):
Так попробуй
<?php session_start();
include 'blocks/db.php';
if(!empty($_POST['login']) && $_POST['password']) {
$result = mysql_query("SELECT `login`, `password`
FROM `users`
WHERE `login` = '{$_POST['login']}'
", $db);
$row=mysql_fetch_assoc($result);
if($row['password'] == $_POST['password']){
$row = mysql_fetch_assoc($result);
$login = $row['login'];
$password2 = $row['password'];
echo $password2; echo $login;
}
else { echo "Данные введены неверно";}
}
else { echo "error"; }
?>
Спустя 22 минуты, 47 секунд (8.01.2011 - 14:06) SerginhoLD написал(а):
include 'blocks/db.php';
if(isset($_POST['login'],$_POST['password']))
{
$result = mysql_query("SELECT * FROM `users` WHERE
`login` = '".$_POST['login']."' AND
`password` = '".$_POST['password']."'", $db);
if (mysql_num_rows($result) > 0)
{
$row = mysql_fetch_assoc($result);
$login = $row['login'];
$password = $row['password'];
echo $password.'<br>'.$login;
}
else echo 'net takih';
}
else echo 'error';
Спустя 18 минут, 17 секунд (8.01.2011 - 14:25) Игорь_Vasinsky написал(а):
во первых убериковычки - если ты фигурные скобки для переменных используешь, потом замени AND на &&
и яб на твоём месте обезопасился через mysql_real_escape_string
"login" = {$_POST['login']} && "password" = {$_POST['password']}
и яб на твоём месте обезопасился через mysql_real_escape_string
"login" = '".mysql_real_escape_string($_POST['login'])."' && "password" = '".mysql_real_escape_string($_POST['password'])."'
Спустя 2 минуты, 33 секунды (8.01.2011 - 14:27) Игорь_Vasinsky написал(а):
SerginhoLD
if(isset($_POST['login'],$_POST['password'])) ??????????????
RCuPeR
if(isset($_POST['login'],$_POST['password'])) ??????????????
if(isset($_POST['login'] && $_POST['password']))
RCuPeR
if(!empty($_POST['login']) && !empty($_POST['password']))
Спустя 6 минут, 50 секунд (8.01.2011 - 14:34) ИНСИ написал(а):
RCuPeR попробуй так:
session_start();
include 'blocks/db.php';
if($_POST['login'] && $_POST['password']) {
$rows = mysql_query("
SELECT `login`,`password`
FROM `users`
WHERE `login` = '{$_POST['login']}' AND `password` = '{$_POST['password']}'
") or die(mysql_error());
if($data = mysql_fetch_assoc($rows))
echo $data['login'] . ' - ' . $data['password'];
else
echo 'No mutches!';
}
else { echo "error"; }
Спустя 3 минуты, 44 секунды (8.01.2011 - 14:38) ИНСИ написал(а):
Цитата |
SerginhoLD if(isset($_POST['login'],$_POST['password'])) ?????????????? |
Игорь_Vasinsky он верно написал.
Спустя 48 секунд (8.01.2011 - 14:39) Игорь_Vasinsky написал(а):
welbox2
а что это за условие?
а что это за условие?
Цитата |
if($_POST['login'] && $_POST['password']) |
нужно же проверить на их присудствие:
if(isset($_POST['login']) && isset($_POST['password']))
или
if(!empty($_POST['login']) && !empty($_POST['password']))
Спустя 56 секунд (8.01.2011 - 14:39) Игорь_Vasinsky написал(а):
Цитата |
Игорь_Vasinsky он верно написал. |
))))) z просто не сталкивался с таким синтаксисом
Спустя 3 минуты, 43 секунды (8.01.2011 - 14:43) ИНСИ написал(а):
Цитата |
а что это за условие? |
точно тоже самое, что делает isset. Проверяю, есть ли данные переменные ...
Спустя 2 минуты, 31 секунда (8.01.2011 - 14:46) Игорь_Vasinsky написал(а):

я просто привык указывать... или стиль у меня такой ))
Спустя 17 минут, 20 секунд (8.01.2011 - 15:03) ИНСИ написал(а):
Цитата |
или стиль у меня такой )) |
у всех разный стиль

Спустя 1 час, 28 минут, 2 секунды (8.01.2011 - 16:31) inpost написал(а):
RCuPeR
Что в этот раз пишется?
Что в этот раз пишется?
! |
inpost |
Спустя 29 минут, 25 секунд (8.01.2011 - 17:00) RCuPeR написал(а):
Вообще мистика...
Ни один, из вышеперечисленных скриптов, не работает. Так же проверяет только логин. Ещё заметил, что если ввожу другой логин (который есть в базе, т.е. id=2) то пишет "error".
Кстати, тип поля "password" в базе int(11), может это на что-то влияет ?
inpost, если ввожу свой логин (admin) и левый пароль, пишет: admin - 123 (мой логин и пароль).
Кста, только что проверил в другом браузере, проверка прошла, выдало "No mutches", но при следующей авторизации, опять та же проблема. Может с кэшем проблемы ?
Ни один, из вышеперечисленных скриптов, не работает. Так же проверяет только логин. Ещё заметил, что если ввожу другой логин (который есть в базе, т.е. id=2) то пишет "error".
Кстати, тип поля "password" в базе int(11), может это на что-то влияет ?
inpost, если ввожу свой логин (admin) и левый пароль, пишет: admin - 123 (мой логин и пароль).
Кста, только что проверил в другом браузере, проверка прошла, выдало "No mutches", но при следующей авторизации, опять та же проблема. Может с кэшем проблемы ?
Спустя 5 минут, 30 секунд (8.01.2011 - 17:06) inpost написал(а):
RCuPeR
Почему INT? Ты пароли вводишь числовые?
Кинь сюда свою таблицу и свой код, в который ты добавил проверку на mysql_num_rows, как я писал ранее
Почему INT? Ты пароли вводишь числовые?
Кинь сюда свою таблицу и свой код, в который ты добавил проверку на mysql_num_rows, как я писал ранее
Спустя 22 минуты, 42 секунды (8.01.2011 - 17:29) RCuPeR написал(а):
На удивление всё работает.
Всем огромное спасибо!
ПЫСЫ. поле INT изменил на VARCHAR.
Всем огромное спасибо!
ПЫСЫ. поле INT изменил на VARCHAR.
Спустя 18 минут, 57 секунд (8.01.2011 - 17:48) inpost написал(а):
RCuPeR
Может там кроме числа в пароле были и буквы?
Может там кроме числа в пароле были и буквы?
Спустя 28 минут, 32 секунды (8.01.2011 - 18:16) RCuPeR написал(а):
Нет, только числа.
Очень странно, что не работало, но ещё странней, что заработало.
И как тут без матов ?
Очень странно, что не работало, но ещё странней, что заработало.
И как тут без матов ?

Спустя 1 час, 35 минут, 32 секунды (8.01.2011 - 19:52) inpost написал(а):
RCuPeR
Ты сравнивал числовые со строчными, они отличаются друг от друга.
Ты сравнивал числовые со строчными, они отличаются друг от друга.
_____________
Гнусный социопат с комплексом Бога.