[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: $_POST['password']
RCuPeR
Всем доброй ночи.

Есть форма входа пользователя в свой профиль и есть обработчик.
Проблема: не хочет проверятся $_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 и есть ли такие поля.

В добавок

 ! 

М
Убери мат (в любом его проявлении) из подписи!!!
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

Спустя 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 на &&

"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'])) ??????????????

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 написал(а):
user posted image

я просто привык указывать... или стиль у меня такой ))

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

у всех разный стиль smile.gif

Спустя 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", но при следующей авторизации, опять та же проблема. Может с кэшем проблемы ?

Спустя 5 минут, 30 секунд (8.01.2011 - 17:06) inpost написал(а):
RCuPeR
Почему INT? Ты пароли вводишь числовые?
Кинь сюда свою таблицу и свой код, в который ты добавил проверку на mysql_num_rows, как я писал ранее

Спустя 22 минуты, 42 секунды (8.01.2011 - 17:29) RCuPeR написал(а):
На удивление всё работает.

Всем огромное спасибо!

ПЫСЫ. поле INT изменил на VARCHAR.

Спустя 18 минут, 57 секунд (8.01.2011 - 17:48) inpost написал(а):
RCuPeR
Может там кроме числа в пароле были и буквы?

Спустя 28 минут, 32 секунды (8.01.2011 - 18:16) RCuPeR написал(а):
Нет, только числа.
Очень странно, что не работало, но ещё странней, что заработало.
И как тут без матов ? wink.gif

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


_____________
Гнусный социопат с комплексом Бога.
Быстрый ответ:

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