php - 只允许在文本区域中换行

标签 php mysql html security textarea

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

示例:

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

不允许使用任何其他类型的标签。我已经用 htmlentities、strip_tags、nl2br 等 php 安全功能做了很多测试,但我还没有找到任何可以做我想要的事情。有什么想法吗?

更新:我没有任何关于 htmlentities 如何对我不起作用的示例,因为这是根据过去的经验,但如果有人可以为我提供一个如何使用 htmlentities 来执行此操作的示例,那就太好了赞赏!

最佳答案

您需要做的是定义一个允许值的白名单,其中包括大小写字母字符、行返回,然后是您想要允许的任何其他内容(标点符号、数字等)。正则表达式很容易做到这一点并且您需要在提交时根据此验证文本区域的内容。

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

关于php - 只允许在文本区域中换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7061233/

相关文章:

php - Laravel 同步多对多错误

即使使用合并,MySQL也会返回 'empty result'

php - 事件页面 - 参加或不参加 - 我将如何实现?

sql - 如何从 MySQL 的一系列行中随机选择 16 条记录?

javascript - 如何在 JavaScript 中使用 createElement()?

php 正则表达式函数无法转换 JavaScript 参数

php - Symfony 2.4 如何加载外部类?

php - 提前点击计数器 mysql 或平面文件

html - 选择查询 - WebSQL

html - 选择正确的 Html 5 框架 - HTML5 Boilerplate、Skeleton、Twitter Bootstrap 和 HTML KickStart