Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP验证要在电子邮件中发送的textarea输入_Php_Textarea_Validation - Fatal编程技术网

PHP验证要在电子邮件中发送的textarea输入

PHP验证要在电子邮件中发送的textarea输入,php,textarea,validation,Php,Textarea,Validation,我正在尝试创建一个PHP页面,用户可以用HTML向其他用户发送电子邮件。 在我的页面(email.php)上有一个供用户输入消息的文本区 由于我从我的服务器发送电子邮件,我不希望用户编写恶意代码/邮件内容(html、链接、php、脏话等),这将导致我的服务器电子邮件IP被禁止为垃圾邮件 我知道我可以使用str_replace()htmlentities()strip_tags()等函数进行验证 如何阻止用户在文本区域中输入标签、链接等,以便在发送电子邮件时保持干净。如果消息字符串与电子邮件正文格

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

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

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

如何阻止用户在文本区域中输入标签、链接等,以便在发送电子邮件时保持干净。如果消息字符串与电子邮件正文格式相匹配,是否有某种功能可以只过滤整个消息字符串,或者有一种方法可以将消息字符串转换为纯文本,以便任何恶意链接/标记只向用户显示为a href='/link'>恶意链接而不是“恶意链接”,并且它们只显示为标记本身而不是运行的html标记

例如,当你发送电子邮件时,你会得到一个带有文本区域的表单


谢谢你的建议,你能澄清一下吗

从你所描述的来看,这似乎足够了,除非我误解了你的要求。这两个函数都不是用于验证,而是用于筛选


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

您无法阻止用户插入HTML标记,即使使用javascript也是如此。因为几乎所有的浏览器都有开发工具,任何网站的html元素在页面加载后都可以被修改

您可以仅为eye view开发javascript验证,但php验证是必须的,因为您不能限制用户


甚至可以修改标题。。。所以你需要那些php过滤器,正如您上面提到的。

我建议使用白名单方法的第三方库。

不清楚的是:消息是否以HTML格式发送?是的,以HTML格式发送,但php用于过滤/验证。当用户收到hotmail/gmail等格式的电子邮件时,正文文本消息将是干净的,即如果用户输入链接而不是clickable/wont run它将显示为a href=''tag?@webjawns:我已经编辑了你的文章,为这两个函数添加了指向PHP手册的链接。希望您不介意:-)值得注意的是,strip_tags()无法正确处理格式错误的HTML。