我是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()
,那么我可以使用什么呢?
答案 0 :(得分:1)
filter_input(INPUT_POST,'$username')
是错误的,它需要数组键名 - 没有任何前一个美元(如果你没有用一美元命名get变量):
filter_input(INPUT_POST,'username')
应该是正确的。同时删除密码过滤器的$
符号。
然后第一行:
if(!filter_input(INPUT_POST,'username')||!filter_input(INPUT_POST,'password'))
答案 1 :(得分:0)
filter_input
的名称不应包含$
,除非表单实际上包含<input name="$username" />
。