萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> ThinkPHP驗證碼使用簡明教程

ThinkPHP驗證碼使用簡明教程

 驗證碼功能主要是為了防止網站登錄功能被刷,但是根據現在市面上常見的驗證碼功能,很容易被繞過,所以如果想讓網站足夠安全的話,最好再研究深入一些

一、首先需要在控制器中加入驗證碼方法admin/Lib/Action/LoginAction.class.php 知識點: 1、ob_clean函數用途 2、import方法調用think默認類庫 3、Image類buildImageVerify方法使用   代碼如下:   代碼如下: Public function verify(){  ob_clean();  //ob_clean函數 清空先前輸出  import('ORG.Util.Image');  //import調用的是message/ThinkPHP框架目錄下的擴展包Extend/Library/ORG/Util/中的Image.class.php類文件  Image::buildImageVerify();  //調用buildImageVerify方法生成驗證碼,默認參數為($length=4, $mode=1, $type='png', $width=48, $height=22, $verifyName='verify'),有興趣的朋友可以研究下Image類 }     二、在模板文件中加入驗證碼模塊admin/Tpl/Login/index.html 知識點: 1、驗證碼圖片調用 2、js相關運行流程了解 3、__PUBLIC__常量   在密碼輸入框後加入如下代碼: 代碼如下: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="__PUBLIC__/Js/jquery-1.7.2.min.js"></script> //__PUBLIC__常量可以在頁面加載後,“查看頁面源文件”中找到定義的__PUBLIC__目錄,默認為項目根目錄message下的Public目錄,下面會講解如何自定義__PUBLIC__系統常量 //jquery文件,只有加載了這個文件才可以調用jquery的方法 <script type="text/javascript" src="__PUBLIC__/Js/login.js"></script> //這裡的具體代碼會在下面貼出,其實只是定義了一個change_code函數,也就是更換驗證碼的異步操作(可以在不刷新頁面的情況下更換)   <title>Message Board BackGround</title> </head> <body>    <form action="{:U('admin.php/Login/login')}" method="post" name="back_login" >   <h2>簡易後台登錄系統</h2>   用戶名:<input type='username' name='username' id='username' />   <br />   密碼:<input type='password' name='password' id='password' />   <br />   驗證碼:<input type="code" name="code"/>    //這裡需要注意將type設置為code,name命名為code   <img src="{:U('Admin/Login/verify','','')}" id="code"/>   //img標簽下的src就是調用Login控制器中的veryfy方法   //後面的兩個參數留空是必須的,其中第2個沒實際意義,主要是為了第3個參數留空,這樣設置可以取消偽靜態後綴名,否則默認的偽靜態後綴名為html,將會導致無法正常加載圖片   <a href="javascript:void(change_code(this));">看不清</a>   //這裡調用了個   <br />   <input type="submit"  value="登錄"/>  </form>   </body> </html>     login.js文件在message/Public/目錄下 文件內容如下: 代碼如下: verifyURL = 'http://localhost/message/admin.php/Login/verify'; //定義驗證碼路徑 function change_code(obj){  $("#code").attr("src",verifyURL+'/'+Math.random());  //動態生成驗證碼方法,有興趣的朋友可以深入研究下jq方法  return false; }     另:__PUBLIC__文件定義在message/admin/Conf/config.php 在配置中,加入如下內容,即可改變__PUBLIC__路徑 配置如下:  代碼如下: //常量相關配置 'TMPL_PARSE_STRING' => array(  '__PUBLIC__' => __ROOT__ . '/' . APP_NAME . '/Public',  //路徑改變為message/admin/Public,刷新頁面,驗證碼依然可以刷新,則表明js生效,也可“查看頁面源文件” ),  
copyright © 萬盛學電腦網 all rights reserved