【发布时间】:2011-06-08 05:24:27
【问题描述】:
好的。所以我做了一个表格。如果我在从表单中检索到的变量$usrname(是的,拼写正确)上输入mysql_real_escape_string,它将返回我的另一个变量$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 放入注册表或登录表单中,它会以false 的形式返回$verify。怎么了?
【问题讨论】:
-
因为你做错了什么。不幸的是,您认为不适合向我们展示您实际执行的代码,因此无法说出那可能是什么。
-
我看到你的巡航控制已经打开了。
-
也是数据库列名 usrname 而不是 username ?
-
该死,有人比我更正标题
-
@Ken:在未来,请不要大喊大叫!!!!!!!!!!!!