Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   Regresar a Pagina anterior (https://www.clubdelphi.com/foros/showthread.php?t=53935)

oracle 05-03-2008 03:40:50

Regresar a Pagina anterior
 
Hola amigos, imagino que mi pregunta es muy sencilla para la mayoria de ustedes, pero en fin, ando en esto hace algunas horas y no doy con el asunto:

El hecho es que necesito que cuando un usuario trate de entrar a cierta pagina restringida si no esta logeado me lo mande hacia la pagina de login, hasta ahi todo bien.

Una vez que se loguee el usuario quisiera redireccionarlo a la pagina que anteriormente trato de acceder y no a una pagina por default como seria lo mas sencillo...

El ejemplo mas claro de lo que quiero hacer es lo mismo que pasa aqui en el foro, cuando no estamos autenticados y tratamos por ejemplo de postear, en ese caso nos envia a la pagina login y luego nos redirecciona hasta la pagina que queriamos acceder, espero haberme explicado bien....

Estoy utilizando framework symfony, aun no encuentro manera de hacerlo con sus funcionen, por ahora me conformo con hacerlo con las funciones del php standar...

de antemano gracias...


oracle

oracle 05-03-2008 04:30:44

Mis saludos reiterados amigos, encontre este peque;o ejemplo en internet:

Código:


$url = explode("?",$_SERVER['HTTP_REFERER']);
$redir=$url[0];

Tambien con javascript se puede hacer algo asi:

Código:


< a href = javascript:history.back()> .....

Pero la segunda opcion no me sirvio mucho para lo que yo necesito ya que no me devuelve el url de la pagina anterior y me hace falta para la devolucion de un parametro a la pagina...

Gracias de todas formas


Oracle

dec 05-03-2008 04:34:28

Hola,

Código PHP:

$url explode("?",$_SERVER['HTTP_REFERER']); 
$redir=$url[0]; 

Como sabes, "$url" contendría la URL, en este caso, más no su "query string", puesto que si esto también lo necesitas, entonces, basta con:

Código PHP:

$redir $_SERVER['HTTP_REFERER']; 


oracle 05-03-2008 15:00:16

Si eso es correcto, lo he probado y excelente!!! El asunto es que no se que hace la funcion explode por eso la he dejado exactamente como estaba en el ejemplo...

La unica desventaja que he encontrado hasta ahora es que por ejemplo si en la pagina en cuestion (Buscar.php) hay un boton submit (recordemos que estoy trabajando con Symfony) dicho submit envia hacia el action de dicha pagina function executeBuscarSuccess, pues en este caso en la variable $_SERVER['HTTP_REFERER'] quedara registrada como url anterior la propia pagina buscar.php y eso no es lo que necesito, lo que deseo es regresar a la pagina inmediatamente anterior en el historial a Buscar.php....


//Saludos

lucasarts_18 06-03-2008 03:41:19

Hola:

También me he encontrado con problemas similares, finalmente estoy usando una variable que se llama $pagAnterior y que hago viajar por url, con esto puedo controlar perfectamente para volver a las páginas anteriores sin problemas, una solución bien chunga, pero que me funciona. :D

Hasta Luego .-

PD: Lo otro es usar una variable de SESSION para mantener siempre la página anterior.

oracle 06-03-2008 03:50:46

Los problemas con las variables de session estan en que a veces hay navegadores que dan problemas con ellas, tienen que tener actualizadas las cookies, etc. En mi caso especificamente el firefox ligado con el symfony da muchos errores relacionados con eso, con IE generalmente no suelen ocurrir este tipo de problemas....

//Saludos

keyboy 06-03-2008 06:00:46

No entiendo a qué problemas te refieres. PHP puede manejar sesiones aún sin cookies, en cuyo caso el ID de sesión se transmite junto con la url.

Por cierto, tengo curiosidad por ver cómo estás usando el HTTP_REFERER para estos menesteres, porque no me queda claro. Si intento ingresar a pagina.php sin haber iniciado sesión, y redirecciono con header a login.php, HTTP_REFERER no contiene ningún valor. Al menos es lo que ví ayer en unas pruebas que hice, pero quizá se me escapa algo.

De cualquier manera, recuerda que el mismo manual de PHP desaconseja el uso de HTTP_REFERER.

Bye

oracle 08-03-2008 14:31:19

Amigo KeyBoy, realmente tienes mucha razon en lo que dices respecto a las sessiones y las cookies. Lo que queria dar a entender es que estaba teniedno problemas con el manejo de sessiones en Firefox.

Bueno de todas formas lo de redireccionar a la pagina de login fue un ejemplo, porque pense que se trataba del mismo caso, ya veo por tu analisis que no, realmente yo no redirecciono hacia ningun lado, lo que necesito es tener un link en cuestionario.php hacia buscar.php donde se muestran un registros como resultado de una busqueda. Dichos registros deben tener un link cada uno hacia la pagina cuestionario.php en caso que halla sido cuestionario la que la halla llamado, porque puede ocurrir que sea otra y en ese caso necesito que los resultados de buscar.php me envien hacia esa otra pagina.

De cualquier forma no pude al final lograr lo que queria con http_referer, asi que pude solucionar el problema pasando como parametro a la pagina buscar.php la url de la pagina que la llama, la guardo en un campo hidden y asi no la pierdo en ningun momento y asunto resuelto....


Saludos

oracle


La franja horaria es GMT +2. Ahora son las 02:02:33.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi