[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Данные пользователя
sharomet
Пользователь вводит свой email и пароль после перехода его на другую страницу нужно вывести все его данные Имя Фамилия и т п
$UEmail = trim($_POST['UEmail']);
$UPass = md5($_POST['UPass']);

$sql="SELECT `UID`,`URDate`,`UName`, `ULName`
FROM `users` WHERE `UEmail` = '"
.mysql_real_escape_string($Email)."' AND `UPass`='".mysql_real_escape_string($UPass)."' LIMIT 1";
$result = mysql_query($sql, $dbcnx) or die(mysql_error());
while ($row = mysql_fetch_object($result)){
$UID=$row->UID;
$URDate=$row->URDate;
$UName=$row->UName;
$ULName=$row->ULName;

echo $UID;//пусто
echo $URDate;//пусто
echo $$UName;//пусто
echo $ULName;//пусто
};


но переменные оказываются пустые в чём может быть проблема?



Спустя 13 минут, 19 секунд (16.04.2012 - 23:12) Placido написал(а):
Потому что mysql_real_escape_string($Email) != mysql_real_escape_string($UEmail)
А если бы наверху страницы был включен вывод ошибок
error_reporting(E_ALL);

то вы бы получили нотис на неопределенную переменную $Email и легко нашли бы ошибку сами.

Спустя 2 минуты, 41 секунда (16.04.2012 - 23:15) sharomet написал(а):
от я дурак

Спустя 15 минут, 37 секунд (16.04.2012 - 23:30) killer8080 написал(а):
Цитата (Placido @ 16.04.2012 - 23:12)
то вы бы получили нотис на неопределенную переменную $Email и легко нашли бы ошибку сами.

а так же увидел бы варнинг, если такого юзера в БД не окажется, потому что нельзя в mysql_fetch_object() совать что попало без проверки. Сначала нужно проверить результат выборки через mysql_num_rows(). Кстати mysql_real_escape_string(), после прогона через md5() не имеет никакого смысла.

Спустя 10 часов, 13 минут, 29 секунд (17.04.2012 - 09:44) sharomet написал(а):
получается что $pass с начало нужно экранировать через mysql_real_escape_string() а потом уже md5()?

Спустя 13 минут, 53 секунды (17.04.2012 - 09:58) killer8080 написал(а):
Цитата (sharomet @ 17.04.2012 - 09:44)
получается что $pass с начало нужно экранировать через mysql_real_escape_string() а потом уже md5()?

нет, достаточно просто md5(), если там и были потуги внедрить инъекцию, на выходе все равно получишь безобидный хеш.

Спустя 1 минута, 59 секунд (17.04.2012 - 10:00) Игорь_Vasinsky написал(а):
т.е. 32 символа (цифры и буквы) подряд


_____________
Место клизмы изменить нельзя!
Быстрый ответ:

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