Foros del Web » Programando para Internet » PHP »

Error de datos por GET

Estas en el tema de Error de datos por GET en el foro de PHP en Foros del Web. No se si estará bien el titulo, bueno les explico mi problema, como sabrán muchos cuando uno tiene un enlace tipo <a hre="pagina.php?id=x">Ir</a> en donde ...
  #1 (permalink)  
Antiguo 11/10/2008, 01:02
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Error de datos por GET

No se si estará bien el titulo, bueno les explico mi problema, como sabrán muchos cuando uno tiene un enlace tipo <a hre="pagina.php?id=x">Ir</a> en donde X puede ser un valor de base de datos que recuperare, entonce hagamos cuenta que en mi base de datos tengo numeros x ... del 1 al 5 entonces en mi enlace puedo poner que id = a numeros del 1 al 5, ud. ya saben, entonces cuando tengo la pagina dos por decir algo en donde recupero este valor en la url me llega algo como....

http://server/pagina2.php?id=3

y bueno con GET yo puedo traer lo que vale 3, eso es sabido, mi pregunta es, si yo a la mala pongo id=4 me traera lo que vale 4 por que existe lo mismo valores del 1 al 5
pero si pongo 6 o pongo letras?
no hace nada y me descuadra la pagina segun el caso, entonce mi pregunta es como hacer que cuando el usuario a la "MALA" por url ponga un valor a id que no existe o que cambie toda la url digamos

http://server/pagina2.php?estonovale

me envie a una pagina de error o algo asi :/ no se como poder hacerlo, tengo muchos campos que pasan por la URL y me gustaria poner una pagina de error en esos casos saludos
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #2 (permalink)  
Antiguo 11/10/2008, 02:15
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 1 mes
Puntos: 52
Respuesta: Error de datos por GET

Pero creo que solo le cambiara a ese usuario que a las MALAS, te esta pasando datos erroneos por GET, Y no a los demas users, y si el problema es que esos datos pasados por GET, no es para mostrar algo en pantalla o sean para guardar en la bbdd codifica la informacion y protege las entradas a la BBDD para que no te hagan SQL INJECTION,
pero creo que el resto de users que esten navegando bien no les afectara lo que ese user a las MALAS HAGA solo se le descuadrara la pagina a el.
  #3 (permalink)  
Antiguo 11/10/2008, 08:11
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Error de datos por GET

Si tu id es siempre un número entero puedes usar el modificador (int) para evitar los demás caracteres (o en su defecto, la función intval())
Código php:
Ver original
  1. $id = (int)$_GET['id'];
  2. // ó
  3. $id = intval($_GET['id']);

Usa la función mysql_num_rows() después de ejecutar tu consulta para saber si ésta trajo o no algún resultado, y de acuerdo a eso muestras resultados o le indicas al usuario que llegó a una página incorrecta.

Buscar un poco no hace daño a nadie, eh?: numero de resultados+php+mysql

Saludos,
  #4 (permalink)  
Antiguo 11/10/2008, 15:26
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: Error de datos por GET

aps creo que consulte mal o sea en el caso de la id cuando claro es 6 envio que no hay datos :P el problema que tengo es que yo al paginar :) por ejemplo tengo pagina=3 que es la ultima si ponen pagina 4 ya me descuadra todo y no muestra nada como dice jaronu si se que la mayoria de los usuarios van a andar a bien pero solo preguntaba que si alguien me pone pagina=4 lo enviara a una pagina de error digo esto lo puedo controlar en el paginado :/ ????? por ej. el de jpinedo? saludos y gracias por las respuestas :D
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #5 (permalink)  
Antiguo 11/10/2008, 15:36
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 1 mes
Puntos: 67
Respuesta: Error de datos por GET

Bueno, creo que es algo simple, si tienes un rango para esa variable entonces verifica que esa variable esté en ese rango, sino está vas a la página de error. De este modo:

$id = $_GET["id"];

if !(($id > 0 && $id < 5)) header("location: error.html");
else {
// El código cuando el rango es correcto.

}

Espero que te sirva.
  #6 (permalink)  
Antiguo 11/10/2008, 17:34
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: Error de datos por GET

amdale estas en lo correcto, error failure X)

gracias :D
__________________
Gokuh Salvo al mundo. PUNTO!!!!
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 21:27.