如何获得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);
}
}
答案 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']