【问题标题】:redirecting URLs in PHP with MVC pattern使用 MVC 模式在 PHP 中重定向 URL
【发布时间】:2015-08-04 08:04:46
【问题描述】:

我按照 MVC 模式创建了一个网络应用程序。但是我在重定向 URL 时遇到了问题,格式是 www.something.com/controller/view/params。 然后,当 URL 指向 www.something.com/home 并且我注销时,状态将是 -> www.something.com/home/logout (家庭控制器 -> 注销方法)。 但是问题就在这里,现在如果我再次登录,URL 是: www.something.com/home/home/login。

我不知道我是否应该修改标题,“URL 构造函数”...

“url 构造函数”是:

class App{

protected $controller = 'home';
protected $method = 'index';
protected $params=[];


public function __construct(){



    $url= $this->parseUrl();


    //check if controller exists


    if(file_exists('../app/controllers/' . $url[0] . '.php'))
    {
            $this->controller = $url[0];
            unset($url[0]);
    }
    require_once '../app/controllers/'. $this->controller . '.php';

    $this->controller = new $this->controller;

    if(isset($url[1])){

        if(method_exists($this->controller,$url[1])){




                $this->method = $url[1];
                unset($url[1]);
        }
        else

            echo "that method doesnt exist";


    }

    $this->params =  $url ? array_values($url) : [];

    call_user_func_array([$this->controller,  $this->method],$this->params);
 }


public function parseUrl(){


    if(isset($_GET['url'])){


        return $url = explode('/',filter_var(rtrim($_GET['url'],'/'), FILTER_SANITIZE_URL));




    }




}

}

以及注销方法:

 public function logout() {



    session_start();


    $_SESSION = array();


    if (ini_get("session.use_cookies")) {
        $params = session_get_cookie_params();
        setcookie(session_name(), '', time() - 42000, $params["path"], $params["domain"], $params["secure"], $params["httponly"]
        );
    }


    session_destroy();


    $this->view('home/login');
}

}

如何正确重定向?我做错了什么?非常感谢。

【问题讨论】:

    标签: php url model-view-controller methods view


    【解决方案1】:

    尝试用这个替换你的注销函数的最后一行

    $this->view('../home/login');
    

    如果有帮助,请告诉我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-03
      • 1970-01-01
      • 2010-11-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-26
      • 1970-01-01
      相关资源
      最近更新 更多