好久沒寫了,正好有時間了,把之前想寫的先寫上。關於yii中的驗證碼,這裡介紹下驗證碼的使用,比如後台登陸的時候輸入完使用者名稱和密碼後,需要再輸入驗證碼這樣會更加的安全。
從總體來說 大概分為4個步驟
1.在對用的控制器裡建乙個新的控制器方法(actions)
2.輸入驗證碼的文字框也用小物件
3.修改關於驗證碼的核心類檔案(ccapthcaaction) 因為存在一點bug
4.然後就是在model裡的rules設定規則,判斷輸入的驗證碼是否正確了
接下來就詳細說下吧
1.我是在後台登陸頁面裡用 所以我就在登陸裡的controller裡開始開發了,下面是生成驗證碼的方法:
public2.顯示出來function
actions()
2種方法 會了第一種 再來第二種 ,在view裡寫
第一種 先把驗證碼輸出:<?php $this->widget('ccaptcha')?>
第二種就是正常的需求了 不僅要輸出 還要 可以重新整理更換了:
<?php
$this->widget('ccaptcha',array('showrefreshbutton'=>false,'clickableimage'=>true,'imageoptions'=>array('alt'=>'點選換圖','title'=>'點選換圖','style'=>'cursor:pointer')));
showrefreshbutton的意思是是否顯示更換驗證碼的按鈕,意思就是如果這個按鈕顯示的話 ,每次點選這個按鈕,驗證碼將進行更換找到framework/web/widgets/captcha/ccapthcaaction.php 檔案,將run方法進行如上修改,加入乙個true 即可。clickableimage 就是點選驗證碼是否進行更換true當然就是同意了
然後可能你就需要對比下生成的驗證碼是否相同,在view裡可以加個小物件判斷
<?php echo $from->error($loginform,'captcha')?>
3、修改下核心類
4.設定規則 ,判斷驗證碼正確與否到了最後一步 ,來吧 在model裡書寫驗證規則 ,在rules裡
array('captcha','captcha','message'=>'驗證碼錯誤'),將自己填寫的和 系統生成的對比,如果不同則提示驗證碼錯誤,
然後別忘記顯示出來
在 actionindex裡
有點懶就截圖了 還是logincontroller裡 判斷下是否有資料提交 如果有則用attributes進行過濾接受,接收後 判斷輸入的驗證碼是否正確即可。
請注意一下這裡我改成了this->render() 因為之前方法不能引入系統自己的css和js 所以導致驗證碼相關類檔案無法載入所以改成了如上的render,改成這種,發現前台的頭和尾也引入了,怎麼辦 ,我們把前台的compoents下的controller.php檔案複製因為到後台的admin模組下的components下的controller.php,在裡面引入乙個新的layouts 就行了 這樣之前的頭和尾 就變成了現在新的頭和尾。(如果最後這段看不懂前台後台的話,麻煩看下我部落格的 yii講解的1-4)
然後就大工告成了,驗證碼可以在頁面重新整理了
yii生成驗證碼
先修改models資料夾下的loginform.php檔案 先在loginform.php檔案裡新增public verifycode 變數 然後在public function rules 方法裡新增array verifycode captcha allowempty ccaptcha chec...
yii 驗證碼的使用
public function actions public function actionindex 在view檢視中,新增如下 就可以得到驗證碼了。widget ccaptcha 課程驗證碼多餘的get a new code 即使在main.php中配置了中文也是出現獲取新 this widge...
yii 驗證碼功能的實現
首先知曉我們在使用驗證碼的時候通常是和我們的表單小部件配合使用 首先我們建立model層 新建乙個php檔案 名字叫做verifycode.php 要在我們的model層 建立我們的驗證碼的驗證規則,我這裡簡單的寫兩個規則 乙個是 非空 另乙個是驗證碼必須驗證正確 規則寫在我們的model的rule...