2012-01-20 16 views
18

Próbuję skierować użytkownika do mojej strony głównej, gdy użytkownik jest uprawniony. Robię kontrolę użytkownika w moim kontroler login_check i dodać $this->load->view('main'); strona może być obciążenie, ale adres witryny na stronie głównej nadal wykazująkodowanie przekierowania do innego kontrolera

http://myprojectname/login_check

ale chcę pokazać

http://myprojectname/main.

Czy muszę utworzyć nowy kontroler "główny" i załadować widok? Brzmi to dla mnie zbyt mało. Oto mój kod.

częścią mojego 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); 
    } 

} 

Odpowiedz

53

Przede wszystkim, robisz bardzo słabe zadanie sprawdzenie, czy użytkownik jest uwierzytelniony (tylko przejazdem nazwa użytkownika/hasło do modelu nie jest najlepszy, należy przetworzyć/check to przed wysłaniem do modelu).

Można dokonać przekierowania łatwo o tym pomocnika 'URL' i po prostu użyć:

redirect('/controller/method'); 

lub w rzeczywistym przykładzie światowej:

redirect('/main'); 

Reference Link

+1

Kiedy powiedział: „Proces/sprawdzić” przed wysłaniem do modelowania, swoją średnią form_validation? Jeśli tak, zrobiłem to już na mojej drugiej części kodu. Czy muszę wykonać mysql_real_escape_string? Myślałem, że Codeigniter już to stosuje, odkąd używam $ this-> input-> post. Następnie. – FlyingCat

+1

Nie jesteś w porządku, CI dba o to wszystko, jeśli używasz ** Aktywnych zapytań **, jednak jeśli sam napiszesz zapytanie SQL, musisz użyć '$ this-> db-> escape()', aby uciec powiedz "nazwa użytkownika" lub "hasło" na wszelki wypadek (nigdy nie boli, aby być bardziej przygotowanym). – Jakub

+0

ok. Dzięki za pomoc. : D – FlyingCat

0

Jest też inny sposób ale podobny do przekierowania(), jeśli kontrolerem jest Rest kontroler

restserver

Można używać klienta odpoczynek w innym sterownikiem do wywołania metody na kontrolerze serwerze

restclient

Powiązane problemy