CI 驗證碼 Captcha (含點圖刷新)

转载 2015年11月18日 14:34:51
Model : test.php
PHP复制代码
 
//輸出驗證碼圖片
public function get_captcha(){
 //rand()取亂數後轉為md5碼,並只取前四碼,str用來小寫轉大寫
 $rand = strtoupper(substr(md5(rand()),0,4));
 $session_rand = array("rand"=>$rand); //存入陣列
 $this->session->set_userdata($session_rand); //紀錄 session
 
 $img = array(
  'word'                => $rand,
  'img_path'        => './captcha/',
  'img_url'         => base_url('captcha').'/', //請先建好權限777的 captcha 資料夾
  'font_path'         => './path/arial.ttf', //設置字體,避免跑版
  'img_width'        => '100',
  'expiration'        => 10 //設定圖片刪除時間 = 10秒
 );
 
 $rec = create_captcha($img);
 return $rec['image']; //輸出img驗證圖片
}
 
复制代码


Controller : captcha.php
PHP复制代码
 
class Captcha extends CI_Controller {
 function __construct() {
  parent::__construct();
  $this->load->model('test');//載入模型
  $this->load->helper('captcha');        //載入驗證碼函式
 }
 
 public function index(){
  echo $this->test->get_captcha();
 }
}
 
复制代码


Controller : login.php
PHP复制代码
 
class Login extends CI_Controller {
 function __construct() {
  parent::__construct();
  $this->load->model('test');
  $this->load->helper('captcha');        //載入驗證碼函式
 }
 
 public function index(){
  $data['img'] = $this->test->get_captcha();
  $this->load->view('login', $data);
 }
}
 
复制代码


view : login.php
HTML复制代码
 
<script type="text/javascript">
function load_captcha(id,url){
 $("#"+id).html('');
 $("#"+id).load(url); 
}
</script>
 
<input type="text" name="s" placeholder="輸入帳號" /><br />
<input type="password" name="p" placeholder="輸入密碼" /><br />
<input type="text" name="r" placeholder="輸入驗證碼" /><br />
<input type="submit" value="登入"> 
<a href="#" onclick="load_captcha('captcha','<?php echo site_url('captcha');?>');" title="換一張" id="captcha" ><?php echo $img;?></a>
 
复制代码


第一次讀取控制器 login.php
引用於 model 內的方法

點圖後刷新
是刷新控制器 captcha.php
一樣是引用 model 同一個方法

CI框架验证码CAPTCHA 辅助函数的使用

使用CAPTCHA 辅助函数很方便生成验证码,但是图片是存储在文件夹下,不是输出流,感觉不够完美,可以拿来用用。   ...

CI框架教程1——优化验证码机制(或验证码辅助函数)

验证码机制在CI框架中是通过一个辅助函数captcha()进行实现的——验证码辅助函数文件包含了一些帮助你创建验证码图片的函数。。         那么我们如何使用CI的captcha()辅助函数来完...

CTF之MD5截断比较

md5 截断验证ctf中经常用MD5的截断比较做验证,如:substr(md5($str), 0, 6) === “3322cf”,通过这种方式限制脚本的自动化攻击。通常可以写脚本去爆破MD5, 但是...

Yii2 captcha 验证码,点击不刷新,解决方案

虽然目前个人的工作不是程序员,但自己一直对敲代码非常感兴趣; 参加培训班(虽然没有卵用)+自学,差不多快半年了最近学习Yii2框架,使用验证码,坑爹的事情出现了,页面刷新、点击图片验证码都不会刷新; ...

yii验证码Captcha使用以及为什么验证码不刷新问题

Web开发的过程中, 经常会用到验证码, 以防止机器人不断的提交数据, 造成网站的瘫痪. Yii里提供了一个验证码的插件, 就是Captcha。 第一步: 在项目中使用Captcha需要以...
  • li27212
  • li27212
  • 2014年12月03日 15:17
  • 1209

captcDrupal验证码工具CAPTCHA

  • 2013年08月24日 13:53
  • 101KB
  • 下载

验证码 captcha

  • 2015年04月01日 10:43
  • 958B
  • 下载

Zend_Captcha 验证码研究

复制PHP内容到剪贴板 PHP代码: private $codeSession; //定义一个全局 Zend_Session_Namespace $this->codeSession = ...
  • ycb1689
  • ycb1689
  • 2012年05月16日 18:54
  • 711
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CI 驗證碼 Captcha (含點圖刷新)
举报原因:
原因补充:

(最多只允许输入30个字)