仅为一个会话实现一次验证码

时间:2011-07-22 05:52:51

标签: php session captcha

我一直在开发一个包含很多链接的网站。我希望通过实施CAPTCHA来保护这些链接免受机器人/爬虫的攻击。我曾尝试过谷歌的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分钟之后的某个时间间隔之后他将不得不重新进入验证码,以防前一个无法完成。  谢谢

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

1 个答案:

答案 0 :(得分:2)

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

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