PHP检测字符串中的URL数量

时间:2009-09-08 15:29:41

标签: php logic spam-prevention

我正在为网站实施联系表单,我想避免使用验证码,因为我认为它会对用户体验产生负面影响。

相反,我决定试用检测已随邮件提交的网址数量。

我从$ _POST提交中检索消息为字符串。我知道内置的PHP函数,如stristr()可以让我确认消息中存在一个子字符串,但我想要的是计数。

此外,就垃圾邮件检测而言,匹配“< / a>”之类的内容合适吗?

干杯。

2 个答案:

答案 0 :(得分:4)

substr_count($ text,“http”) http://www.php.net/manual/en/function.substr-count.php

请注意,这还不够,但两者都不允许用户将未过滤的数据输入到以html格式呈现的表单字段中。

由于Cross Site Scripting http://www.owasp.org/index.php/Top_10_2007-Cross_Site_Scripting

,我无法将javascript放入其中

我建议使用http://htmlpurifier.org/删除任何恶意代码。

最后,对于垃圾邮件过滤,我建议http://akismet.com/

祝你好运。

答案 1 :(得分:0)

如果这是联系表单,则无需接受html。只编码整个内容并限制来自同一个IP的帖子数量或限制消息之间的时间。

是的,你可以限制网址的数量,但我不认为这是有效的