如何阻止用户名中包含html

HTM*_*RUH -1 html javascript php

我正在建立一个有报名表格的网站.在注册表单中,我注意到用户可以输入html,如:

<div style = 'color:red;font-size:30px;'>Bob</div>
Run Code Online (Sandbox Code Playgroud)

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

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

我希望用PHP或JavaScript做到这一点.

Sup*_*rDJ 11

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

所以,如果一个$_POST['username'] = <div style = 'color:red;font-size:30px;'>Bob</div>strip_tags($_POST['username']) = Bob.如果你还添加trim()它也将删除剩余空间.

更新

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

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

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

  • 这是@ SuperDJ答案中明显的一步.我刚刚赞成这个答案并继续前进. (6认同)
  • 好的,然后`if(strip_tags($ name)!== $ name){它无效}` (4认同)