【发布时间】:2012-09-22 01:19:13
【问题描述】:
站点用户可以在站点上注册,并且在注册期间他可以提供一个名称。
我希望这个名称是一个有效的名称,并且没有任何 HTML 和其他时髦的字符。 strip_tags 够用吗?
【问题讨论】:
-
白名单而不是黑名单呢?如果您要求用户名符合某些要求,例如“没有时髦的字符”,则只允许一定范围的字符并检查,而不是相反。
标签: php html string strip-tags
站点用户可以在站点上注册,并且在注册期间他可以提供一个名称。
我希望这个名称是一个有效的名称,并且没有任何 HTML 和其他时髦的字符。 strip_tags 够用吗?
【问题讨论】:
标签: php html string strip-tags
我发现没有单一的功能可以防止白痴用户输入。最好将几个混合在一起:
$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
【讨论】:
function sanitize($val) { ... }......然后在任何你想要清理的东西上调用 sanitize
【讨论】: