欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

Codeigniter处理用户登录验证后URL跳转的代码

程序员文章站 2024-02-09 22:46:04
...
  1. class MY_Controller extends CI_Controller
  2. {
  3. public function __construct()
  4. {
  5. parent::__construct();
  6. /*判断是否登录,判断当前URL是否是auth/login*/
  7. if ( ! $this->tank_auth->is_logged_in()
  8. && ( $this->router->fetch_class() != 'auth' && $this->router->fetch_method() != 'login'))
  9. {
  10. $redirect = $this->uri->uri_string();
  11. if ( $_SERVER['QUERY_STRING'])
  12. {
  13. $redirect .= '?' . $_SERVER['QUERY_STRING'];
  14. }
  15. /*跳转到用户登陆页面,指定Login后跳转的URL*/
  16. redirect('auth/login?redirect='.$redirect);
  17. }
  18. }
  19. }
  20. ?>
复制代码

文件:User.php

  1. class User extends MY_Controller

  2. {
  3. function login()
  4. {
  5. if ($this->tank_auth->is_logged_in()) { // logged in

  6. redirect('/');
  7. } else {

  8. //other codes here......
  9. /*判断是否有redirect信息*/
  10. $data['redirect'] = isset($_GET['redirect']) ? $_GET['redirect'] : '/';
  11. if ($this->form_validation->run()) { // validation ok

  12. if ($this->tank_auth->login(
  13. $this->form_validation->set_value('login'),
  14. $this->form_validation->set_value('password'),
  15. $this->form_validation->set_value('remember'),
  16. $data['login_by_username'],
  17. $data['login_by_email'])) { // success
  18. redirect($data['redirect']);
  19. } else {

  20. //error handling
  21. }
  22. }
  23. $this->load->view("login_form")
  24. }
  25. }
  26. /*
  27. Note: 在login_form中需要注意,提交表单的form地址:
  28. */
  29. }?>
复制代码

在login_form中需要注意,提交表单的form地址:

复制代码