一个会话只执行一次验证码


Implementing captcha only once for one session

我一直在一个包含很多链接的网站上工作。我想保护这些链接从机器人/爬虫通过实施验证码。我已经尝试过谷歌的reCAPTCHA,但它不适合我的需求(复杂,特别是当涉及到英语差的人:P),加上我只是想阻止新的程序员或爬虫,我知道它很容易被有经验的程序员打破。所以我搜索了一下,发现这个不错。

http://www.hardcode.nl/subcategory_4/article_243-simple-php-captcha-script.htm

下载它,它的工作像一个魅力,但我的问题是:
1。我可以看到index.html文件检查输入的代码,如果正确则重定向到write.php,其中创建会话并显示输出。我希望我们能在同一页上完成。就像当用户输入正确的代码时,他应该能够查看同一页面上的链接以节省带宽(我会从mysql服务器获取它们)
2. 这是更重要的一个,因为我不知道任何关于php会话和php.net教程只是太短或旁边什么都没有,这可以做到,每当用户输入正确的验证码一次,他可以看到剩下的时间没有验证码的链接?只有当他关闭浏览器时,或者在一段时间(如10分钟)后,以防之前的验证码无法完成,他才需要重新输入验证码。谢谢你

p。我可以在我的服务器上使用Javascript但可能php解决方案会更好,因为我也在学习php

  1. 使用AJAX提取链接,然后替换页面中的HTML。

  2. 在会话中存储一个变量来确定他们是否输入了CAPTCHA,然后在决定是否显示CAPTCHA或链接之前检查一下。