用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2988|回复: 16
收起左侧

[已解决] 视图端为什么无法显示验证码

[复制链接]
发表于 2016-12-17 09:51:21 | 显示全部楼层 |阅读模式


hex,我也遇到了同样的问题,如下
编辑"application/controllers/welcome.php",添加"captcha"方法
    public function captcha()
    {
        $this->load->helper('captcha');
        
        $vals = array(
            //'word' => 'Random word',
            'word' => 'Random word',
            'img_path' =>'./captcha/',
            'img_url' => base_url().'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 id="codeimage" on-click="javascript:this.src='<?php echo site_url('welcome/captcha');?>?'+Math.random();" src="<?php echo site_url('welcome/captcha');?>"

为什么显示不出来图片啊?为什么显示不出来图片啊?为什么显示不出来图片啊?为什么显示不出来图片啊?

在application同级目下建有captcha目录,里面有图片生成,就是在<img id="codeimage" on-click="javascript:this.src='<?php echo site_url('welcome/captcha');?>?'+Math.random();" src="<?php echo site_url('welcome/captcha');?>"显示不出来

site_url('welcome/captcha');
这个生成的 URL 放浏览器地址栏执行,也有图片生成
发表于 2016-12-17 22:21:52 | 显示全部楼层
<div style="float:left;height:28px;padding-top:2px;"><input name="code" style="width:106px;" type="text"  placeholder="请输入验证码" /></div>
                        <div class="code" style="float:left">
                                        <a href="javascript:void(0);" onclick="load_captcha('captchaimg','<?php echo site_url('captcha_URL')?>');" title="Refresh" id="captcha" >
<div id="captchaimg" style="float:right;cursor:pointer;" class="gb_version"  /></div>
</a></div>
<script>function load_captcha(id,url){ $("#"+id).html('');$("#"+id).load(url); }
$("#captchaimg").load('<?php echo site_url('captcha_URL')?>');
</script>
回复 支持 0 反对 1

使用道具 举报

发表于 2017-1-2 22:50:31 | 显示全部楼层
弱水河_kUW1u 发表于 2017-1-2 13:08
终于知道原因了,是那几个以image开头的函数的问题,比如imagepng,imagegif 等,在codeigniter里的captcha ...

你这是改了 CI 的源码了?如果改源码才能正常的话,还是说明你的环境(或某些地方)有问题,因为在我这里是不需要修改源码就可以正常运行的。另外,修改源码以后,对于升级 CI 框架也可能会有问题。

PS:你说的很对,基础很重要,框架虽然不能迷恋,但是建议你尽可能了解一下框架的某些写法是不是也有一定的用处?


发表于 2016-12-17 10:30:17 | 显示全部楼层
图片已经生成了,那你查看一下图片的连接地址是否正确
 楼主| 发表于 2016-12-17 17:38:08 | 显示全部楼层
Michael锐生 发表于 2016-12-17 10:30
图片已经生成了,那你查看一下图片的连接地址是否正确

在网页上点击右键查看“源文件”,看到地址为<div id=""><img  src="http://localhost/ci6/captcha/1481967223.4285.jpg" style="width: 100; height: 30; border: 0;" alt=" " /></div>
 楼主| 发表于 2016-12-17 17:40:05 | 显示全部楼层
Michael锐生 发表于 2016-12-17 10:30
图片已经生成了,那你查看一下图片的连接地址是否正确

<img src="http://localhost/ci6/index.php/captcha;" alt="Smiley face" width="64" height="64"></p>
 楼主| 发表于 2016-12-17 17:41:16 | 显示全部楼层
生成的地址是下面这个
 楼主| 发表于 2016-12-17 17:42:17 | 显示全部楼层
Michael锐生请问在吗
 楼主| 发表于 2016-12-17 23:27:21 | 显示全部楼层

兄台,你没有能明白我的意思。我要问的是这样<img id="codeimage" on-click="javascript:this.src='<?php echo site_url('welcome/captcha');?>?'+Math.random();" src="<?php echo site_url('welcome/captcha');?>"为什么显示不出来?到底是什么原因?

发表于 2016-12-19 10:33:35 | 显示全部楼层
http://localhost/ci6/captcha/1481967223.4285.jpg 这个地址你放到浏览器里看看可以显示出来图片吗?如果显示不出来,说明服务器配置有问题。

另外,问问题不要太着急,周末可能都放假了,稍安勿躁。有急事可以直接联系我 QQ 49489680,感谢你对 CI 中国社区的支持。
发表于 2016-12-23 10:24:41 | 显示全部楼层

感觉是不用index.php的,你可以试一下把site_url换成base_url,希望对你有帮助

本版积分规则