Codeigniter Captcha没有显示图像

时间:2016-06-03 14:55:03

标签: codeigniter captcha

我一直在使用验证码进行codeigniter我在我的电脑上工作正常但不知何故当我上传到服务器时它没有生成图像,我一直尝试从stackoverflow的其他帖子的建议,但它不起作用< / p>

我已在下面点检查了

  1. GD已启用
  2. 我已经使用递归模式
  3. 执行chmod 755到assets目录

    请在控制器

    下面找到我的代码
    public function captcha_config() {
                    $this->load->helper(array('captcha','form'));
                    $vals = array(
                                    'img_path' => '/var/www/html/assets/files/captcha/',
                                    'img_url' => base_url().'assets/files/captcha/',
                                    'img_width' => 150,
                                    'img_height' => 30,
                                    'expiration' => 7200
                            );
                            $cap = create_captcha($vals);
                            $this->session->set_userdata('capt',md5($cap['word']));
                            $image = $cap['image'];
    
                            //$data['captcha_img'] = $cap['image'];
    
                            //return $image;
                            var_dump($cap); //it shown bool(false)
            }
    

    结果是

    bool(false)
    

    我一直在改变下面的路径,但也没有工作。

    ./assets/files/captcha/
    

    --------------------------更新06-04-2016 --------------- -----------------

    我得到了另一条线索

    我在helper(captcha_helper)中调试后,我将一些返回False改为调试模式。它显示以下错误

    Message: imagejpeg(/var/www/html/assets/files/captcha/1465012057.5767.jpg): failed to open stream: Permission denied
    

    我已经完成了将captcha目录更改为chmod 777但似乎无效。

    我已经将所有权更改为apache,我正在使用此脚本检查来自网络的所有权,但仍然无效?

    <?php echo exec('whoami'); ?>
    

    为什么验证码无法写入该目录?

3 个答案:

答案 0 :(得分:0)

你的img_path错了。试试这个

 'img_path' => './assets/files/captcha/',

CodeIgniter Captcha Helper Example - FormGet.com

答案 1 :(得分:0)

由于这篇文章我发现了线索,因为SELinux在Centos 7上很活跃。

https://blog.lysender.com/2015/07/centos-7-selinux-php-apache-cannot-writeaccess-file-no-matter-what/

答案 2 :(得分:0)

是的。正是由于错误的图像路径显示此错误。在codeigniter中使用确切的路径和url很好。

 'img_path'      => APPPATH.'../assets',
 'img_url'       => base_url().'/assets',