2011-07-22 48 views
0

我一直在一個包含很多鏈接的網站上工作。我想通過實施CAPTCHA來保護殭屍/爬蟲的鏈接。我已經嘗試過Google的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

回答

2
  1. 使用AJAX拉鍊接,然後替換頁面的HTML。

  2. 將一個變量存儲在會話中,確定他們是否進入了驗證碼,然後在決定是否顯示驗證碼或鏈接之前檢查該變量。

+0

這是一個正是我一直在尋找:) 感謝它幫助很多,只是知識的緣故,你能告訴我,如果你可以用PHP動態更新頁面? @sone其他靈魂在未來尋找相同的幫助,我決定使用阿賈克斯作爲伊格納西奧巴斯克斯 - 艾布拉姆斯建議,事實上,我現在使用此驗證碼: http://www.webdesignbeach.com/beachbar/ajax-花式captcha-jquery插件 這裏是更多的信息創建會議(我真的認爲它會更復雜): http://www.tizag.com/phpT/phpsessions.php –

+0

你不能使用PHP直接動態更新頁面,但您可以讓它爲XHR服務器生成適當的JavaScript,並編寫響應XHR的腳本。 –