$page = $_GET['page'];
if(isset($page))
if(!preg_match('/[\w\d_]+/i', $page)) die("Error");
我想允许使用字母数字和下划线,
上面的代码可以工作,但是假设我设置了123 ...,这也有效。 preg_match是否会在条目后验证?
答案 0 :(得分:2)
只要字母数字显示为$page
的子字符串,正则表达式就会匹配。由于123...
包含子字符串123
,因此它将通过您的正则表达式。
使用
/^\w+$/
匹配整个字符串。 (\w
已经意味着[a-zA-Z0-9_]
,因此您的\d
,_
和i
修饰符是多余的。)
答案 1 :(得分:0)
您需要使用锚点:
/^\w+$/
\w
已有\d
和_