2015-08-28 79 views
1

我想在用戶登錄時輸入,並輸入url進行註冊,註銷並顯示註冊表單。如何讓用戶註銷,當他嘗試輸入註冊URL?

在我的登記控制器方法我加了這一點,但它不工作:

public function register() 
{ 
     if($this->session->userdata('is_logged_in')) { 
      $this->session->sess_destroy(); 
      redirect('auth/logout'); 
     } 
     //form validation 
     if ($this->form_validation->run()==FALSE) 
     { 
      $this->signup(); 
     } 
     else 
     { 
      //login 
     } 
    } 

    public function signup() 
    { 

     $data['dynamic_view'] = 'auth/register_form'; 
     $this->load->view('templates/main',$data); 
    } 

我的登錄方法是

public function login() 
    { 

     $this->form_validation->set_rules('username', 'username', 'trim|required'); 
     $this->form_validation->set_rules('password', 'password', 'trim|required'); 


     if ($this->form_validation->run()==FALSE) 
     { 

      $this->index(); 
     } 
     else 
     { 
      if ($user = $this->auth_model->login()) { 
       if(count($user) > 0)  
       { 
        $this->load->library('session'); 

        $data = array(
         'username' => $user['username'], 
         'user_id' => $user['user_id'], 
         'is_logged_in' => TRUE 

        ); 
        $this->session->set_userdata($data);   

        redirect('home'); 
       } 
      } 
      else 
      { 

       $this->index(); 
      } 
     } 
    } 
+0

當用戶登錄我的應用程序並從他註銷時。當他輸入URL進行註冊時,不必在他的個人資料中。我想從他的個人資料中註銷並顯示註冊表單。 :) –

回答

1

嘗試$this->session->unset_userdata('is_logged_in');,無需破壞整個會話。我會在這種情況下做其他事情,我只是重定向到主頁面並設置flashdata消息。

也有可能是與裝載庫中的問題。嘗試在application/config中將會話庫添加到autoload.php。

+0

哦,這是工作,謝謝 –

1

public function register()裏面,如果你重定向到另一個頁面redirect('auth/logout');,腳本的其餘部分將永遠不會得到執行。 $this->session->sess_destroy();應該足以斷開用戶連接。