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

[版本 2.x] ci框架生成图片验证码失败

[复制链接]
发表于 2012-7-26 16:20:07 | 显示全部楼层 |阅读模式
有个问题请教下前辈们,我最近在学习ci框架,目前遇到这么一个问题,就是按照手册上代码练习的时候验证码图片生成失败!但在项目目录下(backup)能生成图片。就是在网页上显示不出来,出现一个红叉.
代码如下:
<?php
/*
*
*    CI框架辅助函数之验证码辅助函数
*/

    class Szq_captcha extends CI_Controller
    {
        function __construct()
        {
            parent::__construct();

            $this->load->helper("captcha");

        }

        function index()
        {


          $this->load->helper('captcha');
          $vals = array(
          'img_path' => './backup/',
          'img_url' => 'http://localhost/ci_study/index.php/szq_captcha/'
           );

          $cap = create_captcha($vals);

          $data = array(
            'captcha_time' => $cap['time'],
            'ip_address' => $this->input->ip_address(),
            'word' => $cap['word']
            );

          $query = $this->db->insert_string('captcha', $data);
          $this->db->query($query);

         echo '提交下面的验证码:';
         echo $cap['image'];
         echo '<input type="text" name="captcha" value="" />';


        }
    }
?>
麻烦大侠们帮忙给看下,谢谢!
file:///C:/Documents%20and%20Settings/Administrator/Application%20Data/Tencent/Users/2583007384/QQ/WinTemp/RichOle/UC1JP_H%5DMCL1H$18UCXNDSK.jpg


发表于 2014-10-21 00:13:08 | 显示全部楼层
楼上的朋友,我知道是为空不能写入数据库,但这个涵数的反回的值是空的请看以下代码

#生成验证码
                $vals = array(
                    'word' => rand(1000, 10000),
                    'img_path' => './staticfile/captcha/',
                    'img_url' => base_url('staticfile/captcha').'/',
                    'img_width' => '65',
                   // 'img_height' => '33',
                    'expiration' => 7200
                    );
                $cap = create_captcha($vals);
                var_dump($cap);//返回空值
所以写入数据库就报错,但我在本地测试一点问题都没有,传上服务器就有问题了


发表于 2014-10-17 13:36:37 | 显示全部楼层
我的也是这个问题

发生了一个数据库错误

Error Number: 1048

Column 'captcha_time' cannot be null

INSERT INTO `hx_captcha` (`captcha_time`, `ip_address`, `word`) VALUES (NULL, '110.208.164.81', NULL)

Filename: D:\wwwroot\utek_cc\system\database\DB_driver.php

Line Number: 330
发表于 2014-10-17 14:36:54 | 显示全部楼层
真心的覺得,去網路找個字典來查看單字很困難嗎...

Column 'captcha_time' cannot be null

很明顯地告訴你你的 captcha_time 不可為空
因為你寫入資料庫時他的 value 是 NULL
所以發生了錯誤,請再檢查一次你 insert_string 的函式


 楼主| 发表于 2012-7-27 16:41:48 | 显示全部楼层
额。。。。问题解决了。原来是img_url项写错了。以后一定要细心。。。。。。
发表于 2012-7-27 17:08:28 | 显示全部楼层
本帖最后由 收藏家 于 2012-7-27 17:10 编辑

{:soso_e154:}我想请教下楼上的,你真的实验成功了么?
 楼主| 发表于 2012-7-30 11:57:10 | 显示全部楼层
收藏家 发表于 2012-7-27 17:08
我想请教下楼上的,你真的实验成功了么?

嗯,成功了。图片不好上传,总之是成功了。
发表于 2012-8-17 09:18:21 | 显示全部楼层
szq 发表于 2012-7-27 16:41
额。。。。问题解决了。原来是img_url项写错了。以后一定要细心。。。。。。 ...

你这img_url应该写成什么啊 我的状况和你一样的 显示图片叉叉
发表于 2012-8-22 23:42:21 | 显示全部楼层
PHP复制代码
     'img_url' => 'http://localhost/ci_study/index.php/backup/'
复制代码
发表于 2012-8-22 23:44:44 | 显示全部楼层
hihily 发表于 2012-8-17 09:18
你这img_url应该写成什么啊 我的状况和你一样的 显示图片叉叉

看手册,'img_path'和 'img_url'的区别
发表于 2013-4-12 13:50:46 | 显示全部楼层
我用楼主的代码实验了一下,结果报错
提示captcha_time字段不能为空。错误提示信息如下:
A Database Error Occurred

Error Number: 1048

Column 'captcha_time' cannot be null

INSERT INTO `captcha` (`captcha_time`, `ip_address`, `word`) VALUES (NULL, '127.0.0.1', NULL)

Filename: C:\wamp\www\ci-demo\system\database\DB_driver.php

Line Number: 330
发表于 2014-8-4 15:45:56 | 显示全部楼层
print_r($cap);瞧瞧就知道哪边不符合了

本版积分规则