gpt4 book ai didi

php - 使用 codeigniter 的验证码不起作用

转载 作者:行者123 更新时间:2023-12-04 05:15:30 26 4
gpt4 key购买 nike

我正在尝试使用 codeigniter 实现验证码功能。但它不显示验证码图像。

这是我的代码:

// Controller 文件:captcha.php

<?php

class Captcha extends CI_Controller {
var $controller = "captcha";
var $viewContent = array();

public function __construct() {
parent::__construct();
$this->load->view('header');
}

/* Function To load captcha view file */

function list_captcha() {

//加载验证码助手
        $this->load->helper('captcha');
$data = array(
'img_path' => './captcha/',
'img_url' => 'localhost/demoProject/application/captcha/',
'img_width' => '150',
'img_height' => 24,
'border' => 0,
'expiration' => 7200
);
$captchaArr = create_captcha($data);
$this->viewContent['captchaArr'] = $captchaArr;
$this->viewContent['captchaWord'] = $captchaArr['word'];
//echo"<pre>"; print_r($captchaArr);exit;
$this->viewContent['refreshUrl'] = "localhost/
demoProject/" . $this->controller . "/list_" . $this->controller;
$this->load->view($this->controller, $this->viewContent);
$this->load->view('footer');
}

}
?>

//查看文件:captcha.php
<script>
$(document).ready(function(){
$("#captcha").blur(function(){
if($("#captcha").val()== '<?php echo $captchaWord; ?>'){
alert('Captcha match');
}else{
alert('Please enter same word like captcha image.');
}
});
});
</script>
<table>
<tr>
<td>
Captcha Image
</td>
<td style="text-align: center">
&nbsp;&nbsp;<?php echo $captchaArr['image']; ?><br>
</td>
</tr>
<tr>
<td>Enter the same code here </td>
<td style="text-align: center">&nbsp;&nbsp;
<?php
$data = array('name' => 'captcha', 'id' => 'captcha');
echo form_input($data);
?>
</td>
</tr>
<tr>
<td>Can't read the image?</td>
<td style="text-align: center">&nbsp;&nbsp;<a href="<?php echo $refreshUrl; ?>">Refresh</a></td>
</tr>
</table>

我没有得到这段代码有什么问题......

最佳答案

我相信你的问题是这一行:

img_url' => 'localhost/demoProject/application/captcha/',

您的网址缺少 http://协议(protocol)标识符。
img_url CAPTCHA 助手永远不会修改它 - 它直接用于创建 <img>标签,它直接转储到您的 HTML 输出中。

当浏览器尝试加载图像时,它没有意识到这是一个网址,因此无法加载。

您应该修改这行代码以包含 http://部分。更好的是,您应该使用 CodeIgniter 的 base_url() 生成 URL。函数,以便您的代码可以灵活地适应 future 的变化。

关于php - 使用 codeigniter 的验证码不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14333323/

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