2

站点用户可以在站点上注册,并且在注册期间他可以提供名称。

我希望这个名字是一个有效的名字,并且没有任何 HTML 和其他时髦的字符。strip_tags 足够了吗?

4

2 回答 2

4

我发现没有单一功能可以防止白痴用户输入。最好将几个混合在一起:

$val = trim($val);
$val = strip_tags($val);
$val = htmlentities($val, ENT_QUOTES, 'UTF-8'); // convert funky chars to html entities
$pat = array("\r\n", "\n\r", "\n", "\r"); // remove returns
$val = str_replace($pat, '', $val);
$pat = array('/^\s+/', '/\s{2,}/', '/\s+\$/'); // remove multiple whitespaces
$rep = array('', ' ', '');
$val = preg_replace($pat, $rep, $val);
$val = trim($val);
$val = mysql_real_escape_string($val); // excellent final step for MySQL entry
于 2012-02-21T02:58:29.583 回答
2

正则表达式可以很好地适应更少的代码:

^[A-Z]'?[- a-zA-Z]( [a-zA-Z])*$

这里我们有很好的例子:

名称的正则表达式

于 2012-02-21T03:09:08.000 回答