Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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 如何通过简单的评论/评论系统减少发布的垃圾邮件?_Php_Regex - Fatal编程技术网

Php 如何通过简单的评论/评论系统减少发布的垃圾邮件?

Php 如何通过简单的评论/评论系统减少发布的垃圾邮件?,php,regex,Php,Regex,我知道我要问的问题有数百个例子。但他们没有一个像通缉犯一样为我工作 因此,我有一个文本区,人们可以在其中添加评论/评论。但评论框不断收到垃圾邮件 我想正则表达式可能是阻止垃圾邮件发送者的最有效的方法,但我讨厌正则表达式 有没有其他办法阻止垃圾邮件 编辑:垃圾邮件发送者不断发布类似的内容: 布丽安娜 寻找工作洛丽塔的照片如果她在镜子前做爱会更好! 看到自己得到f#@美元更性感。 只是一想到它就变得性欲 如果有 (被宠坏,轻微审查以避免在工作中给员工带来问题) 因此,我想阻止字符串中的每个超链接有许

我知道我要问的问题有数百个例子。但他们没有一个像通缉犯一样为我工作

因此,我有一个文本区,人们可以在其中添加评论/评论。但评论框不断收到垃圾邮件

我想正则表达式可能是阻止垃圾邮件发送者的最有效的方法,但我讨厌正则表达式

有没有其他办法阻止垃圾邮件

编辑:垃圾邮件发送者不断发布类似的内容:

布丽安娜 寻找工作洛丽塔的照片如果她在镜子前做爱会更好! 看到自己得到f#@美元更性感。 只是一想到它就变得性欲
如果有

(被宠坏,轻微审查以避免在工作中给员工带来问题)


因此,我想阻止字符串中的每个超链接有许多不同的方法来消除垃圾邮件:

  • 验证码-例如,现在你可以用不到3美元的价格购买约1000个重写验证码
  • 用您的语言提问最为人所知的事实-您可以向用户询问他们知道的一些事实,但垃圾邮件发送者不知道
  • 反垃圾邮件过滤器-例如,或其他反垃圾邮件服务。我想这对你最合适

  • 有许多不同的方法可以消除垃圾邮件:

  • 验证码-例如,现在你可以用不到3美元的价格购买约1000个重写验证码
  • 用您的语言提问最为人所知的事实-您可以向用户询问他们知道的一些事实,但垃圾邮件发送者不知道
  • 反垃圾邮件过滤器-例如,或其他反垃圾邮件服务。我想这对你最合适

  • 很多验证码现在都是机器人解决的,如果你想避免验证码,那么一个简单的建议就是使用一个简单的文本陷阱

    在文本区域下,添加一个问题,例如

    “一周有多少天?”

    然后添加另一个文本框,并将其与say进行比较

    7或7等

    如果测试失败,则拒绝输入


    随着时间的推移,您可能需要改变您的问题,甚至需要列出不同的问题,但这是一种简单易行的方法。

    很多验证码现在都无法解决,如果您试图避免验证码,那么一个快速建议就是使用简单的文本陷阱

    在文本区域下,添加一个问题,例如

    “一周有多少天?”

    然后添加另一个文本框,并将其与say进行比较

    7或7等

    如果测试失败,则拒绝输入


    随着时间的推移,您可能需要改变您的问题,甚至需要一系列不同的问题,但这是一种简单易行的方法。

    最简单的方法是搜索字符串
    http://

    以下if语句允许在
    $text

    if (substr_count($text,"http://") > 3)
    
    但这并不是一个足够的检查,因为有很多垃圾邮件,根本不包含任何链接-只是擦亮

    因此,你要做的第二件事,是一份黑名单,上面写着“坏话”

    毕竟,你必须保持一个不断增长的单词列表,同时还要删除大量垃圾邮件

    因此,您可以选择添加一个包含随机值的不可见字段,该字段存储在会话中,并检查该值是否正确提交

    $_SESSION["random_secret"] = //create random string..
    
    稍后再检查

    if ($_POST["secret"] == $_SESSION["random_secret"])
    
    通过此检查,您可以清除大量自动垃圾邮件(但仍然不是全部)


    因此,在您使用CAPTCHA之后,最简单的方法就是搜索字符串
    http://

    以下if语句允许在
    $text

    if (substr_count($text,"http://") > 3)
    
    但这并不是一个足够的检查,因为有很多垃圾邮件,根本不包含任何链接-只是擦亮

    因此,你要做的第二件事,是一份黑名单,上面写着“坏话”

    毕竟,你必须保持一个不断增长的单词列表,同时还要删除大量垃圾邮件

    因此,您可以选择添加一个包含随机值的不可见字段,该字段存储在会话中,并检查该值是否正确提交

    $_SESSION["random_secret"] = //create random string..
    
    稍后再检查

    if ($_POST["secret"] == $_SESSION["random_secret"])
    
    通过此检查,您可以清除大量自动垃圾邮件(但仍然不是全部)


    因此,毕竟你最终得到了验证码,这里的答案很好,但有时愚弄机器人是很好的第一步

    绝大多数机器人只是读取源代码,然后用垃圾填充他们能找到的所有输入字段,发送请求,然后希望它能工作。它们非常愚蠢,所以像这样的东西可能会愚弄大多数机器人:

    <p style="display:none">Screen readers: Use the next textarea (the first is used to confuse spam bots).</p>
    <textarea name="comment" style="display:none"></textarea>
    <textarea name="real_comment"></textarea>
    

    换句话说,在HTML中放置一个虚拟的
    textarea
    ,使用CSS隐藏它,然后等待机器人来填充它。

    这里的答案很好,但有时愚弄机器人是很好的第一步

    绝大多数机器人只是读取源代码,然后用垃圾填充他们能找到的所有输入字段,发送请求,然后希望它能工作。它们非常愚蠢,所以像这样的东西可能会愚弄大多数机器人:

    <p style="display:none">Screen readers: Use the next textarea (the first is used to confuse spam bots).</p>
    <textarea name="comment" style="display:none"></textarea>
    <textarea name="real_comment"></textarea>
    

    换句话说,在HTML中放置一个虚拟的
    textarea
    ,使用CSS隐藏它,然后等待机器人来填充它。

    使用验证码怎么样?尝试在没有验证码的情况下执行:)需要某种确认,你必须确保它是一个人在注意。因此,验证码或其他一些机制,显示读者阅读你的文章。你也可以告诉他们在评论中使用某个“关键词”,然后扫描该关键词。或者你可以通过IP阻止垃圾邮件发送者。重新注册评论的内容将非常困难,因为现在他们正在滥发洛丽塔,但明天就要开始了。使用验证码怎么样?尝试在没有验证码的情况下使用:)需要某种形式的确认,你必须确保这是一个人在注意。那么验证码或者其他的机械装置