2012-01-20 36 views
18

我想在用戶授權時將用戶引導到我的主頁面。我做我的login_check控制器用戶檢查和添加$this->load->view('main');該頁面可以是負載,但在主要頁面的網站地址仍然顯示codeigniter重定向到不同的控制器

http://myprojectname/login_check

,但我想讓它顯示

http://myprojectname/main

我必須創建一個新的'主'控制器並加載視圖嗎?這對我來說聽起來多餘。這是我的代碼。我login_check.php

private function _user_check() 
{ 
    $this->load->model('user_query'); //load my model 
    $result=$this->user_query->query($this->input->post('username'),$this->input->post('password'))    

    if($result) //the user is in DB 
    { 
     $data['view']='main'; 
     $this->load->view('include/template', $data); 
     //the address bar shows http://myproject/login_check in main page  

    }else{ //the user is not in DB 

     $data['view']='login'; 
     $this->load->view('include/template', $data); 
    } 

} 

回答

53

首先的

一部分,你正在做檢查的一個非常貧困的工作,如果用戶通過驗證(只是路過的用戶名/傳遞給模型不是最好的,應該處理/檢查它在發送到模型之前)。

您可以通過包括助手 'URL' 易重定向和簡單的使用:

redirect('/controller/method'); 

或在真實世界的例子:

redirect('/main'); 

Reference Link

+1

上的方法。當你說要發送的型號,平均form_validation之前「過程/檢查」?如果是這樣,我已經在代碼的其他部分做了它。我需要做mysql_real_escape_string嗎?我認爲Codeigniter已經應用了它,因爲我使用$ this-> input-> post。 Thans。 – FlyingCat

+1

不,你好,那麼如果你使用** Active Queries **,CI會照顧所有這些,但是如果你自己編寫SQL查詢,你需要使用'$ this-> db-> escape()'來逃避你的說'用戶名'或'密碼'以防萬一(從不傷害額外準備) – Jakub

+0

好的。謝謝您的幫助。 :D – FlyingCat

0

還有另一種方式但類似於重定向(),如果你的控制器是其他控制器

restserver

您可以使用REST客戶端的另一個控制器來調用服務端控制器

restclient

相關問題