我一直在使用验证码进行codeigniter我在我的电脑上工作正常但不知何故当我上传到服务器时它没有生成图像,我一直尝试从stackoverflow的其他帖子的建议,但它不起作用< / p>
我已在下面点检查了
请在控制器
下面找到我的代码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'); ?>
为什么验证码无法写入该目录?
答案 0 :(得分:0)
你的img_path
错了。试试这个
'img_path' => './assets/files/captcha/',
答案 1 :(得分:0)
由于这篇文章我发现了线索,因为SELinux在Centos 7上很活跃。
答案 2 :(得分:0)
是的。正是由于错误的图像路径显示此错误。在codeigniter中使用确切的路径和url很好。
'img_path' => APPPATH.'../assets',
'img_url' => base_url().'/assets',