如何获得codeigniter验证码图像库

时间:2015-06-24 08:20:37

标签: php codeigniter

如何获得codeigniter验证码图像库。配置需要定义'img_path' => '', 'img_url' => '',,但我没有这样的文件夹或图像,我也很多教程和codeigniter文档...但没有人描述验证码库所在的位置..

功能

public function captcha() {
        /* Set a few basic form validation rules */
        $this->form_validation->set_rules('name', "Name", 'required');
        $this->form_validation->set_rules('captcha', "Captcha", 'required');

        /* Get the user's entered captcha value from the form */
        $userCaptcha = set_value('core/captcha');

        /* Get the actual captcha value that we stored in the session (see below) */
        $word = $this->session->userdata('captchaWord');



        /* Check if form (and captcha) passed validation */
        if ($this->form_validation->run() == TRUE &&
                strcmp(strtoupper($userCaptcha), strtoupper($word)) == 0) {
            /** Validation was successful; show the Success view * */
            /* Clear the session variable */
            $this->session->unset_userdata('captchaWord');


            /* Get the user's name from the form */
            $name = set_value('name');

            /* Pass in the user input to the success view for display */
            $data = array('name' => $name);
            $this->load->view('pages/captcha-success-view', $data);
        } else {

            /** Validation was not successful - Generate a captcha * */
            /* Setup vals to pass into the create_captcha function */
            $vals = array(
                'word' => 'Random word',
                'img_path' => '',
                'img_url' => '',
                'img_width' => '150',
                'img_height' => 30,
                'expiration' => 7200
            );

            print_r($vals);

            /* Generate the captcha */
            $captcha = create_captcha($vals);

            $data['captcha'] = $captcha;
            $data['image'] = $captcha['image'];

            /* Store the captcha value (or 'word') in a session to retrieve later */
            $this->session->set_userdata('captchaWord', $captcha['word']);

            /* Load the captcha view containing the form (located under the 'views' folder) */
            $this->load->view('pages/captcha-view', $data);
        }
    }

1 个答案:

答案 0 :(得分:3)

CodeIgniter中没有验证码库,但是有助手。您只需首先加载此帮助程序以使用验证码$this->load->helper('captcha');

请记住,您必须在项目中创建一个文件夹,其中CI将放置验证码图像。因此,如果您创建一个文件夹名称' captcha'在您的项目根目录中,您的代码将是(演示)

$this->load->helper('captcha');
$vals = array(
 'img_path' => 'captcha/',
 'img_url' => base_url('captcha'),
 'font_path' => 'assets/fonts/ALGER.TTF',
 'img_width' => '300',
 'img_height' => 80,
 'font_size' => 24,
 'colors' => array(
    'background' => array(255, 255, 255),
    'border' => array(0, 0, 0),
    'text' => array(0, 0, 0),
    'grid' => array(255, 40, 40)
  )
);

$cap = create_captcha($vals);

现在可以在任何地方打印验证码echo $cap['image']