Foros del Web » Programando para Internet » PHP »

Como soluciono esto?

Estas en el tema de Como soluciono esto? en el foro de PHP en Foros del Web. Buenas, pues me gustaria solucionar este problema, quiero que cuando entren en una URL que no sea correcta que devuelva un error 404, ya que ...
  #1 (permalink)  
Antiguo 16/07/2010, 10:48
 
Fecha de Ingreso: octubre-2006
Mensajes: 471
Antigüedad: 17 años, 6 meses
Puntos: 1
Como soluciono esto?

Buenas, pues me gustaria solucionar este problema, quiero que cuando entren en una URL que no sea correcta que devuelva un error 404, ya que cambie mis URL para que fueran amigables y aun se puede entrar desde las viejas o incluso desde urls que estan mal escritas, por ejemplo:

Código PHP:
http://www.miweb.com/id/49/ver-online/FALTAVARIABLEDELNOMBRE/  = URL NO CORRECTA
http://www.miweb.com/index.php?g=chadukliw&peliculas=12  = URL NO CORRECTA 
Código PHP:
http://www.miweb.com/id/2019/ver-online/Oceanos-2010/  = URL CORRECTA 
Aver si me podeis ayudar, saludos.
  #2 (permalink)  
Antiguo 16/07/2010, 10:58
Avatar de zaetoner  
Fecha de Ingreso: noviembre-2007
Ubicación: La ciudad de México
Mensajes: 607
Antigüedad: 16 años, 5 meses
Puntos: 30
Respuesta: Como soluciono esto?

header("HTTP/1.0 404 Not Found");‎
__________________
...
  #3 (permalink)  
Antiguo 16/07/2010, 11:01
 
Fecha de Ingreso: octubre-2006
Mensajes: 471
Antigüedad: 17 años, 6 meses
Puntos: 1
Respuesta: Como soluciono esto?

Cita:
Iniciado por zaetoner Ver Mensaje
header("HTTP/1.0 404 Not Found");‎
No pregunto como se hace el error 404, sino como hacer que salga cuando pongan una url que no es correcta.
  #4 (permalink)  
Antiguo 16/07/2010, 11:23
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Como soluciono esto?

eso no lo puedes conseguir con PHP, necesitas usar la directiva ErrorDocument del .htaccess

ahora, si deseas controlar esto desde PHP simplemente al momento de recibir la URL amigable necesitas hacer tus consultas la BD .... que el ID sea el correcto, y que el titulo, categoría, o lo que se antoje sea tal cual en la BD.... ¿como hacerlo??

pues como te digo.... debes hacer mas consultas a la BD para descartar que el enlace introducido sea invalido, también deberías hacer comparaciones de la misma URI con strings... para detectar que no vengan segmentos de mas, barras duplicadas, etc...

todo lo haces mediante lógica y sentido común, si te hace falta... este no es el foro correcto!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 25/07/2010, 07:04
 
Fecha de Ingreso: octubre-2006
Mensajes: 471
Antigüedad: 17 años, 6 meses
Puntos: 1
Respuesta: Como soluciono esto?

Cita:
Iniciado por pateketrueke Ver Mensaje
eso no lo puedes conseguir con PHP, necesitas usar la directiva ErrorDocument del .htaccess

ahora, si deseas controlar esto desde PHP simplemente al momento de recibir la URL amigable necesitas hacer tus consultas la BD .... que el ID sea el correcto, y que el titulo, categoría, o lo que se antoje sea tal cual en la BD.... ¿como hacerlo??

pues como te digo.... debes hacer mas consultas a la BD para descartar que el enlace introducido sea invalido, también deberías hacer comparaciones de la misma URI con strings... para detectar que no vengan segmentos de mas, barras duplicadas, etc...

todo lo haces mediante lógica y sentido común, si te hace falta... este no es el foro correcto!!
Bff llevo ya varios dias intentandolo y no lo consigo, dices que lo puedo conseguir con la directiva ErrorDocument? o con php? podrias darme algun link que me diera una idea o algo?
ya que creo que mi web no va bien del todo por ese problema.

Saludos.
  #6 (permalink)  
Antiguo 25/07/2010, 11:04
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Como soluciono esto?

Cita:
Iniciado por fumondj Ver Mensaje
Bff llevo ya varios dias intentandolo y no lo consigo, dices que lo puedo conseguir con la directiva ErrorDocument? o con php? podrias darme algun link que me diera una idea o algo?
ya que creo que mi web no va bien del todo por ese problema.

Saludos.
Google: htaccess ErrorDocument
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 25/07/2010, 12:52
 
Fecha de Ingreso: octubre-2006
Mensajes: 471
Antigüedad: 17 años, 6 meses
Puntos: 1
Respuesta: Como soluciono esto?

Cita:
Iniciado por pateketrueke Ver Mensaje
Pero eso sirve para personalizar las paginas de error, creo que no me has entendido bien.
  #8 (permalink)  
Antiguo 25/07/2010, 12:55
 
Fecha de Ingreso: octubre-2006
Mensajes: 471
Antigüedad: 17 años, 6 meses
Puntos: 1
Respuesta: Como soluciono esto?

Y por ejemplo si lo hago con PHP, que es lo que tengo que hacer si detecto mal la URL, por que el otro dia casi lo consigo pero el problema es que el error salia a los 5 o 10 seg de entrar a la URL, osea cuando se cargaba entera la URL..
  #9 (permalink)  
Antiguo 25/07/2010, 13:11
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Como soluciono esto?

Cita:
Iniciado por fumondj Ver Mensaje
Y por ejemplo si lo hago con PHP, que es lo que tengo que hacer si detecto mal la URL, por que el otro dia casi lo consigo pero el problema es que el error salia a los 5 o 10 seg de entrar a la URL, osea cuando se cargaba entera la URL..
es que la tecnica es esa, precisamente... y lo debes realizar antes de procesar la pagina, no tiene caso que lo hagas después....

index.php?title=sin+titulo&id=99
Código PHP:
$sql "SELECT * FROM temas WHERE title = 'sin titulo' AND id = 99"
así de simple, debes comprobar la URL... y al menos, su información... ;)

claro que después de comprobar y enviar las cabeceras correspondientes, indicando el error 404 por ejemplo, terminas la ejecución del script con exit, o die()...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 25/07/2010, 13:18
 
Fecha de Ingreso: octubre-2006
Mensajes: 471
Antigüedad: 17 años, 6 meses
Puntos: 1
Respuesta: Como soluciono esto?

Cita:
Iniciado por pateketrueke Ver Mensaje
es que la tecnica es esa, precisamente... y lo debes realizar antes de procesar la pagina, no tiene caso que lo hagas después....

index.php?title=sin+titulo&id=99
Código PHP:
$sql "SELECT * FROM temas WHERE title = 'sin titulo' AND id = 99"
así de simple, debes comprobar la URL... y al menos, su información... ;)

claro que después de comprobar y enviar las cabeceras correspondientes, indicando el error 404 por ejemplo, terminas la ejecución del script con exit, o die()...
Ya bueno mas o menos la tecnica la tengo clara, pero donde tengo que poner el codigo para que lo haga antes de procesar la pagina?

Etiquetas: Ninguno
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 17:34.