Foros del Web » Programando para Internet » PHP »

$_SERVER['HTTP_REFERER'] vs window.history.go(-1)

Estas en el tema de $_SERVER['HTTP_REFERER'] vs window.history.go(-1) en el foro de PHP en Foros del Web. Hola a todos, tengo una duda existencial... si quisiera saber la pagina de la cual viene el usuario tenemos 2 vías una con php y ...
  #1 (permalink)  
Antiguo 11/08/2011, 06:21
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
$_SERVER['HTTP_REFERER'] vs window.history.go(-1)

Hola a todos, tengo una duda existencial...
si quisiera saber la pagina de la cual viene el usuario tenemos 2 vías
una con php y otra con javascript

en el servidor la puedo obtener mediante $_SERVER['HTTP_REFERER'], pero tengo entendido que hay navegadores que no envían esta cabecera.

sin embargo con js siempre tendremos acceso a esta información, porque accederíamos al objeto history del navegador, pero y si desactiva js ???

en fin, que usar ?

Nota: esto lo necesito para estar seguro que solo procese un formulario si el usuario viene de una pagina determinada..., a lo mejor existe otra forma y no tengo que usar las que comento arriba.
__________________
aconcaguaestudio.com
  #2 (permalink)  
Antiguo 11/08/2011, 06:28
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: $_SERVER['HTTP_REFERER'] vs window.history.go(-1)

Buenas, realmente ninguna de las opciones es buena. Tuve esta duda existencial justo hace dos semanas.

Las pegas son las siguientes:
- No te puedes fiar de JS, como tú bien dices, porque el usuario simplemente podría desactivarlo y te entraría al form cuando quisiera.
- El principal problema del REFERER es que esta variable únicamente se rellena si el usuario ha usado un link para llegar a la nueva página. Es decir, si el usuario teclea a mano la URL en su navegador y accede de esa forma, esta variable vendrá vacía.

La únca opción que a mí se me ocurrió en su día fue hacerlo por sesión. En todas las páginas que puedan acceder a la del formulario tendrás que almacenar en SESSION la URL de la propia página con HTTP_SELF (o simplemente una marca de valido) y en la página del form comprobar si esa variable viene o no rellena. Si viene rellena es que pasó antes por una de tus páginas, si no, es que viene de otro lado.

Es lo único que se me ocurrió, espero que te sirva. Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #3 (permalink)  
Antiguo 11/08/2011, 06:34
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: $_SERVER['HTTP_REFERER'] vs window.history.go(-1)

Se me acaba de ocurrir, puedes quedar hasta mejor si controlas por JS, pero añades esto a tu página:
Código HTML:
Ver original
  1. <noscrpit><meta HTTP-EQUIV="REFRESH" content="0; url=tu_pagina_sin_script.html"></noscript>

Si JS está desactivado te enviará a una página html en la que puedes poner cualquier mensaje. Por ejemplo, "Te creías que me ibas a engañar desactivando JavaScript, no? Pues la llevas clara".

Igual te sirve también, un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #4 (permalink)  
Antiguo 11/08/2011, 06:42
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: $_SERVER['HTTP_REFERER'] vs window.history.go(-1)

jaja me gusta el mensaje que le pusiste al hacker, jaja,
me gusta lo de las sessiones.

ahora, imagina que tengas un formulario con campos ocultos, pero que los usarás cuando hagas el submit para tus consultas, etc..

con firebug o el propio chrome, puedes editar el valor de esos campos antes de enviarlos y te pueden falsear mucho la aplicación....

ese problema cómo crees que se puede resolver ?
me parece que tmb se puede guardar en sessiones en lugar de campos ocultos, entonces para que quiero campos ocultos, si siempre tengo el problema de que lo pueden cambiar antes de enviar el formulario !
__________________
aconcaguaestudio.com
  #5 (permalink)  
Antiguo 11/08/2011, 06:44
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: $_SERVER['HTTP_REFERER'] vs window.history.go(-1)

Claro que puedes hacerlo por sesiones, de hecho es la mejor forma. Para pasar variables de unos scripts a otros la mejor solución es usar sesiones, que son muchos más seguras.

El tema de mandar campos hidden en formularios supongo que es por propia pereza, por no montarlo bien desde el principio, pero siempre se puede sustituir por sesiones. Por lo menos, no se me ocurre ninguna situación en que sea imposible. Igual a alguien se le ha dado, nunca se sabe.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #6 (permalink)  
Antiguo 11/08/2011, 06:53
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 3 meses
Puntos: 209
Respuesta: $_SERVER['HTTP_REFERER'] vs window.history.go(-1)

coincido contigo totalmente, es mejor hacerlo por sessiones.. muchas gracias.
__________________
aconcaguaestudio.com

Etiquetas: formulario, usuarios
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:31.