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は を含めるべきではありません。$<input name="$username" />

于 2013-04-23T18:09:36.067 に答える