3
respostas

http_response_code(404); não funciona

Ele não da essa pagina de 404 dos navegadores, e também não mostrar erro mesmo eu tentado fazer ele mostrar um erro colocando uma variável inexistente no meu programa, só no meu terminal que ele dar error. Eu também tive a ideia de colocar um print_r(http_response_code(404)); e ele retornou 200.

codigo index:

<?php

use Alura\Cursos\Controller\requisicaoControladora;

require_once __DIR__. '/../vendor/autoload.php';

$way = $_SERVER['PATH_INFO'];
$routes = require __DIR__.'/../config/routes.php';

if (!array_key_exists($way, $routes)) {
    http_response_code(404);
    exit();
}

$controllerClass = $routes[$way];

/** @var requisicaoControladora $controller */
$controller = new $controllerClass();
$controller->processRequest();

codigo do routes:

<?php

use Alura\Cursos\Controller\InserirCursos;
use Alura\Cursos\Controller\ListarCursos;
use Alura\Cursos\Controller\Percistencia;

return [
    '/listar-cursos' => ListarCursos::class,
    '/inserir-cursos' => InserirCursos::class,
    '/salvar-curso' => Percistencia::class
];
3 respostas

Miguel, não entendi bem seu problema. Qual URL você está acessando e exatamente qual a saída do programa?

se eu acessar uma url inexistente não da nada a tela fica toda branca pq o http_response_code(404); para uri inexistente não funciona entendeu ??

ex:

localhost:8080/não-existe

o resultado é tela branca pq o http_response_code(404); não funcionou mas ele entrou no if do programa.

outro ex:

localhost:8080/existe

mostra a pagina normalmente

obs: então o problema é que não esta funcionando o http_response_code(404); ele não esta dando o error 404 igual o seu video.

Olá, Miguel.

No Chrome, abra as ferramentas de desenvolvedores, vá até a aba Network e depois atualize o página. Confirma pra mim se o status realmente está aparecendo como 200 lá.