CodeIgniter登录无效用户名无错误提示跳转原页面问题求助
问题解决方案
1. 修复控制器gagallogin方法的错误
gagallogin方法中对set_flashdata添加了不必要的echo输出,set_flashdata是用来写入session闪存数据的方法,不需要输出内容。提前输出会触发header提前发送,导致重定向时闪存数据无法正常写入session,错误提示也就无法带到登录页面。
修改后的代码:
function gagallogin() { $url = base_url('administrator'); // 移除set_flashdata前的echo $this->session->set_flashdata('msg', 'Username Atau Password Salah'); redirect($url); }
2. 登录视图添加错误提示渲染代码
当前登录视图没有读取展示session闪存中的msg内容,就算闪存数据设置成功用户也看不到提示。你可以在表单上方的合适位置添加如下代码,用来展示错误提示:
<?php if($this->session->flashdata('msg')): ?> <div class="alert alert-danger"> <?php echo $this->session->flashdata('msg'); ?> </div> <?php endif; ?>
可选优化
- 你当前
cekuser方法存在重复跳转逻辑:校验账号密码失败后已经触发跳转到gagallogin,方法底部的二次session判断属于冗余代码,可以删除避免逻辑混乱。 - 现有代码用md5加密密码的方式安全性较低,推荐使用PHP原生的
password_hash和password_verify方法处理密码加密校验。
内容的提问来源于stack exchange,提问作者aufa
相关产品推荐
相关产品推荐

