php - CodeIgniter 图像验证
问题描述
我想在我的登录表单中添加图像验证,但我不知道如何强制用户进行验证(因为无需填写机器人表单即可登录)
这是我的控制器:
public function login(){
if(isset($_POST['login']) && $_POST['login'] == 1){
foreach($_POST as $key=>$value){
$this->Maccount->$key = trim($value);
}
if(!isset($this->Maccount->user))
$this->errors[] = 'No username given.';
else{
if(!isset($this->Maccount->password))
$this->errors[] = 'No password given.';
else{
if(!$this->Maccount->valid_username($this->Maccount->user))
$this->errors[] = 'Invalid username.';
else{
if(!$this->Maccount->valid_password($this->Maccount->password))
$this->errors[] = 'Invalid password.';
else{
if($this->Maccount->login_user()){
header('Location: '.$this->config->base_url.'account');
}
else{
$this->errors[] = 'Wrong username or password.';
}
}
}
}
}
}
if(!empty($this->errors)){
$this->load->set('errors', $this->errors);
}
$this->load->view($this->load->get('tmp').DS.'account'.DS.'login');
}
这是我的 html 表单:
<form id="login" name="login" method="post" action="<?php echo load::get('base_url');?>account/login" accept-charset="UTF-8">
<input id="login_field" type="text" name="user" id="user" required placeholder="Account">
<input id="login_field" name="password" id="password" type="password" required placeholder="*******">
<input name="submit" type="image" value="Log In" src="<?php echo load::get('base_url');?>assets/<?php echo load::get('tmp');?>/images/login.png">
<input type="hidden" name="login" value="1" />
<img src="<?php echo load::get('base_url');?>image_verify.php" alt="Image Verify">
<input name="bot" type="text" class="post" id="bot" size="6" maxlength="10">
</form>
解决方案
推荐阅读
- model-view-controller - 哪个是 mvc 组件图的准确方法?
- android - 如何为 Android Studio 3.2.1 配置 Android SDK?
- typescript - 构造函数根据扩展类的接口设置值
- node.js - Puppeteer 浏览器内时间加速
- scala - 如何实现 HList 文字类型约束?
- android - 在 Dialogfragment 中显示 DatePickerDialog
- java - 如何获取列表中 Web 元素的属性?
- android - 当孩子身高不同时,RecyclerView 在向上滚动时会抖动
- vb.net - 单击一次部署:应用程序验证未成功
- jira - Jira - JQL 获取与我的任何子任务相关的所有问题