我已禁用ajax驗證,但我有'enableClientValidation'=>true
在窗體中。 會話保存在數據庫中。 那麼Yii如何檢查Captcha字段對焦另一個字段?我不能看到網絡 - >所有螢火蟲選項卡中的任何更改。Yii驗證碼驗證客戶端驗證是如何工作的?
回答
客戶端驗證將JavaScript代碼放置在驗證數據而不是使用Ajax的頁面底部。由於沒有使用JavaScript驗證驗證碼的方法,因爲沒有在客戶端存儲答案,除非使用Ajax,否則這是不可能的。但Yii提供的內置Captcha只在表單提交時驗證,即使啓用了Ajax驗證。
http://www.yiiframework.com/doc/api/1.1/CActiveForm它指出...
有關於它的AJAX 驗證support.First CActiveForm一定的侷限性,它不與文件上傳 fields.Second驗證,它不應該被用來執行可能導致服務器端狀態改變的驗證。例如,它不適合於 執行CCaptchAction所做的CAPTCHA驗證,因爲每個 驗證請求都會將測試次數增加1。第三, 它不適用於表格數據輸入。
所以如果你想在客戶端驗證Captcha,你必須使用Ajax,你必須自己編寫這個程序,因爲Yii默認不提供這個功能。
如果沒有撥打$form->error()
,Ajax /客戶端驗證將不起作用。
如果你想使用AJAX驗證或客戶端驗證,一定要打電話..
$form->error($model, 'field')
..in爲需要現場確認每個字段的視圖文件。
我希望它能解決您的問題。
我們大多認爲客戶端的驗證碼驗證是不可能的,但它是可能的。
是的yii可以使用簡單的哈希(單邊加密)公式在客戶端進行驗證碼驗證。由於這個原因,沒有Ajax請求和「我們看不到任何變化在網絡 - >所有螢火蟲選項卡。」(Shayan說)
有時我們可能認爲不可能產生一個單側散列使用javascript等開源代碼,但如果您基於自身對句子或單詞進行加密,則可能會出現這種情況。因此,源和解密密鑰都不存在(就像php的crypt函數一樣)。 php md5函數自動執行此操作。
var hash = jQuery('body').data('captcha.hash'); //hash in the jQuery data storage of body
if (hash == null)
hash = 563;//this simple hash is generated by server and will be different for different captcha images
else
hash = hash[1];
for(var i=value.length-1, h=0; i >= 0; --i) h+=value.toLowerCase().charCodeAt(i);
if(h != hash) {
messages.push("The verification code is incorrect.");
}
因此,使用客戶端驗證器驗證碼將驗證在客戶端和服務器兩次。
而另注:從警予DOC正確的一句是:
基於AJAX的驗證有一些限制。首先,它不適用於文件上傳字段。其次,它不應該用於執行可能導致服務器端狀態更改的驗證。第三,它的設計目前不是用於表格數據輸入。
在警予句子第二個音符,當你正在使用AJAX驗證手段,服務器端AJAX驗證導致在服務器端的會話信息庫的驗證碼圖像的代碼被刷新,因爲(我過些天前的問題)在ajax驗證過程中,整個表單將被逐個提交給服務器,以驗證只有一個字段。 如果前面的驗證碼驗證成功,Yii將默認值爲3的testTime屬性授權給CCaptchaAction以重用驗證碼。但它沒有用處,因爲如果註冊表單在逐個檢查用戶名時驗證碼字段爲空,則驗證碼驗證將失敗(不成功)。然而,對於我們來說,解決方案就像一塊蛋糕或蛋糕一樣簡單,以便在CCaptchaValidator的ajax驗證中排除驗證碼驗證。
- 1. yii博客驗證碼從不驗證
- 2. 驗證客戶端證書
- 3. 客戶端驗證
- 4. 客戶端驗證
- 5. 驗證客戶端
- 6. 客戶端驗證寶石 - 獨特性驗證仍在工作?
- 7. SSL證書客戶端驗證 - 如何?
- 8. 如何繞過ASP.NET客戶端驗證來驗證服務器端驗證
- 9. 流暢驗證非空驗證與客戶端驗證在MVC
- 10. jQuery的客戶端驗證工作不
- 11. Yii ajaxSubmitButton客戶端驗證問題
- 12. 啓用客戶端驗證Yii
- 13. 如何維護服務器端驗證和客戶端驗證
- 14. 客戶端驗證寶石不工作
- 15. 客戶端驗證工作不
- 16. yii驗證碼不正確驗證
- 17. 如何驗證客戶端驗證中的雙變量規則?
- 18. 驗證的RadioButtonGroup客戶端
- 19. Rails的客戶端驗證
- 20. 客戶端驗證的OpenERP
- 21. Uploadify的客戶端驗證?
- 22. 客戶端驗證不起作用的自定義驗證器
- 23. Yii CActiveForm客戶端驗證無法在我的Widget中工作
- 24. 不工作圖形驗證碼驗證
- 25. 如何控制ASP.NET驗證程序控件客戶端驗證
- 26. 如何獲得自定義驗證器來驗證客戶端?
- 27. 驗證PyOpenSSL中的客戶端證書
- 28. 覆蓋客戶端證書身份驗證驗證
- 29. WCF客戶端證書驗證+ Windows身份驗證
- 30. 客戶端和服務器端驗證的驗證摘要