gpt4 book ai didi

php - 我的 codeigniter 验证码未生成图像

转载 作者:行者123 更新时间:2023-12-02 04:33:09 24 4
gpt4 key购买 nike

我的 CodeIgniter 验证码未生成,因此我无法在 View 中显示它

Controller

public function login() {
$this->load->helper('captcha');
$this->form_validation->set_rules($this->login_rules);
$userCaptcha = set_value('captcha');
$word = $this->session->userdata('captchaWord');

if($this->form_validation->run() == TRUE && strcmp(strtoupper($userCaptcha),strtoupper($word)) == 0) {
$this->session->unset_userdata('captchaWord');
$username = $this->input->post('username');
$password = $this->input->post('password');

if(!$this->autentifikasi->login($username,$password)) {
$this->session->set_flashdata('pesan', '<div class="error">Login gagal</div>');
redirect(site_url('user/login'));
} else {
$this->session->set_flashdata('pesan', '<div class="sukses">Anda telah berhasil login, selamat berbelanja.</div>');
redirect(site_url('user/login'));
}
}

$original_string = array_merge(range(0,9), range('a','z'), range('A', 'Z'));
$original_string = implode("", $original_string);
$captcha = substr(str_shuffle($original_string), 0, 6);

$vals = array(
'word' => $captcha,
'img_path' => './captcha/',
'img_url' => base_url().'user/login/',
'font_path' => './fonts/texb.ttf',
'img_width' => '150',
'img_height' => 30,
'expiration' => 3600
);

$cap = create_captcha($vals);

$data['image']= $cap['image'];
$this->session->set_userdata('captchaWord', $captcha);

$this->template->set_judul('PT. Columbindo Perdana')
->set_css('style')
->set_parsial('sidebar','sidebar_view',$this->data)
->set_parsial('topmenu','top_view',$this->data)
->render('user_login',$this->data);
}

查看

    <?php if($this->session->flashdata('pesan')): ?>
<?php echo $this->session->flashdata('pesan'); ?>
<?php else:?>
<h2>Silakan Login</h2>
<?php if(@$error){echo @$error;} ?>
<?php echo validation_errors(); ?>
<br />
<?php echo form_open(site_url(uri_string()),'class="order"'); ?>
<?php echo form_label('Username'); ?>
<?php echo form_input('username'); ?>
<?php echo form_label('Password'); ?>
<?php echo form_password('password'); ?>
<?php echo form_label('Captcha'); ?>
<?php echo $image; ?>
<?php echo form_input('captcha'); ?>
<?php echo form_submit('submit','Login'); ?>
<?php echo form_close(); ?>
<br />
Anda belum memiliki akun? Silakan daftar <a href="<?php echo site_url('user/register') ;?>">disini</a>.
<?php endif ?>

据我所知,我没有验证码文件夹或字体文件夹,如果没有这两个文件夹,它是否仍然会自行生成?我已经尝试从一些已解决的问题中尽我所能,但它仍然不起作用。没有错误,但验证码图像未显示。

请帮助我。

最佳答案

问题是您将 $this->data 传递给您的 View ,但将生成的图像分配给 $data。所以你需要将其更改为

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

$this->data['image']= $cap['image'];

如果这不起作用,请确保将图像保存到的验证码目录 ('img_path' => './captcha/') 是可写的,666 或 777。可以通过在命令行上执行 chmod 777 captcha/ 来实现。还要确保在您的 php.ini 中启用了 GD 图像库扩展。

关于php - 我的 codeigniter 验证码未生成图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22589609/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com