加载其他模板或重定向

时间:2017-08-11 11:37:08

标签: php templates http-redirect

在我的home控制器中,我要检查用户是否已登录。请参阅以下代码:

<?php
class Home extends Controller {
    private $db;
    private $session;

    public function __construct($db, $session) {
        $this->db = $db;
        $this->session = $session;
        parent::__construct($db, $session);
    }

    public function index() {
        $this->view('home/index', array('user' => $x ) );
    }

    public function login() {
        if( $this->session->loggedIn == true ) {
            $this->index();
            exit();
        }

        if( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
            $sessionToDb = $this->session->startSession( $_POST['user_email'], $_POST['user_password'] );
            if( $sessionToDb  === true ) {
                $this->index();
                exit();
            }
            else {
                $data['error'] = '<p>Fout tijdens inloggen.<br />'.$x.'</p>';
            }
        }
        $data['url'] = $_SERVER['REQUEST_URI'];
        $this->view('home/login', $data);
    }

    public function logout() {
        $this->session->endSession();
        $this->login();
        exit();
    }

}
?>

如果用户已经登录,他应该可以看到登录屏幕,所以我添加了这段代码:

public function login() {
    if( $this->session->loggedIn == true ) {
        $this->index();
        exit();
    }

哪个有效...但是网址保持不变:admin/home/login/,这可能令人困惑。

所以我可以重定向用户:

public function login() {
    if( $this->session->loggedIn == true ) {
        header('Location: /admin/home/index/';
        exit();
    }

同样适用于logout()功能。

哪种方法更好?

0 个答案:

没有答案