[英]How can i Redirect to error page using PHP?
新手,如果从 url 中找不到 controller,我正在尝试重定向到错误页面。 我还在学习,距离 go 还有很长的路要走,我真的迷路了。
code
<?php
Class App{
protected $controller = 'home';
protected $method = 'index';
protected $params = [];
public function __construct(){
$url = $this->parseUrl();
if(file_exists('assets/includes/controllers/'.$url[0].'.php')){
$this->controller = $url[0];
unset($url[0]);
}
require_once('assets/includes/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]);
}
}
$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));
}
}
}
?>
如果 controller 不存在,我尝试过类似的操作,但我无法让它正常工作,但我知道我做错了,所以我希望有人能指出我正确的方向。
在这种情况下,您使用如下重定向方法
if(file_exists('assets/includes/controllers/'.$url[0].'.php')){
$this->controller = $url[0];
unset($url[0]);
}
else
{
header("Location: error.php");
exit;
}
这将对您有所帮助。
这个答案将帮助您PHP,MVC,404 - 如何重定向到 404?
我会反过来做 - 如果没有找到 controller,请导入 static 错误页面。
if(file_exists('assets/includes/controllers/'.$url[0].'.php')){
$this->controller = $url[0];
unset($url[0]);
}
else{
include 'error_page.php';
die();
}
注意:error_page 必须是生成error_page output 的脚本(例如,error_page 的body-tag 中的所有内容)。 解决方案可行,但必须以正确的方式实施;)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.