问问题
107139 次
3 回答
8
未定义的索引意味着在 $_POST 数组中的某处,键username没有索引(键) 。
您应该将发布的值设置为变量以获得更干净的解决方案,这是一个好习惯。
如果我遇到类似的错误,我会这样做:
$username = $_POST['username']; // you should really do some more logic to see if it's set first
echo $username;
如果用户名没有出现,那意味着我在某个地方搞砸了。你也可以,
var_dump($_POST);
查看您发布的内容。就调试而言,var_dump 非常有用。看看:var_dump
于 2013-01-02T01:33:13.373 回答
3
首先,
确保有帖子
if(isset($_POST['username'])) {
// check if the username has been set
}
其次,也是最重要的,清理数据,这意味着
$query = "SELECT password FROM users WHERE username='".$_POST['username']."'";
是致命的危险,而是使用
$query = "SELECT password FROM users WHERE username='".mysql_real_escape_string($_POST['username'])."'";
请研究主题sql注入
于 2013-01-02T01:28:44.197 回答
2
您应该检查是否POST['username']
已定义。在上面使用这个:
$username = "";
if(isset($_POST['username'])){
$username = $_POST['username'];
}
"SELECT password FROM users WHERE username='".$username."'"
于 2013-01-02T01:26:51.073 回答