0

次のphppreg_matchで、誰かがテキストエリアフォームにazまたは0-9以外の値を入力した場合、エラーメッセージを表示しようとしています。文字列と数値を入力できるのはユーザーだけです。ではない、<?>任意のphp、javascriptタグなど。

if(preg_match("/^[a-zA-Z0-9]+/ ", $wall) != 1)
$err[] = "Wrong value";

したがって、フォームの先頭にphpタグを配置すると、エラーメッセージが表示されますが、「テキストを入力してからphpタグと別の値を入力してください」と入力すると、エラーメッセージは表示されません。

申し訳ありませんが私の悪い英語。:(

4

3 に答える 3

1

不要なキャラクターがいないか確認するだけです。

if(preg_match("/[^a-zA-Z0-9]/ ", $wall)) {
  $err[] = "Wrong value";
}
于 2012-05-21T02:56:45.303 に答える
1
if( preg_match("/^[a-zA-Z0-9]+$/ ", $wall) ) {
    $err[] = "Wrong value";
}

最初と最後を固定する必要があります。そうしないと、と入力できa#$@#$@#$#ます。

また、!= 1最後にの必要はありません。それがないと読みやすくなります。

于 2012-05-21T02:58:41.740 に答える
0

文字列の先頭にある英数字をチェックするように式を設定したため、^

これに変更すると、文字列のどこかに<または>があるかどうかがチェックされます。

if(preg_match("/[<|>]+/ ", $wall))
$err[] = "Wrong value";
于 2012-05-21T02:48:12.150 に答える