$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)
А если бы наверху страницы был включен вывод ошибок
то вы бы получили нотис на неопределенную переменную $Email и легко нашли бы ошибку сами.
А если бы наверху страницы был включен вывод ошибок
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 символа (цифры и буквы) подряд
_____________
Место клизмы изменить нельзя!