0

我是 PHP 新手,使用 PDO 和 MySQL。我将使用以下代码过滤用户输入数据:

if(!filter_input(INPUT_POST,'$username')||!filter_input(INPUT_POST,'$password'))
        {
            echo "username or password already exists....";
        }

        else
        {
$sql = "INSERT INTO users (Username,Password) VALUES (:username,:password)";
$q=$dbh->prepare($sql);
$q->execute(array(':username'=>$username,':password'=>$password));
$count=$q->rowCount();
echo "inserted $count rows.\n";

但它显示一个错误,它只是显示消息:

username or password already exists

如果用户名或密码不存在,它会显示相同的消息吗?如果filter_input()不应该在这里使用,那么我可以使用什么来代替?

4

2 回答 2

1
filter_input(INPUT_POST,'$username')

是错误的,它需要数组键名 - 前面没有任何美元(如果你没有用美元命名 get 变量):

filter_input(INPUT_POST,'username')

应该是正确的。删除$密码过滤器的标志。


第一行将是:

if(!filter_input(INPUT_POST,'username')||!filter_input(INPUT_POST,'password'))
于 2013-04-23T18:09:18.453 回答
0

给定的名称filter_input不应该包含 a $,除非表单确实有<input name="$username" />

于 2013-04-23T18:09:36.067 回答