如何阻止用户名中包含html

How to stop a username from having html in it

本文关键字:包含 html 何阻止 用户      更新时间:2023-09-26

我正在制作一个有注册表格的网站。在注册表格中,我注意到用户可以用html输入,比如:

<div style = 'color:red;font-size:30px;'>Bob</div>

我知道我可以使用htmlspecialchars(),但当html插入数据库时,它会将其保留在字符串中。所以我的问题是:

我可以检测字符串中是否有html,然后如果有,请他们输入新的用户名吗?

我希望在PHPor JavaScript中实现这一点。

使用strip_tags()这将删除所有html标签

所以如果一个CCD_ 3比用CCD_。如果您还添加trim(),它也将删除剩余的空间。

  • http://php.net/manual/en/function.strip-tags.php
  • http://nl3.php.net/manual/en/function.trim.php

更新

正如Joe Frambach所指出的,如果你想知道用户名是否包含html,请使用:

if (strip_tags($name) !== $name) { 
    echo 'this contains html'; 
} else {
    echo 'this does not contain html';
}

因此,如果剥离的值不等于它包含的html的输入值。

验证字段是否为字母数字:

if(preg_match('/^[a-zA-Z]+[a-zA-Z0-9._]+$/', $input)){
    //Valid
}
else{
    //invalid
}