Codeigiter 有一个验证码助手。
首先,您要创建一个文件夹,您可以在其中存储您的验证码图像并授予此文件夹执行读/写操作的权限。在这种情况下,我在captcha
我的 codeigniter 实例的根目录中创建了文件夹。
然后,我们要加载captcha
助手:
$this->load->helper('captcha');
让我们使用我们的设置启动验证码实例(您可以在表单中Controller
或View
表单中执行此操作):
$rand_string = strtoupper(random_string('nozero', 4));
$settings = array(
'word' => $rand_string,
'img_path' => './captcha/',
'img_url' => base_url() .'captcha/',
'img_width' => '250',
'img_height' => 35,
'expiration' => 7200
);
$cap = create_captcha($settings);
$this->session->set_userdata('captchaWord',$cap['word']);
session
请注意,每当我创建验证码时(例如在页面刷新时),我都会在其中保留生成的验证码。这样我就可以将原始文件captcha word
与来自我的form
. 然后,我将在表单(视图)的某处显示生成的带有输入字段的验证码图像:
<form id="my_form">
<input type="text" name="captcha" value=""/>
<?= $cap['image']; ?>
</form>
现在,我所要做的就是将input
收到的my_form
验证码与实际验证码值进行比较(在我的控制器中,我处理表单提交的地方):
$userCaptcha = $this->input->post('captcha');
$actual_word = $this->session->userdata('captchaWord');
if( strcmp(strtoupper($userCaptcha),strtoupper($actual_word)) == 0 ) {
// input and captcha are the same
}