Página 1 de 1

Regresar a dirección despues de login

NotaPublicado: 2009-07-30 09:55 @455
por bAsTeR
Hola, aquí estoy de nuevo con un nuevo cuestionamiento, en el que busco de nuevo su ayuda.

Resulta ser que tengo sistema web que administra una página, es decir, un CMS, y pues en la página principal tengo una sección donde se registran usuarios queriendo ser parte del equipo, total, al registrarse un usuario, mi aplicación envía un correo al administrador con la dirección a donde se tiene que ingresar para activar ese usuario.

El problema está en que si no estás logeado, te manda a la pantalla de inicio de sesión, y cuando inicias sesión te redirecciona al inicio del administrador, en vez de a la sección que quería entrar en un principio.

¿Cómo puedo hacer para implementar eso de manera que no tenga que modificar tanto mi código? ¿cómo lo harían ustedes?

Gracias de antemano, Salu2

Re: Regresar a dirección despues de login

NotaPublicado: 2009-07-30 11:00 @500
por explorer
Muy sencillo: el procedimiento de login lo que tiene que hacer es devolver una redirección (Location:) a la URL indicada en la variable HTTP_REFERER que recibe de la página que provocó el fallo de autenticación.

Es decir: la página de login que aparece ante el usuario puede ser creada mediante un cgi, que recibe en el HTTP_REFERER la dirección que ha usado el usuario para entrar cuando no estaba autenticado. Ese valor lo puedes esconder en uno de los campos ocultos del formulario de login o en las variables de estado en el lado del servidor si usas el método de sesiones.

Cuando el usuario responde al formulario de login, éste comprueba quién es y si le permite paso, hace un Location: hacia el valor que indique el campo oculto.

Esto es incluso compatible con el caso de que el usuario entre en la primera página del sistema.

Seguro que hay otras formas. Por ejemplo, pasar la información del HTTP_REFERER en el propio URL, como si fuera una petición GET.

Esto se puede ver en las páginas de Wikipedia. Si entras en una página especial, te redirige a la página de 'identificarse', con una dirección como esta:

http://es.wikipedia.org/w/index.php?tit ... eguimiento

Intenté entrar en la página "Especial:Seguimiento" pero no me dejó. Allí aparece un enlace a la página a la página "Especial:Entrar" para hacer el login y, además, en el mismo URL, queda registrado el dónde tiene que volver cuando me autentique (el valor del parámetro returnto).