Foros del Web » Programando para Internet » PHP »

Loggin Direccionado !

Estas en el tema de Loggin Direccionado ! en el foro de PHP en Foros del Web. compàdres como vamos bueno mi pregunta es esta, necesito hacer un sistema de loggin, pero ademas de ello tambien desearia saber la anterior pagina que ...
  #1 (permalink)  
Antiguo 30/01/2007, 10:43
Avatar de charlyrosero  
Fecha de Ingreso: julio-2006
Mensajes: 161
Antigüedad: 17 años, 9 meses
Puntos: 5
Exclamación Loggin Direccionado !

compàdres como vamos


bueno mi pregunta es esta,

necesito hacer un sistema de loggin, pero ademas de ello tambien desearia saber la anterior pagina que el usuario estaba visitando.

el por que de esto es, estoy haciendo un carrito de compras pues para comprar el usuario debe estar registrado, si esta registrado y no loggeado entonces descpues de pinchar el boton comprar, me despliega un formulario de loggin, cuando se loggea SE que viene de el carrito de compras y lo puedo dirigir a la pasarela de pago.

esto no aplica cuando el usuario quiere hacer loggin por cuenta propia, es decir ir a la opcion iniciar session por si mismo,. pues si pudiese saber que viene de el usuario sabria perfectamente despues del loggin a donde dirigirlo

Compañeros me pueden ayudar ?
  #2 (permalink)  
Antiguo 30/01/2007, 10:46
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 21 años, 10 meses
Puntos: 35
Re: Loggin Direccionado !

Usa $_SERVER['HTTP_REFERER'];
__________________
Sin Ideas
  #3 (permalink)  
Antiguo 30/01/2007, 10:56
Avatar de charlyrosero  
Fecha de Ingreso: julio-2006
Mensajes: 161
Antigüedad: 17 años, 9 meses
Puntos: 5
Re: Loggin Direccionado !

OSO96_2000

Gracias por la ayuda !

es una buena opcion, pero estuve investigando en el manual de refrencia de php y me dice

La dirección de la página (si la hay) la cual refirió al agente de usuario a la página actual. Este valor es definido por el agente de usuario. No todos los agentes de usuario lo definen, y algunos proveen la capacidad de modificar HTTP_REFERER como una característica del software. En resumen, no se puede confiar realmente en este valor.

que podria hacer en este caso
  #4 (permalink)  
Antiguo 30/01/2007, 11:05
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Loggin Direccionado !

Hola,

lo mas usado es el $_SERVER['HTTP_REFERER'];, pero es cierto, a veces tal valor no existe. En tal caso lo que puedes hacer es:

en tu pagina a la cual se supone va a regresar el usuario despues del login:
Código PHP:
//session_start() // Debes haber iniciado la sesion
$_SESSION['actual_url'] = $_SERVER['REQUEST_URI']; 
luego en la pagina que procesa el login:
Código PHP:
// ya se ha hecho el login
$back = (!empty($_SERVER['HTTP_REFERER')) ? $_SERVER['HTTP_REFERER'] : ((!empty($_SESSION['actual_url'])) ? $_SESSION['actual_url'] : 'NO_URL');
 
if(
$back == 'NO_URL') {
//con javascript
echo '<script>history.goback(-1)</script>';
} else {
header("Location: $back");

espero t sirva

Salu2
  #5 (permalink)  
Antiguo 30/01/2007, 11:30
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Loggin Direccionado !

Cuando no este el valor simplemente lo direccionas a tu pagina principal.
  #6 (permalink)  
Antiguo 30/01/2007, 11:31
Avatar de charlyrosero  
Fecha de Ingreso: julio-2006
Mensajes: 161
Antigüedad: 17 años, 9 meses
Puntos: 5
Re: Loggin Direccionado !

Compadre Muchas Gracias lo provare, yo te aviso
  #7 (permalink)  
Antiguo 30/01/2007, 14:02
Avatar de charlyrosero  
Fecha de Ingreso: julio-2006
Mensajes: 161
Antigüedad: 17 años, 9 meses
Puntos: 5
Re: Loggin Direccionado !

Compadres, no pude resolverlo, pues me generaron mas dudas

Miremos este ejemplo lo hace

http://osc.template-help.com/11302/

miremos dos cosas.

primero

como estamos en el index, y queremos ver el estado de mi cuenta, y si no estoy loggeado, tendere que loggearme , despues de ello me dirije a mi cuenta

como usuario quize ver la info de mi cuenta me logge y luego accedi a mi cuenta.

segundo

estamos en el mismo index.php y queremos loggearnos para evitar complicaciones en el futuro, nos loggeamos y sencillo, despues de ello nos envia a el mismo index.php

conclusion como se hace esto? como se en el loggin cual es el objetivo del usuario ? para despues direccionarlo ?

Gracias por sus aportes
  #8 (permalink)  
Antiguo 30/01/2007, 15:51
Avatar de charlyrosero  
Fecha de Ingreso: julio-2006
Mensajes: 161
Antigüedad: 17 años, 9 meses
Puntos: 5
Re: Loggin Direccionado !

Compañeros alguna sugerencia ?
  #9 (permalink)  
Antiguo 30/01/2007, 16:54
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 21 años, 10 meses
Puntos: 35
Re: Loggin Direccionado !

Yo hago uso del $_SERVER['HTTP_REFERER'].. y si este no existe, simplemente lo redirijo a mi pagina principal

Código PHP:
if(isset($_SERVER['HTTP_REFERER']) && !empty($_SERVER['HTTP_REFERER'])) //redirijo al referer
else //redirijo a mi pagina principal 
Tambien podrias comprobar si el referer proviene de tu misma web o no ^^

Edito: Espera, acabo de entender un poco mas lo que deseas, creo xD

Supongamos que estas en una pagina, y das clic en un enlace que te lleva a una area donde necesitas estar identificado para entrar. Antes de mostrar el contenido restringido, compruebas si esta identificado o no, si no lo esta, lo rediriges al formulario de login y puedes pasarle una variable por sesion o url, que es la pagina a donde el usuario queria entrar.

Supongamos que escogiste pasarla por url.. login.php?redirect=privada.php

En el formulario de login puedes ver si existe la variable rdirect, si existe la pones en un input oculto y cuando se mande el formulario, si el usuario se autentifico correctamente, lo rediriges a la pagina que tenias en ese campo oculto, que es al la que el usuario planeaba ir desde un principio..

No se si me explique, y no se si sea lo que buscas xD
__________________
Sin Ideas

Última edición por oso96_2000; 30/01/2007 a las 17:04
  #10 (permalink)  
Antiguo 30/01/2007, 16:58
okram
Invitado
 
Mensajes: n/a
Puntos:
De acuerdo Re: Loggin Direccionado !

Hola,

Veamos...

en tu sitio manejas estas paginas:
  • index.php -> Es el index de tu web
  • cuenta.php -> Muestra el estado de tu cuenta
  • login.php -> Es el formulario de ingreso / login
  • procesalogin.php -> Procesa los datos que recibe de login.php (Puede ser la misma pagina login.php)
En las paginas de tu sitio a las que quieres que el usuario regrese despues de un login (hablamos de index.php y cuenta.php) pondras esto: [

Código PHP:
//<?php
////Iniciamos la sesion
//session_start();
 
//Guardamos la url actual para que el usuario regrese a esta en caso de que necesite ir a la pagina de login
$_SESSION['url_back'] = $_SERVER['REQUEST_URI'];
 
//RESTO DEL SITIO
//
?>
Luego, en las paginas que necesiten que el usuario esté loggeado para poder ser visualizadas, ademas del codigo anterior, deberas poner un codigo que verifique esto, algo como:

Código PHP:
//<?php
//session_start();
 
// el codigo anterior
$_SESSION['url_back'] = $_SERVER['REQUEST_URI']; 
////verificas si esta loggeado
if($_SESSION['usuario_loggeado'] == false) {
header('Location: login.php');
exit;
}
 
//RESTO DEL SITIO
 
//
?>
Finalmente, en procesalogin.php, o en la pagina que procese los datos del formulario de ingreso, al final colocas:

Código PHP:
//<?php
//session_start();
 
//aqui el procesamiento de los datos
 
//si todo es correcto
$url_back $_SESSION['url_back'];
if(empty(
$url_back)) {
$url_back 'index.php';
}
header('Location: '.$url_back);
//?>
Así te debería funcionar... así lo uso yo y me va siempre bien

IMPORTANTE: El primer codigo solo debes ponerlo en las paginas que 'forman parte de tu sitio, osea que el usuario ve' y NO en otras como login.php global.php funciones.php procesalogin.php o cosas por el estilo.

Cualquier duda, sigue el tema

Salu2
  #11 (permalink)  
Antiguo 31/01/2007, 07:57
Avatar de charlyrosero  
Fecha de Ingreso: julio-2006
Mensajes: 161
Antigüedad: 17 años, 9 meses
Puntos: 5
De acuerdo Re: Loggin Direccionado !

compadres oso96_2000 y Okram , agradezco "infinitamente" su ayuda, pues estaba en una encrucijada . y se me ha despejado un poco mas el problema.


volviendo al tema primero con Okram.

la solucion tuya, es muy buena y completa , pero no seria factible en mi caso, pues yo necesitaria , cuando el usuario desee ingresar a sus datos de cuenta desde login.php o quiera solamente loggearse solo por seguridad, y no este loggeado pero posea cuenta, lo lleve a un formulario de loggin, despues lo direccione a donde queria ir. en el caso de ver mi cuenta me lleva al estado de mi estado de mi cuenta, o en el caso del solo hacer login lo direccione al index.php.

lo que propones es que despues de hacer loggin lo direccione donde estaba antes, y mi problema es direccionarlo donde el usuario queria ir ....
okram, me entiendes ?.........

oso96_2000

el ultimo post resolveria mi problema

Cita:
Supongamos que estas en una pagina, y das clic en un enlace que te lleva a una area donde necesitas estar identificado para entrar. Antes de mostrar el contenido restringido, compruebas si esta identificado o no, si no lo esta, lo rediriges al formulario de login y puedes pasarle una variable por sesion o url, que es la pagina a donde el usuario queria entrar.

Supongamos que escogiste pasarla por url.. login.php?redirect=privada.php

En el formulario de login puedes ver si existe la variable rdirect, si existe la pones en un input oculto y cuando se mande el formulario, si el usuario se autentifico correctamente, lo rediriges a la pagina que tenias en ese campo oculto, que es al la que el usuario planeaba ir desde un principio..
voy a meditar y ejecutar la propuesta y les aviso
  #12 (permalink)  
Antiguo 31/01/2007, 10:02
Avatar de charlyrosero  
Fecha de Ingreso: julio-2006
Mensajes: 161
Antigüedad: 17 años, 9 meses
Puntos: 5
De acuerdo Re: Loggin Direccionado ! (Solucion)

Gracias a sus aportesy ayuda incondicional

tengo la solucion , la voy a exponer para usuarios Futuros !!

El problema
Cita:
Queria saber despues de que el usuario hiciera loggin. saber a donde se dirijia , si su objetivo era comprar o revisar su estado de cuenta o simplemente hacer un loggin.
pues hasta la fehca solo hacia que despues de el loggin SOLO se direccionara a index.php,.
La solucion
Cita:
El planteamiento de la solucion, como debo hacer seguridad a areas que son restringidas, es ahi donde creo una variable de session Como ?

ejemplo practico

Estamos en el index.php donde poseo opciones como loggin - ver cuenta ETC, cada una de estas opciones esta direccionada a su vinculo (loggin a loggin .php , ver cuenta a ver_cuenta.php) y en estos archivos.php en estos archivos creo una variable de session indicando a donde queria dirijirse el usuario , para el caso de ver cuenta seria algo asi $_SESSION["rdirect"]="mi_cuenta.php"

despues hago la seguridad pregunto si existe una variable de session de usuario o en ultimas si el usuario esta registrado, si no existiera lo redirecciono a la pagina de loggeo loggin.php

con esta variable se cual es el objetivo del usuario, si se loggea y es exitoso, pregutno si la varriable $_SESSION["rdirect"] existe, si existe direcciono con el
valor de la variable en este caso header("location:".$_SESSION["rdirect"].""); si no lo esta, pues simplemente lo direcciono al index.php

y solucionado el problema
Compadres Gracias por tan valiosos aportes, y por su brutal ayuda !!
  #13 (permalink)  
Antiguo 01/02/2007, 18:12
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Loggin Direccionado !

Cita:
Iniciado por charlyrosero Ver Mensaje
lo que propones es que despues de hacer loggin lo direccione donde estaba antes, y mi problema es direccionarlo donde el usuario queria ir ....
okram, me entiendes ?.........
Bueno, aunque tu problema ya esta solucionado, tengo que aclarar que si el usuario no estaba logueado, y queria ir a mi_cuenta.php, pues hara clic en el vinculo mi_cuenta.php, el servidor guardara en una variable de sesion $_SESSION['url_back'] = $_SERVER['REQUEST_URI']; la direccion en la que esta en ese momento (que en este caso sera obviamente mi_cuenta.php, pues, aunque despues al verificar que no esta logueado lo mandara a la pagina de login, es la pagina actual en ese momnento). Asi, al procesar el login, el valor que tenndra $_SESSION['url_back'] sera el de la pagina que queria ver (mi_cuenta.php) y no mas sera el de index.php

Te sugeriria revisar un poco mas el codigo que te mande y compararlo con la solucion que pudiste encontrar, veras que en escencia son lo mismo...

Un saludo,
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 19:41.