PHP验证textarea输入以发送电子邮件

时间:2011-07-17 18:43:15

标签: php textarea validation

我正在尝试创建一个PHP页面,供用户以HTML格式向其他用户发送电子邮件。 在我的页面(email.php)上有一个textarea供用户输入他们的消息。

由于我从服务器发送电子邮件,因此我不希望用户编写恶意代码/邮件内容(html,链接,php,坏词等),导致我的服务器电子邮件IP被禁止为垃圾邮件。

我知道我可以使用str_replace()htmlentities()strip_tags()等函数进行验证

如何阻止用户在textarea中输入标签,链接等,以便电子邮件在发送时保持干净。是否有一些函数只是过滤整个消息字符串,如果它匹配电子邮件正文格式或将消息字符串转换为纯文本的方式,所以任何恶意链接/标记将只显示给用户href =' / link'>恶意链接不是'恶意链接'而不是运行的html标签,它们只显示为标签本身?

就像gumtree一样,例如,当您发送电子邮件时,您会获得带有textarea的表单以获取消息

感谢任何建议

3 个答案:

答案 0 :(得分:1)

你能澄清一下吗?

根据您的描述,strip_tags()然后htmlentities()似乎已足够,除非我误解了您的要求。这两个函数都不是用于验证,而是用于过滤。

strip_tags()删除了PHP和HTML标记,htmlentities()将确保将适用的字符转换为其HTML实体等效字符。

答案 1 :(得分:1)

我建议像HTML Purifier这样使用白名单方法的第三方库。

答案 2 :(得分:0)

你不能阻止用户插入html标签,甚至不能使用javascript。由于几乎所有浏览器都有开发工具,因此可以在加载页面后更改任何网站中的任何html元素。

你可以开发一个仅用于眼睛视图的javascript验证,但是php验证是必须的,因为你不能限制用户。

甚至可以修改标题...所以你需要那些php过滤器,如上所述。