私のサイトでこのエラーが発生しましたが、その理由がわかりません:
警告: preg_match() [function.preg-match]: 区切り文字は英数字またはバックスラッシュであってはなりません
エラーはこの関数にあります:
if (isset($_REQUEST['page']) AND preg_match("\.\.", $_REQUEST['page'])) {
Header("Location: index.php");
die();
}
私のサイトでこのエラーが発生しましたが、その理由がわかりません:
警告: preg_match() [function.preg-match]: 区切り文字は英数字またはバックスラッシュであってはなりません
エラーはこの関数にあります:
if (isset($_REQUEST['page']) AND preg_match("\.\.", $_REQUEST['page'])) {
Header("Location: index.php");
die();
}
正規表現を区切り文字で囲む必要があります。
if (isset($_REQUEST['page']) AND preg_match("/\.\./", $_REQUEST['page'])) {
Header("Location: index.php");
die();
}
PHP には、正規表現操作 (preg_match など) のパターンを提供する際に興味深い要件があり、パターンには文字列の先頭と末尾に区切り文字が必要です。これは任意の文字にすることができますが、パターンでは使用しないでください。たとえば、区切り記号としてハッシュ記号を使用できます。
if (isset($_REQUEST['page']) AND preg_match("#\.\.#", $_REQUEST['page'])) {