ユーザー入力をフィルタリングして、英数字、コンマ、ピリオド、スペースのみにする必要があります。以下のコードを実際に試してみましたが、他の不要な文字が通過しています。
if(!preg_match('/^[,. 0-9A-Za-z]/', $input)
{
echo "invalid";
}
上記の文字のみを厳密に受け入れるように入力を有効にするにはどうすればよいですか?
否定文字 ( ^
) は、文字クラス内に入る必要があります。
if(preg_match('/[^,\. 0-9A-Z]/i', $input))
{
echo "invalid";
}