2009-08-25 11 views
6

Ejemplo:Redirigir usuario a la URL originalmente deseada después de Entrar

  1. usuario no se registra en
  2. usuario tiene artículos en su carrito de compras
  3. va
  4. usuario a/checkout
  5. usuario es redirigido a la/página de inicio de sesión
  6. El usuario inicia sesión correctamente y debe ser redirigido a la página/checkout

¿Cómo sabe la acción de inicio de sesión redirigir al usuario al proceso de pago en este caso? Quiero que esto funcione en muchas situaciones diferentes no solo/checkout.

+0

Similar: http://stackoverflow.com/questions/1249274/redirect-to-previous-page-in-zend-framework – gnarf

+0

Hola, ¿has encontrado una buena solución para esto? – Solace

Respuesta

5

¿Sería suficiente un parámetro de cadena de consulta en la página de inicio de sesión?

por ejemplo: www.example.com/Login.php?returnUrl=[someUrl]

Después de la autenticación es exitosa, el usuario es redireccionado a la URL especificada en la cadena de consulta.

...

Editar: Esta es una solución general, que muchos no sea una opción dado el marco que está utilizando. Pero algo a considerar.

+0

Gracias por la solución, pero preferiría que no fuera parte de la url como una cadena de consulta, solo por mantenimiento y limpieza ... –

+3

Si no quiere que sea parte de la url, entonces necesita almacenarlo en la sesión. POST también sería posible, pero no lo recomendaría. –

+0

sí, almacenarlo en la sesión/publicación sería un enfoque alternativo que también funcionaría. – Amir

0

Publiqué un poco del código de mi clase "My_Form" que tiene seguimiento de "referencia" incorporado en el formulario en SO1249274. Las otras soluciones publicadas allí también pueden ayudarlo a resolver su problema.

+1

Desafortunadamente encuentro que HTTP_REFERER siempre está en blanco para mí? –

+0

Nunca he tenido ningún problema confiando en HTTP_REFERER, tal vez hay un problema de configuración del servidor? – gnarf

0

He hecho que redirigamos a/login con un parámetro simple de 'comeback'. El inicio de sesión ve el parámetro y verifica el referer para ver que es una de nuestras páginas. Si es así, redirige a ese referer. Funciona muy bien De lo contrario, uno puede poner el 'destino' de la redirección-después-inicio de sesión en un parámetro diferente (ya sea una cadena de consulta o sesión o mensaje flash)

+0

Me gusta la idea de usar mensajes flash, ¡gracias! –

0

Utilizo la variable de sesión para mantener la URL solicitada. Cuando inicia sesión correctamente, compruebo si esta variable de sesión está configurada. Si está configurado, hago una redirección a la URL solicitada.

Cuestiones relacionadas