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 同一個方法

php Captcha 驗證碼類

  • fdipzone
  • fdipzone
  • 2012年02月26日 14:34
  • 16696

python爬虫实战--selenium验证码保存+多线程多标签+自动点击+完整代码

初步实现思路: 获取种子的页面,在每个页面中找到说谢谢的按钮,并点击后,关闭。依次进行下去即可。 相似任务: 实现对某论坛的自动回复,实现自动获取所有帖子的信息等等相关操作,无论是否需要模拟登录、...
  • qwerty200696
  • qwerty200696
  • 2017年12月11日 12:26
  • 197

Python图片验证码

大部分博客网站是不会设置用户登录功能的,如果表单上再不添加验证码机制,那你就等着spammer疯狂的攻击吧。我曾经就吃过大亏:之前的一个网站平均每天几十条垃圾留言,删都来不及。后来在网上找到了一个优秀...
  • permike
  • permike
  • 2016年04月05日 22:35
  • 969

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

使用CAPTCHA 辅助函数很方便生成验证码,但是图片是存储在文件夹下,不是输出流,感觉不够完美,可以拿来用用。   ...
  • 21aspnet
  • 21aspnet
  • 2011年07月13日 19:14
  • 5573

字符識別練習(驗證碼、車牌號、身份證號等)

http://blog.csdn.net/conmajia/article/details/7649551 光學圖像識別(OCR)是非常有用的技術。在驗證碼識別、車牌號識別、文字識別方面,基...
  • rocky69
  • rocky69
  • 2012年07月28日 21:26
  • 4094

驗證碼

    private string GenCode(int num)     {         string[] source ={"0","1","2","3","4","5","6","7",...
  • hawk1226
  • hawk1226
  • 2009年10月30日 08:41
  • 82

注册论坛时提示“您输入的验证码不正确,无法提交,请返回修改。”

 网上说了那些清除cookie等方法都不管用,经过我分析(专业,内行,砖家)。鉴定结果是论坛代码问题,不知道是谁些的代码。原因是验证用户名是否已经注册时写了个cookie,验证验证码时候写了个cook...
  • ccccccccccc
  • ccccccccccc
  • 2008年03月09日 05:23
  • 2791

邮件发送验证码

if (!string.IsNullOrEmpty(this.txtMail.Text)) { try { ...
  • Draling
  • Draling
  • 2016年10月21日 14:36
  • 1403

关于@2x图片

使用iphone retina模拟器时,如果工程中把640x960像素(简称640)的图片写成了不带@2x,则模拟器会认为这是一张320x480像素(简称320)的图片,采用1对1(1个像素对应1个点...
  • tiantao111
  • tiantao111
  • 2012年07月05日 11:40
  • 20855

CI核心类

如果你需要在现有类库中加入一两个新的功能,那就完全不必要替换整个类库文件.你只需简单地扩展(继承)现有的类,扩展一个类就像在类中增加一些例外: 扩展的类必须申明由母类扩展而来. 新扩展的类所在的...
  • u014471522
  • u014471522
  • 2014年06月20日 12:57
  • 462
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CI 驗證碼 Captcha (含點圖刷新)
举报原因:
原因补充:

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