Я создаю крошечную структуру MVC для обучения.Ошибка обработки ошибок URL-адреса MVC
У меня есть файл и класс под названием load, который находится в папке с моей моделью. Он считывает запрошенное имя файла и проверяет, находится ли файл в папке views и возвращает правильный файл. Проблема, с которой я сталкиваюсь, заключается в том, что я пытаюсь обработать неправильные URL-адреса, чтобы, если запрашиваемый файл/URL не возбуждает вас, вы направляетесь на страницу index.php в папке представлений ...
У меня есть инструкция if внутри функции, которая проверяет, существует ли файл, и я думал, что могу просто написать инструкцию else, требующую файла index.php, если файл не найден ... Но это не работает. Все, что я получаю, это белая пустая страница, когда я печатаю на несуществующей странице, даже если я попытаюсь что-то повторить в заявлении else ...
Кто-нибудь знает, чего не хватает или что я делаю неправильно?
UPDATE: Добавлено mainController класс
Это то, что класс нагрузки дыра выглядит следующим образом:
<?php
/* model/load.php
*/
class load
{
/* This function takes parameter
* $file_name and match with file in views.
*/
function view($file_name, $data = null)
{
if (is_readable('views/' . $file_name)) {
if (is_array($data)) {
extract($data);
}
require 'views/' . $file_name;
} else {
//This is where I thought I could require the index.php file...
}
}
}
И в моей папке контроллера У меня есть класс mainController отправки файлов в файл загрузки , Это то, что класс mainController выглядит следующим образом:
<?php
/* controller/main.php
*
*/
class mainController
{
public $load;
public $urlValues;
public function __construct()
{
$url = parse_url($_SERVER['REQUEST_URI']);
$url = explode('/', trim($url['path'], '/'));
$this->urlValues = array('controller' => $url[1]);
//Index page
if ($this->urlValues['controller'] == "index.php") {
$key = array("key" => "");
$this->load = new load();
$this->load->view('index.php', $key);
}
//Register page
if ($this->urlValues['controller'] == "register.php") {
$this->load = new load();
$this->load->view('register.php');
}
//Home page
if ($this->urlValues['controller'] == "home.php") {
$this->load = new load();
$this->load->view('home.php');
}
}
}
Пустая белая страница обычно означает, что вы не включили отчет об ошибках (или по крайней мере не отображали их), и что-то пошло не так. Включить отчет об ошибках. 'ini_set ('display_errors', true); error_reporting (-1); ' – naththedeveloper
Привет! Спасибо за ваш комментарий! Раньше у меня не было проблем с обработкой ошибок. Белая пустая страница показывает только, когда я запрашиваю страницу, которая не существует ... Я попытался вставить код ошибки в свой файл начальной загрузки/индекса, но он все еще является пустой страницей ... @FDL – Lisa
Если вы все еще получаете белый экран журнала ошибок может быть полезен. В linux это обычно находится в папке/var/log или на mac в папке вашего дистрибутива LAMP. –