Foros del Web » Programando para Internet » PHP »

manejo de header(location) a la hora de iniciar session

Estas en el tema de manejo de header(location) a la hora de iniciar session en el foro de PHP en Foros del Web. Saludos Antes de todo muchas gracias por tomarse un momento en leer mi post., mi pregunta es la siguiente: Como hacer para que si un ...
  #1 (permalink)  
Antiguo 07/04/2011, 20:05
Avatar de genaro_belen  
Fecha de Ingreso: diciembre-2010
Ubicación: Santo Domingo, RD
Mensajes: 94
Antigüedad: 13 años, 4 meses
Puntos: 3
manejo de header(location) a la hora de iniciar session

Saludos
Antes de todo muchas gracias por tomarse un momento en leer mi post.,

mi pregunta es la siguiente:
Como hacer para que si un usuario esta en un proceso el cual le pida que se loguee, y lo lleve a la pagina de login, luego lo traiga de nuevo a ese mismo punto y no lo lleve a una pagina predeterminada que tengo para cuando todos inicien session.

por ejemplo:

el usuario quiere ir a pagos y le da entrar a la pgina de pagos.php la cual es una pagina segura, entonces le pida que se loguee y cuando el usuario inicie session lo lleve a pagos.php que es donde el queria ir.

gracias...
millones de graciass
  #2 (permalink)  
Antiguo 07/04/2011, 20:35
Avatar de humbero12  
Fecha de Ingreso: abril-2009
Ubicación: Cereté, Colombia
Mensajes: 53
Antigüedad: 15 años
Puntos: 4
Respuesta: manejo de header(location) a la hora de iniciar session

Es facil mira este ejemplo, tengo dos archivos navegando.php y login.php

navegando.php
Código PHP:
Ver original
  1. <?php
  2. if(!isset($_SESSION['usuario'])){
  3.     header("location: login.php?url=".$_SERVER['REQUEST_URI']); //Redireccion a la pagina login.php y como parametro url lleva la direccion del doumento que redirecciona
  4. }
  5. else{
  6.     echo "Aqui la pagina que esta navegando";
  7. }
  8. ?>

y el archivo login.php
Código PHP:
Ver original
  1. <?php
  2. if(isset($_SESSION['usuario'])){
  3.     header("location: ".($_GET['url']!=NULL?$_GET['url']:"index.php"));
  4. }
  5. else{
  6. $login = $_POST['login'];
  7. if(isset($login)){
  8.     $con = mysql_connect("localhost","root","") or die("Error de conexion");
  9.     mysql_select_db("basededatos",$con);
  10.     $usuario = $_POST['usuario'];
  11.     $password = $_POST['password'];
  12.     $cons = mysql_query("select * from usuarios where username='$usuario' and passwd=PASSWORD('$password')",$con);
  13.     if(mysql_num_rows($cons)==0){    
  14.         echo "Usuario y contraseña no validos";
  15.     }
  16.     else{
  17.         session_register("usuario");
  18.         $_SESSION['usuario'] = $usuario;
  19.         header("location: ".($_GET['url']!=NULL?$_GET['url']:"index.php")); // Aqui esta la clave de todo, si se envia como parametro url toma el dato y redirecciona de lo contrario va a index.php
  20.     }
  21. }
  22. else{
  23.     ?>
  24.     <form action="" method="post">
  25.         Usuario: <input type="text" name="usuario" /><br />
  26.         Password: <input type="password" name="password" /><br />
  27.         <input type="submit" name="login" value="Entrar" />
  28.     </form>
  29.     <?
  30. }
  31. }
  32. ?>
__________________
Sigueme en twitter @humbero12
Blog #cazacontenidos
  #3 (permalink)  
Antiguo 08/04/2011, 16:57
Avatar de genaro_belen  
Fecha de Ingreso: diciembre-2010
Ubicación: Santo Domingo, RD
Mensajes: 94
Antigüedad: 13 años, 4 meses
Puntos: 3
Respuesta: manejo de header(location) a la hora de iniciar session

solo me esta redireccionando a index.php

cuando me lleva a login.php muy bien, me pasa con la url que redirecciona, pero cuando inicio session solo me lleva a index.,
al parecer el problema esta en esta parte del codigo.,

header("location: ".($_GET['url']!=NULL?$_GET['url']:"index.php"));

que crees que pueda ser?

gracias
  #4 (permalink)  
Antiguo 09/04/2011, 23:55
Avatar de humbero12  
Fecha de Ingreso: abril-2009
Ubicación: Cereté, Colombia
Mensajes: 53
Antigüedad: 15 años
Puntos: 4
Respuesta: manejo de header(location) a la hora de iniciar session

SI te manda a index.php quiere decir que nose esta enviando el parametro url o el parametro url se estan enviando vacio asi login.php?url= eso quiere decir que el $_SERVER['REQUEST_URI'] esta vacia
__________________
Sigueme en twitter @humbero12
Blog #cazacontenidos
  #5 (permalink)  
Antiguo 14/04/2011, 10:18
Avatar de humbero12  
Fecha de Ingreso: abril-2009
Ubicación: Cereté, Colombia
Mensajes: 53
Antigüedad: 15 años
Puntos: 4
Respuesta: manejo de header(location) a la hora de iniciar session

Para presentarte este ejemplo lo probe primero en mi servidor local y funciono nose porque a ti no te funciona.
__________________
Sigueme en twitter @humbero12
Blog #cazacontenidos

Etiquetas: manejo, session
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 18:19.