Comunidad de diseño web y desarrollo en internet online

Generar Error 404 desde PHP

Citar            
MensajeEscrito el 27 Ago 2008 02:22 pm
Muy buenas: tengo el siguiente código en mi archivo .htaccess:

Código :

ErrorDocument 404 /404.php


Donde la ruta del archivo es perfectamente correcta, y en un archivo PHP el siguiente código:

Código PHP :

<?
$var = 1;
if ($var) {
   header("HTTP/1.0 404 Not Found", true, 404);
}
else
{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Prueba</title>
</head>

<body>La página ha sido encontrada
</body>
</html>
<?
}
?>


El caso es que cuando accedo a una página que no existe, obtengo el error 404 como debe ser y se muestra la página /404.php, pero si la condición del archivo PHP se cumple, se mandan las cabeceras adecuadas (comprobado) pero no se muestra la página de error 404. ¿Por qué sucede esto? He buscado por todas partes, pero no he encontrado nada. ¿Alguna ayuda? Hasta ahora simplemente redireccionaba directamente desde PHP a 404.php, pero es una chapuza: hasta el código de estado era 200.

Por Juanlu_001

Claber

690 de clabLevel

6 tutoriales

 

firefox
Citar            
MensajeEscrito el 27 Ago 2008 02:29 pm
Bueno... el foro hace cosas raras con el código ¬¬. A ver si soy capaz:

Código PHP :

<?
$var = 1;
if ($var) {
   header("HTTP/1.0 404 Not Found", true, 404);
}
else
{
?>

Código HTML :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Prueba</title>
</head>

<body>La página ha sido encontrada
</body>
</html>

Código PHP :

<?
}
?>

Por Juanlu_001

Claber

690 de clabLevel

6 tutoriales

 

firefox
Citar            
MensajeEscrito el 29 Ago 2008 04:06 am
prueba asi

Código :

<? 
if (isset($var)) {    
header("HTTP/1.0 404 Not Found", true, 404);
 } else {
 ?>


te deberia funcar asi perfectamente el isset confirma si esa variable esta definida o no ahora si $var es proveniente de un GET tambien te funcionara el reconoce la variable cuando le pasas un valor ahora tambien pudes hacer empty q verifica si esa variable no contiene nada asi si te podria funcar este codigo q muestras espero que te sea de gran utilidad esta respuesta

Por talcual

686 de clabLevel



 

Colombia

msie7
Citar            
MensajeEscrito el 29 Ago 2008 11:01 am
mmmmph el resultado es el mismo, el problema no viene al detectar la variable... gracias por intentarlo de todas formas

Por Juanlu_001

Claber

690 de clabLevel

6 tutoriales

 

firefox
Citar            
MensajeEscrito el 31 Ago 2008 07:21 pm
prueba no lo colocando contenido php sino la extencion .shtnl creeo q es la q maneja el server de forma interna de todos modos has el intento jajaj :-D

Por talcual

686 de clabLevel



 

Colombia

msie

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.