只允许textarea中的新行

时间:2011-08-15 02:38:30

标签: php mysql html security textarea

如何为textarea添加安全性,以便用户可以输入的唯一内容(除了普通文本)是一个新行。

示例:

<textarea>
For some reason
I want this on 2 lines
</textarea>

不应允许任何其他类型的标签。我已经使用像htmlentities,strip_tags,nl2br等php安全功能进行了很多测试,我没有发现任何可以做我想要的东西。有什么想法吗?

更新:我没有任何关于htmlentities如何对我不起作用的例子,因为那是来自过去的经验,但如果有人可以提供一个如何使用htmlentities来做这个的例子,那将是非常理解!

3 个答案:

答案 0 :(得分:1)

您需要做的是定义允许值的白名单,其中包括上下字母字符,行返回以及您想要允许的任何其他内容(标点符号,数字等)正则表达式很容易执行此操作使用,您需要在提交时验证文本区域的内容。

另外,请确保始终在服务器端运行此操作。您也可以在客户端中运行,但是您必须确保无法在浏览器中规避该机制,因此服务器验证依赖性。

答案 1 :(得分:0)

这就是你要对“非法”角色做些什么。如果您只想剪切它们,您可能会发现有用的正则表达式。如果您想要转义它们,只需使用htmlspecialchars()htmlentities()

答案 2 :(得分:0)

之后你只能用php检查输入,因为php在服务器上运行而不是在客户端运行。如果你想立即检查它,你可以使用javascript,但它会减慢用户的输入。

请相信用户并在之后过滤它,这将是我的建议。

HTH