Foros del Web » Programando para Internet » PHP »

Boton de retrocezo...

Estas en el tema de Boton de retrocezo... en el foro de PHP en Foros del Web. Compañeros, Yo quiero hacer que una pagina.php sepa de donde fue accesada, esto por lo siguiente: Yo tengo un index.php que contiene un formulario de ...
  #1 (permalink)  
Antiguo 31/01/2004, 19:49
gcs
 
Fecha de Ingreso: enero-2004
Ubicación: Heredia, Costa Rica
Mensajes: 191
Antigüedad: 20 años, 3 meses
Puntos: 0
Boton de retrocezo...

Compañeros,

Yo quiero hacer que una pagina.php sepa de donde fue accesada, esto por lo siguiente:

Yo tengo un index.php que contiene un formulario de Autentificacion con Usuario y Contraseña, este al ser llenado manda los datos suministrados a /registro/control.php desde ahi verifica que la informacion se encuentre en una base de datos y luego lo devuelve a index.php, el problema que se me presenta es cuando ese mismo formulario de autentificacion fue enviado desde otra pagina que no sea index.php osea que tambien lo tengo a cualquier otra pagina del sitio, siempre me lo va a devolver a index.php por lo que quiero que control.php lo vuelva a dejar de donde metio los datos.

yo intente con la variable
Código PHP:
$HTTP_REFERER 
pero no me recopila la informacion para que se devuelva a la pagina de donde vino.

No se si me di a entender.

Saludos,

Gabriel
  #2 (permalink)  
Antiguo 01/02/2004, 01:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En ese caso no se trata de guardarte el "referer" sino el nombre del script en el que estamos (en el que entramos directo pero no tenemos la autentificación correcta).

Es decir ..

Si tu validas a tu usuario por sesiones/cookies u otros médios en X_Script.php tipo:


Código PHP:
if (!validación){

$redir=$_SERVER['PHP_SELF'];
header ("Location: tu_formulario_login.php?redir=$redir");
exit;


En tu formulario de login (donde piedes tu usuario/contraseña) debes volver a propagar la variable $redir (que a este le llega desde método GET) a tu script de validación (control.php) .. En este punto lo puedes hacer con una variable en un campo hidden de tu formulario:

Código PHP:
<input type="hidden" name="redir" value="<?echo $_GET['redir']?>>
En tu script que valide ("control.php") tomas la variable "redir" (por el método que la envies la obtendras) y haces tu redireccionamiento final tipo:

Código PHP:
// validas ... y si todo OK:
header("Location: $_XXX['redir']"); // XXX = GET o POST
exit; 
Si ya trabajas con sesiones o cookies .. emplea una nueva variable de sesión/cookie para llevar tu $redir en lugar de liarte propagando a mano en todo script que pasa esa variable.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 01/02/2004 a las 01:22
  #3 (permalink)  
Antiguo 01/02/2004, 19:15
gcs
 
Fecha de Ingreso: enero-2004
Ubicación: Heredia, Costa Rica
Mensajes: 191
Antigüedad: 20 años, 3 meses
Puntos: 0
Compañero muchas gracias,

Solo tengo una duda... la pabra redir que aparece en esta linea:

Código PHP:
<input type="hidden" name="redir" value="<?echo $_GET['redir']?>>

La tengo que sustituir por el nombre del .php en el que se encuentre el formulario de Autentificación ?

Saludos
  #4 (permalink)  
Antiguo 02/02/2004, 06:20
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No, .. la palabra "redir" no es una palabra sino una variable .. la cual llega desde tu script que accedes directamente y es ahí donde toma el valor del nombre de la página/script que se solicita para poder tomarlo como "referrer" (pero como hay dos saltos de página por médio .. ya no correspondería un "HTTP_REFERER" clásico .. ) he de ahí que se "progague" esa variable en tus scripts. También te hacia el comentario que si usas sesiones o cookies en tu sistema de autentificación .. esa variable puedes propagarlar en esa cookie o sesión de forma más cómoda.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 09:46.