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:}
支持一下! 最好是不要修改system目录下的文件 aqxinzhuan 发表于 2014-8-8 14:54
最好是不要修改system目录下的文件
小改怡情,大改伤身。
其实可以继承后修改,不过这个的确不错,回头试试 pcjingl 发表于 2014-8-9 11:08
小改怡情,大改伤身。
建议不直接改动,而去继承然后修改,直接改动的话 版本升级会带来问题 验证码我找第三方类,直接输出到src。
看到这个方法不错,学习了, 老兄,我就想问下你这样做验证码真的显示出来了吗? 这样根本无法显示啊,哥们?能给个回复吗,按你说的图片在视图上根本无法显示啊 可以显示
页:
[1]