Ver Mensaje Individual
  #21 (permalink)  
Antiguo 17/01/2014, 13:35
Avatar de estudioplateado
estudioplateado
 
Fecha de Ingreso: diciembre-2009
Mensajes: 71
Antigüedad: 15 años
Puntos: 2
Respuesta: error en redirreccion mediante funcion header

Cita:
Iniciado por HackmanC Ver Mensaje
Hola,



Creo que no has comprendido bien el problema, el problema es que la página login.php hace alguna validación para ver si el usuario está logeado y por alguna razón, desconocida para mí porque tendría que probar para saberlo, pero hace el redirect, según lo que comentas.

Pero la página compra_alta.php, por un motivo desconocido porque no has mostrado el código, encuentra que el usuario no esta logeado y por esa razón hace un redirect a la página login.php.

De nuevo login.php detecta que el usuario esta validado y lo manda a compra_alta.php, esta última detecta que el usuario no está validado y lo manda a login.php.

Y este proceso se repite indefinidamente, ¿Ves ahora el problema?

Saludos,
Hola

creo que si lo he comprendido, dado que el redirect de la función header SÍ FUNCIONA hacia la pagina compras_alta.php cuando en login.php lo hago así:

Código PHP:
header("Location: /compras_alta.php"); 
asi tambien SI FUNCIONA:

Código PHP:
$url "/compras_alta.php";

if (
$_SESSION[registrado]) {
      
header("Location: ".$url);
      exit;

sin embargo NO FUNCIONA cuando la obtengo por GET (login.php?url=/compras_alta.php) :

Código PHP:
$url $_GET['url']; 
como le he solucionado entonces?

en compras_alta.php guardo la url en una variable de sesión:

Código PHP:
$_SESSION['last_page'] = $_SERVER['REQUEST_URI'];
header("location: login.php");
exit; 
entonces en login.php , en vez de esto:

Código PHP:
$url $_GET['url']; 
hice esto:

Código PHP:
if(isset($_SESSION['last_page'])) {
$url $_SESSION['last_page'];
} else {
$url "index.php";

Código PHP:
if ($_SESSION[registrado]) {
      
header("Location: ".$url);
      exit;

y ahora funciona lo que yo quería, que son dos cosas:

pasar dinamicamente por variable la url a la función header;

y una vez logueado volver a la pagina anterior!

saludos!