2012-01-20 13 views
18

Sto cercando di indirizzare l'utente alla mia pagina principale quando l'utente è autorizzato. Sto facendo il check-utente in mio controller login_check e aggiungi $this->load->view('main'); La pagina può essere carico, ma l'indirizzo del sito nella pagina principale mostrano ancoracodeigniter reindirizza al controller diverso

http://myprojectname/login_check

ma voglio per mostrare

http://myprojectname/main.

Devo creare un nuovo controller "principale" e caricare la vista? Mi sembra ridondante. Ecco il mio codice.

parte della mia 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); 
    } 

} 

risposta

53

Prima di tutto, si sta facendo un pessimo lavoro di verificare se l'utente è autenticato (solo di passaggio username/passare alla modella non è migliore, dovrebbe/check prima di inviarlo al modello).

Si può fare reindirizza facilmente inserendo la 'URL' aiuto e utilizzare semplicemente:

redirect('/controller/method'); 

o in un vero e proprio esempio del mondo:

redirect('/main'); 

Reference Link

+1

Quando hai detto "processo/check" prima di inviare al modello, il form_validation media? Se è così, l'ho già fatto sull'altra parte del codice. Devo fare mysql_real_escape_string? Pensavo che Codeigniter lo applicasse già da quando sto usando $ this-> input-> post. Thans. – FlyingCat

+1

No stai bene allora, CI si prende cura di tutto questo se usi ** Query attive **, tuttavia se scrivi tu stesso la query SQL devi usare '$ this-> db-> escape()' per sfuggire al tuo dì 'username' o 'password' nel caso in cui (non fa mai male essere preparati extra) – Jakub

+0

ok. Grazie per l'aiuto. : D – FlyingCat

0

c'è un altro modo ma simile a redirect(), se il controller è Rest controller

restserver

È possibile utilizzare client di riposo in un altro controller per richiamare i metodi del controller server di

restclient

Problemi correlati