mysql_real_escape_string вызывает проблемы?

Хорошо. Итак, я сделал форму. Если я вставлю mysql_real_escape_string в свою переменную $usrname (да, она правильно написана), которая была извлечена из формы, она вернет мою другую переменную, $verify как false. Взглянем:

<html>
<body>
<?php  

session_start();

include("mainmenu.php");  

$usrname = $_POST['usrname']; 
$password = sha1($_POST['password']);

$con = mysql_connect("localhost", "root", "Y0U_C@NT_H@NDLE_THE_TRUTH!");
 if(!$con){
  die("Unable to establish connection with host. We apologize for any inconvienience.");
}

mysql_select_db("users", $con) or die("Can't connect to database.");

$select = "SELECT * FROM `data` WHERE usrname = '$usrname' and
password = '$password'";
$query = mysql_query($select);
$verify = mysql_num_rows($query);

if($verify==1){
    $_SESSION["valid_user"] = $usrname;
    header("location:index.php");
}
else{
     echo "Wrong username or password. Please check that CAPS LOCK is off.";
     echo "<br/>";
     echo "<a href=\"index.php\">Back to login</a>";
} 

mysql_close($con);

?> 
</body>

Если я поставлю mysql_real_escape_string либо в форму регистрации, либо в форму входа, она вернет $verify как false. Что случилось?


person Community    schedule 13.01.2011    source источник
comment
Потому что ты сделал что-то не так. К сожалению, вы не сочли нужным показать нам код, который вы на самом деле выполнили, поэтому невозможно сказать, что это может быть.   -  person Lightness Races in Orbit    schedule 13.01.2011
comment
Я ВИЖУ, ТЫ ВКЛЮЧИЛ КРУИЗ-КОНТРОЛЬ ДЛЯ ОХЛАЖДЕНИЯ.   -  person ceejayoz    schedule 13.01.2011
comment
имя столбца базы данных также usrname вместо имени пользователя?   -  person Mahesh Velaga    schedule 13.01.2011
comment
черт, кто-то опередил меня, чтобы исправить название   -  person erjiang    schedule 13.01.2011
comment
@Ken: В БУДУЩЕМ, ПОЖАЛУЙСТА, НЕ КРИЧЬ!!!!!!!!!!!!   -  person Will Vousden    schedule 13.01.2011
comment
... и все же вы сочли нужным показать нам свой корневой пароль MySQL? Никто не хочет этого видеть :)   -  person danlefree    schedule 13.01.2011


Ответы (1)


Пожалуйста, убедитесь, что «Волшебные кавычки» отключены в настройках PHP. Как его отключить описано здесь.

person orlp    schedule 13.01.2011
comment
Если ваш хост не позволяет вам отключить его немедленно, удалите волшебные кавычки в первую очередь в своих скриптах. - person Michael Madsen; 13.01.2011
comment
они отключены ... все еще ничего - person ; 13.01.2011
comment
Если ваш хост не позволяет вам отключить его немедленно, следуйте инструкциям на странице, на которую я дал ссылку :) Пример № 2 объясняет, как отключить его во время выполнения. - person orlp; 13.01.2011