Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: CommunityОтветов: 1

Хорошо. Итак, я сделал форму. Если я вставлю 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. Что случилось?

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

phpsha1

Ответы

Ответ 1 · рейтинг 2 · orlp

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы