Foros del Web » Programando para Internet » PHP »

Problema include:guardar página a la que se intenta acceder para redirección

Estas en el tema de Problema include:guardar página a la que se intenta acceder para redirección en el foro de PHP en Foros del Web. Hola, tengo una serie de páginas y lo primero que tienen es: <?php include('autenticar.php');?> que lo que hace es comprobar si el usuario es válido ...
  #1 (permalink)  
Antiguo 29/07/2005, 17:21
 
Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 20 años, 9 meses
Puntos: 0
Problema include:guardar página a la que se intenta acceder para redirección

Hola,
tengo una serie de páginas y lo primero que tienen es:

<?php include('autenticar.php');?>

que lo que hace es comprobar si el usuario es válido o no, para redireccionarlo a un formulario de autenticación. Todo hasta aquí bien, el problema viene cuando hay que volver a redirección al usuario a la zona donde quería acceder. Por ejemplo: Si quiero acceder a la zona "ZONA1" y la validación falla, voy al formulario de autenticación y si la validación es correcta hay que redireccionarle a la "ZONA1" o a la que intentó acceder. Creo que no es buena idea hacerle ir otra vez a esa zona y que directamente le aparezca.


He intentado solucionarlo con una variable de sesión, poniendola antes del include, así:

$_SESSION['pagina'] = $_SERVER['PHP_SELF'];
<?php include('autenticar.php');?>


Para poder saber de que página vengo, pero nada no sirve. A alguién se le ocurre como resolverlo, si tiene solución o lo tengo que hacer de otra forma.


Gracias.

Última edición por dominguez; 29/07/2005 a las 17:26
  #2 (permalink)  
Antiguo 29/07/2005, 17:36
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 4 meses
Puntos: 34
Asi como haces, has:
$_SESSION['history'] = $_SERVER['PHP_SELF'];
if(isset($_SERVER['QUERY_STRING'])) $_SESSION['history'] .= '?'.$_SERVER['QUERY_STRING'];

Despues, en el login, manda a $_SESSION['history'], y si esta vacia, fijate de enviarla a la home. EJ:

cuando redireccionas:
$history = isset( $_SESSION['history'] ) ? $_SESSION['history'] : 'home.php';
header("Location: ". $history );

Otra es poner los headers para no chahee, y luego hacer un simple echo "<script>history.back();</script>";.

Dichos head son:

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

Espero sea eso y te sirva
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #3 (permalink)  
Antiguo 29/07/2005, 18:04
 
Fecha de Ingreso: julio-2003
Mensajes: 463
Antigüedad: 20 años, 9 meses
Puntos: 0
Si funciona, ahora volviendo a escribir lo tuyo me he dado cuenta que me faltaba un session_start y por eso no iba.

Gracias.
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 15:40.