pcjingl 发表于 2014-8-6 21:19:30

CI captcha 验证码 直接输出到 img src

本帖最后由 pcjingl 于 2014-8-6 21:30 编辑

CI 每次验证码请求都会创建新的图片文件到网站目录中,总觉得这样有些不妥,不妨试着这样修改一下:

编辑"application/controllers/welcome.php",添加"captcha"方法
    public function captcha()
    {
      $this->load->helper('captcha');
      
      $vals = array(
            //'word' => 'Random word',
            'img_path' => DATAPATH.'captcha/',
            'img_url' => base_url('data/captcha').'/',
            //'font_path' => './path/to/fonts/texb.ttf',
            'img_width' => '150',
            'img_height' => 30,
            'expiration' => 7200
      );

      $cap = create_captcha($vals);

      // Session $cap['word'] OR Set COOKIE
      // TO DO..

      header('Content-Type: image/jpeg');
      echo $cap['image'];
    }

编辑"application/views/welcome_message.php",添加"img"标签(发帖时这里总是过滤掉img标签的onclick属性,大家自己修改一下吧{:soso_e101:})

<img id="codeimage" on-click="javascript:this.src='<?php echo site_url('welcome/captcha');?>?'+Math.random();" src="<?php echo site_url('welcome/captcha');?>" />


编辑"system/helpers/captcha_helper.php",像下面一样注释并添加新代码
         /*$img_name = $now.'.jpg';

      ImageJPEG($im, $img_path.$img_name);

      $img = "<img src=\"$img_url$img_name\" width=\"$img_width\" height=\"$img_height\" style=\"border:0;\" alt=\" \" />";

      ImageDestroy($im);*/
      
      ob_start();
      imageJPEG($im);
      ImageDestroy($im);
      $img = ob_get_clean();

刷新一下页面、点点验证码图片、看看保存验证码图片的文件夹,是否有变化?{:soso_e100:}


smallerpig 发表于 2014-8-7 10:48:28

支持一下!

aqxinzhuan 发表于 2014-8-8 14:54:34

最好是不要修改system目录下的文件

pcjingl 发表于 2014-8-9 11:08:52

aqxinzhuan 发表于 2014-8-8 14:54
最好是不要修改system目录下的文件

小改怡情,大改伤身。

eplanet 发表于 2014-12-27 15:09:47

其实可以继承后修改,不过这个的确不错,回头试试

nic 发表于 2015-1-22 11:24:18

pcjingl 发表于 2014-8-9 11:08
小改怡情,大改伤身。

建议不直接改动,而去继承然后修改,直接改动的话 版本升级会带来问题

john11 发表于 2015-3-24 16:11:20

验证码我找第三方类,直接输出到src。
看到这个方法不错,学习了,

弱水河_kUW1u 发表于 2016-12-17 08:33:30

老兄,我就想问下你这样做验证码真的显示出来了吗?

弱水河_kUW1u 发表于 2016-12-17 08:35:07

这样根本无法显示啊,哥们?能给个回复吗,按你说的图片在视图上根本无法显示啊

弱水河_kUW1u 发表于 2017-1-6 22:59:00

可以显示
页: [1]
查看完整版本: CI captcha 验证码 直接输出到 img src