>

Fórum

Fórum da RL System, voltado para analistas, programadores etc. Tudo sobre linguagem de programação e desenvolvimento Full Stack: Banco de Dados, Android, C#, Java, .NET, PHP, Node, Javascript, TypeScript, Front, HTML e muito mais.



Action para página de erro 404 caso controller não encontrado - PHP com MVC


Como faço para criar uma página personalizada de erro 404? Pois caso o usuário digite algo que não exista ele mostre a página. Creio que devo criar um controller pra isto tb, mas a dúvida está no index.php como verificar se realmente o controller não existe? Sendo que já verifiquei se ele está vazio e se estiver coloco a rota padrão. Segue abaixo o código, e aceito sugestão de melhorias tb, pois o que fiz foi praticamente copiar o código anterior e apenas acrescentar !isset e atribuir o controller "home" ao $_GET['controller'].

2. Normalmente quando o controller não existe aparece estas mensagens abaixo, desejo tratar isto com uma página 404...

"Warning: include(Controller/produtoController.php): failed to open stream: No such file or directory in C:\xampp\htdocs\PIM\index.php on line 7

Warning: include(): Failed opening 'Controller/produtoController.php' for inclusion (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\PIM\index.php on line 7

Fatal error: Class 'produtoController' not found in C:\xampp\htdocs\PIM\index.php(11) : eval()'d code on line 1"



if(isset($_GET["Controller"]))
{

include "Controller/".$_GET["Controller"]."Controller.php";

$class = $_GET["Controller"]."Controller";

eval("\$Controller = new $class();");


if(isset($_GET["Action"]))
{
eval("\$Controller->\$_GET['Action']();");
}
}


if(!isset($_GET["Controller"]))
{

$_GET["Controller"]="Home";

include "Controller/".$_GET["Controller"]."Controller.php";

$class = $_GET["Controller"]."Controller";

eval("\$Controller = new $class();");


if(!isset($_GET["Action"]))
{
$_GET["Action"]="Index";

eval("\$Controller->\$_GET['Action']();");
}

}
Warning: include(Controller/produtoController.php): failed to open stream: No such file or directory in C:\xampp\htdocs\PIM\index.php on line 7

Warning: include(): Failed opening 'Controller/produtoController.php' for inclusion (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\PIM\index.php on line 7

Fatal error: Class 'produtoController' not found in C:\xampp\htdocs\PIM\index.php(11) : eval()'d code on line 1



1 Resposta


Problema resolvido!