Foros del Web » Programando para Internet » PHP »

¿Cómo devolver un header 404 si una variable está vacia?

Estas en el tema de ¿Cómo devolver un header 404 si una variable está vacia? en el foro de PHP en Foros del Web. Hola. Alguien podría por favor ayudarme a enviar una pagina a la página de error 404 (incluida la cabecera), si una de las variables que ...
  #1 (permalink)  
Antiguo 25/10/2010, 16:14
Avatar de SI TAN SOLO TUVIERA  
Fecha de Ingreso: marzo-2006
Ubicación: Aburrilandia, US
Mensajes: 652
Antigüedad: 18 años, 8 meses
Puntos: 3
Exclamación ¿Cómo devolver un header 404 si una variable está vacia?

Hola.

Alguien podría por favor ayudarme a enviar una pagina a la página de error 404 (incluida la cabecera), si una de las variables que carga a través de $_GET[ ] está vacía.

Estaba ensayando algo como ésto, al principio de la página:

Código PHP:
if($_GET["id"]=="") die(header("location: 404.php")); 
Pero no funcionó.

Agradezco cualquier ayuda.
__________________
¿Dónde encontrar carros baratos en USA? En Autopten.
  #2 (permalink)  
Antiguo 25/10/2010, 16:19
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: ¿Cómo devolver un header 404 si una variable está vacia?

pudieras hacerlo con el isset para verificar, imagino que tienes la pagina 404.php creada
Código PHP:
Ver original
  1. if(!isset($_GET['id']){
  2.    header("location: 404.php");
  3. }
  4. else{
  5. /*lo que hagas si existe*/
  6. }
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 25/10/2010, 16:33
Avatar de SI TAN SOLO TUVIERA  
Fecha de Ingreso: marzo-2006
Ubicación: Aburrilandia, US
Mensajes: 652
Antigüedad: 18 años, 8 meses
Puntos: 3
Respuesta: ¿Cómo devolver un header 404 si una variable está vacia?

Gracias Carlos por tu ayuda.

Volví a tratar con el !isset como dices y no se, no entiendo por qué no funciona. Si cargo un id # que, incluso no existe en la Base de Datos, la página carga completa, e incompleta obviamente porque lo hace sin el resto de la información que no existe.

Tienes alguna idea que podría ser? o si hay alguna otra manera?

Gracias
__________________
¿Dónde encontrar carros baratos en USA? En Autopten.
  #4 (permalink)  
Antiguo 25/10/2010, 16:35
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: ¿Cómo devolver un header 404 si una variable está vacia?

bueno nose si tenga que ver pero coloca un exit luego del header algo asi
Código PHP:
Ver original
  1. if(!isset($_GET['id']){
  2.    header("location: 404.php");
  3.    exit;
  4. }
  5. else{
  6. /*lo que hagas si existe*/
  7. }
a ver si te saca de la pagina saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #5 (permalink)  
Antiguo 25/10/2010, 16:48
Avatar de SI TAN SOLO TUVIERA  
Fecha de Ingreso: marzo-2006
Ubicación: Aburrilandia, US
Mensajes: 652
Antigüedad: 18 años, 8 meses
Puntos: 3
Respuesta: ¿Cómo devolver un header 404 si una variable está vacia?

Nada Carlos... qué raro. Estoy probando el código en esta página... la cual tengo así:

Código PHP:
Ver original
  1. <?php session_start();
  2.       if(!isset($_GET['dealer_id'])){
  3.          header("location: 404.php");
  4.          exit;
  5.       }
  6.       else {.... }

En la url que te di, carga la celda No. 172 la cual ni siquiera existe... no tengo idea por qué no funciona.
__________________
¿Dónde encontrar carros baratos en USA? En Autopten.
  #6 (permalink)  
Antiguo 25/10/2010, 16:53
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: ¿Cómo devolver un header 404 si una variable está vacia?

pero si estas enviando una id al esta id existir te no te va entrar en el !isset
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #7 (permalink)  
Antiguo 25/10/2010, 17:02
Avatar de SI TAN SOLO TUVIERA  
Fecha de Ingreso: marzo-2006
Ubicación: Aburrilandia, US
Mensajes: 652
Antigüedad: 18 años, 8 meses
Puntos: 3
Respuesta: ¿Cómo devolver un header 404 si una variable está vacia?

Pero el número de id que estoy solicitando en este caso, el "172" no existe en la base de datos. No hay registro, es NULL mejor dicho. Cómo podría en ese caso enviar a mi página 404.php ?
__________________
¿Dónde encontrar carros baratos en USA? En Autopten.
  #8 (permalink)  
Antiguo 25/10/2010, 17:08
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: ¿Cómo devolver un header 404 si una variable está vacia?

esa es otra cosa es otro condicional ese lo debes de hacer con el resultado de la consulta si usas mysql puedes usar un mysql_num_rows para verificar la cantidad de resultados que te trae tu consulta si te trae datos muestras lo que desees sino te trae datos haces el header, xq la verdad lo que estas haciendo hasta ahorita es verificar que la variable id te llegue bien pero no la estas comparando con tu consulta
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #9 (permalink)  
Antiguo 25/10/2010, 17:16
Avatar de SI TAN SOLO TUVIERA  
Fecha de Ingreso: marzo-2006
Ubicación: Aburrilandia, US
Mensajes: 652
Antigüedad: 18 años, 8 meses
Puntos: 3
Respuesta: ¿Cómo devolver un header 404 si una variable está vacia?

Gracias Carlos por tu ayuda, hacer esto entonces como que va un poquito más allá. Voy a quemarle neurona a ver como me va. Te agradezco de todos modos!
__________________
¿Dónde encontrar carros baratos en USA? En Autopten.
  #10 (permalink)  
Antiguo 25/10/2010, 17:17
 
Fecha de Ingreso: octubre-2009
Mensajes: 6
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: ¿Cómo devolver un header 404 si una variable está vacia?

Como bien dice carlos_belisario, lo que estas haciendo es comprobar si existe o no la variable, de hecho si borras la variable de la url te envia el 404.
Ahora para comprobar si el id existe tienes que verificarr que la consulta sql te devuelva resultados(mysql_num_rows), en caso de que no devuelva resultados entonces no existe el ID y debes enviar al 404.
  #11 (permalink)  
Antiguo 25/10/2010, 17:19
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: ¿Cómo devolver un header 404 si una variable está vacia?

te voy a dar un indicio haces tu consulta como lo haces siempre
Código PHP:
Ver original
  1. $query=mysql_query("/*tu consulta*/") or die (mysql_error());
  2. if(mysql_num_rows($query)){
  3.   /*lo que hagas si hay coincidencia con tu id*/
  4. }
  5. else{//sino hay resultados
  6.   header("location:404.php");
  7. }
saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #12 (permalink)  
Antiguo 25/10/2010, 17:20
Avatar de SI TAN SOLO TUVIERA  
Fecha de Ingreso: marzo-2006
Ubicación: Aburrilandia, US
Mensajes: 652
Antigüedad: 18 años, 8 meses
Puntos: 3
Respuesta: ¿Cómo devolver un header 404 si una variable está vacia?

Gracias Jimmy. Entiendo bien la idea, lo que no estoy muy seguro es del cómo, técnicamente hablando.

Estaba pensando en algo como:

$rs = @mysql_query($sql) or trigger_error('Error on executing '.$sql, E_USER_ERROR);

if(mysql_num_rows($rs)==0) header("location: 404.php");

__________________
¿Dónde encontrar carros baratos en USA? En Autopten.
  #13 (permalink)  
Antiguo 25/10/2010, 17:22
Avatar de SI TAN SOLO TUVIERA  
Fecha de Ingreso: marzo-2006
Ubicación: Aburrilandia, US
Mensajes: 652
Antigüedad: 18 años, 8 meses
Puntos: 3
Respuesta: ¿Cómo devolver un header 404 si una variable está vacia?

Cita:
Iniciado por carlos_belisario Ver Mensaje
te voy a dar un indicio haces tu consulta como lo haces siempre
Código PHP:
Ver original
  1. $query=mysql_query("/*tu consulta*/") or die (mysql_error());
  2. if(mysql_num_rows($query)){
  3.   /*lo que hagas si hay coincidencia con tu id*/
  4. }
  5. else{//sino hay resultados
  6.   header("location:404.php");
  7. }
saludos
Gracias Carlos por el esquema, creo que el resto ya depende de mí.

Les agradezco la ayuda.
__________________
¿Dónde encontrar carros baratos en USA? En Autopten.
  #14 (permalink)  
Antiguo 25/10/2010, 17:23
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: ¿Cómo devolver un header 404 si una variable está vacia?

bueno de la manera que lo colocaste en el post anterios tambie te serviria saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #15 (permalink)  
Antiguo 25/10/2010, 17:56
Avatar de SI TAN SOLO TUVIERA  
Fecha de Ingreso: marzo-2006
Ubicación: Aburrilandia, US
Mensajes: 652
Antigüedad: 18 años, 8 meses
Puntos: 3
Respuesta: ¿Cómo devolver un header 404 si una variable está vacia?

Ya di con la solución. Seguro para cualquiera con una pocas bases de MySql no le hubiera tomado más de 3 minutos en resolverla Yo pensé que me iba a llevar toda la noche.

Conclusión por si alguien le sirve:

Código PHP:
Ver original
  1. $rs = @mysql_query($sql) or trigger_error('Error on executing '.$sql, E_USER_ERROR);
  2. if(mysql_num_rows($rs)==0)
  3.     {
  4.      header("location:404.php");
  5.     }
__________________
¿Dónde encontrar carros baratos en USA? En Autopten.
  #16 (permalink)  
Antiguo 25/10/2010, 18:34
Avatar de SI TAN SOLO TUVIERA  
Fecha de Ingreso: marzo-2006
Ubicación: Aburrilandia, US
Mensajes: 652
Antigüedad: 18 años, 8 meses
Puntos: 3
Respuesta: ¿Cómo devolver un header 404 si una variable está vacia?

Carlos, te puedo hacer una última preguntica?

Tu crees que con ese solo hecho de enviar con PHP de esa forma ~ header("location:404.php"); ~ a la página personalizada 404, es suficiente para que los buscadores tengan en cuenta el "404 Status Code"?

O sabes si también es necesario aplicar el siguiente código al comienzo de mi página 404 personalizada:

Código PHP:
Ver original
  1. <?php header("HTTP/1.1 404 Not Found");?>

Nuevamente te agradezco enorme la ayuda!
__________________
¿Dónde encontrar carros baratos en USA? En Autopten.
  #17 (permalink)  
Antiguo 25/10/2010, 18:40
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: ¿Cómo devolver un header 404 si una variable está vacia?

fijate en este articulo eso lo estableces con .htacces hasta donde tengo entendido pero veamos si alguien que conosca mas del tema te puede ayudar mejor saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #18 (permalink)  
Antiguo 25/10/2010, 18:43
Avatar de SI TAN SOLO TUVIERA  
Fecha de Ingreso: marzo-2006
Ubicación: Aburrilandia, US
Mensajes: 652
Antigüedad: 18 años, 8 meses
Puntos: 3
Respuesta: ¿Cómo devolver un header 404 si una variable está vacia?

OKi, gracias de todas maneras
__________________
¿Dónde encontrar carros baratos en USA? En Autopten.

Etiquetas: 404, header, variables, vacias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:34.