CI框架的一个问题
程序员文章站
2022-05-25 20:40:45
...
比如现在有一个 login 方法,是用来输出 login 视图
public function login()
{
$this->load->view('login');
}
此时的登陆页面是 index/login
。
然后提交表单数据到 login_check()
方法
public function login_check()
{
$this->form_validation->set_rules('email', 'email', 'trim|required|valid_email');
$this->form_validation->set_rules('password', 'password', 'trim|required');
if ($this->form_validation->run() === true) {
//.....
}else{
$this->load->view('login');
}
}
$this->form_validation->run()
表单校验失败,再次输出 login 视图,同时显示提示错误。
那么此时登陆页面地址 index/login_check
。
这个感觉太不好了,不希望链接地址变化。除了将 login()
和 login_check()
合并处理可以实现之外,还有什么更好的办法吗?
请多指教,谢谢大家。
回复内容:
比如现在有一个 login 方法,是用来输出 login 视图
public function login()
{
$this->load->view('login');
}
此时的登陆页面是 index/login
。
然后提交表单数据到 login_check()
方法
public function login_check()
{
$this->form_validation->set_rules('email', 'email', 'trim|required|valid_email');
$this->form_validation->set_rules('password', 'password', 'trim|required');
if ($this->form_validation->run() === true) {
//.....
}else{
$this->load->view('login');
}
}
$this->form_validation->run()
表单校验失败,再次输出 login 视图,同时显示提示错误。
那么此时登陆页面地址 index/login_check
。
这个感觉太不好了,不希望链接地址变化。除了将 login()
和 login_check()
合并处理可以实现之外,还有什么更好的办法吗?
请多指教,谢谢大家。
你用ajax提交表单就好了, 这样不会导致页面跳转到login_check
验证失败就跳转到login?error=err_code
CI里面使用redirect('index/login')
这个函数进行跳转
在你的else
里使用
想优雅的解决这个问题,需要用到路由,
判断 http
动词,映射到相应方法即可
上一篇: PHP加速插件 Zend Opcache
推荐阅读
-
CI(CodeIgniter)框架中的增删改查操作
-
JavaScript的for循环中嵌套一个点击事件的问题解决
-
网站要升级改版 才发现一个让人揪心的问题
-
Android解决Spinner初始化时自动选择第一个 item 及点击已选中的 item 时不触发Listener问题
-
PHP的foreach中使用引用时需要注意的一个问题和解决方法
-
php ci框架中加载css和js文件失败的解决方法
-
浅谈Vue.js 关于页面加载完成后执行一个方法的问题
-
基于vue框架手写一个notify插件实现通知功能的方法
-
vue框架下部署上线后刷新报404问题的解决方案(推荐)
-
关于Yii2框架跑脚本时内存泄漏问题的分析与解决