2017-07-06 58 views
0

我正在使用CodeIgniter登录和搜索功能上。调用函数和重定向在笨

我在做什么到底是什么?

当用户搜索的东西在搜索表单并提交一个表单,我把一张支票,如果用户在随后记录它会显示直接结果&如果用户没有在随后登录重定向用户到登录页面,我将session中的搜索数据保存为search_session_data

我有一个控制器,它重定向关于会话的用户。如果用户直接进入登录页面,则用户在登录后重定向到仪表板。但是如果用户来自搜索页面,则用户在登录后重定向到搜索结果页面。

我已经提到了注释里面的代码的问题。

这是控制器:

public function get_the_search_result() { 

     $search_session_data = $this->session->userdata('search_session_data'); 
     $this->load->model ('my_model'); 
     $result_data = $this->my_model->find_data_regarding_search_criteria($search_session_data); 

     $this->load->view ('app/app_statch_result',['result_data' => $result_data,]); 
} 


public function login_function() { 
    //necessary login code 

    if ($this->session->userdata('search_session_data')) { 

     //Here I want the if `search_session_data` available in session then 
     // user goest to `get_the_search_result` and view the 
     //'app/app_statch_result` but it is not working. 

     $this->get_the_search_result(); 
    } else { 
     return redirect('dashboard'); 
    } 

} 

让我怎么重定向从 login_function功能,用户app_statch_result

关于改进任何建议是适用的。由于

+0

https://stackoverflow.com/questions/11374759/重定向到referer-url-in-codeigniter – urfusion

+0

Sir @urfusion我不是只重定向用户,我的意思是用户重定向搜索结果数据,如果它来自搜索页面。 –

+0

@urfusion并对不起,先生我问过之前曾经访问过这个问题,但我无法得到他们想提出的建议。 –

回答

0

如果我是你,我会做到以下几点:

  1. 创建登录控制器,或更好,图书馆,把所有的登录逻辑类中。然后你可以从任何控制器加载库...例如:

样品库

class User_controll{ 
     private $CI; 

     public function __construct() { 
      $this->CI = &get_instance(); 
     } 

     public function check_user_data($username, $password) { 
      $tmpId; 
      // To increase security you can encrypt password 
      $user = $this->CI->db->from('users')->where(array('username' => $username, 'password' => $password))->get()->result(); 

      if(count($user) == 1){ 
       $this->CI->session->set_userdata('loggedIn', 1); 
       redirect('user_page'); 
      } 
     } 
     protected function logout() { 
      $this->CI->session->set_userdata('loggedIn', 0); 
     } 

     public function isLoggedIn() { 
      return $this->CI->session->userdata('loggedIn') == 1; 
     } 

    } 

样品控制器

class User_page extends CI_Controller{ 

     public function __construct() { 
      parent::__construct(); 
      $this->load->library('User_controll'); 
     } 
     public function index() { 
      if(!$this->user_controll->isLoggedIn()){ 
       redirect('user_page/loginForm'); 
      } 
      else { 
       // do whatever you want 
      } 
     } 
    } 
+0

感谢您的建议,但这不是我正在寻找的先生。 –