Foros del Web » Programando para Internet » PHP »

Evitar que un usuario acceda a una pagina sin haberse logueado

Estas en el tema de Evitar que un usuario acceda a una pagina sin haberse logueado en el foro de PHP en Foros del Web. Hola, buenos dias... Hace unas semanas abri este post http://www.forosdelweb.com/f18/restr...uarios-987039/ y le realice las modificaciones correspondientes... He podido hacer que dependiendo del tipo de usuario, ...
  #1 (permalink)  
Antiguo 17/05/2012, 08:25
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 12 años, 7 meses
Puntos: 9
Evitar que un usuario acceda a una pagina sin haberse logueado

Hola, buenos dias... Hace unas semanas abri este post http://www.forosdelweb.com/f18/restr...uarios-987039/ y le realice las modificaciones correspondientes... He podido hacer que dependiendo del tipo de usuario, ingrese a su carpeta correspondiente con este codigo

Código PHP:
Ver original
  1.         $fila=mysql_fetch_array($datos);
  2.         $_SESSION['codigo_usuario']=$fila['codigo_usuario'];
  3.        
  4.         if ($fila['tipo_usuario']=="admin")
  5.         {
  6.             header("location:admin/index.php");
  7.         }
  8.         if ($fila['tipo_usuario']=="consultor")
  9.         {
  10.             header("location:consultor/index.php");
  11.         }
  12.         if ($fila['tipo_usuario']=="lider")
  13.         {
  14.             header("location:lider/index.php");
  15.         }

El inconveniente que estoy presentando es que quiero evitar que quiero evitar que se escriba una url y esa persona accese sin autorizacion a la pagina... Escribi este codigo pero me devuelve a la pagina principal del sistema aun teniendo la autorizacion para verla (despues de haberse logueado, claro esta)

Código PHP:
Ver original
  1.    
  2.     if(!$_SESSION['tipo_usuario']=="lider")
  3.         header("location:../index.php");

No se que estoy haciendo mal... Muchas gracias
  #2 (permalink)  
Antiguo 17/05/2012, 08:27
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Evitar que un usuario acceda a una pagina sin haberse logueado

No puedes modificar el cabezal de la página 2 veces, en casos como este lo mejor es que uses un include y un die:

session_start();

if(!$_SESSION['tipo_usuario']=="lider")
include("../index.php"); die();
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #3 (permalink)  
Antiguo 17/05/2012, 08:38
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 12 años, 7 meses
Puntos: 9
Respuesta: Evitar que un usuario acceda a una pagina sin haberse logueado

Cita:
Iniciado por stramin Ver Mensaje
No puedes modificar el cabezal de la página 2 veces, en casos como este lo mejor es que uses un include y un die:

session_start();

if(!$_SESSION['tipo_usuario']=="lider")
include("../index.php"); die();
Muchas gracias por una respuesta tan rapida... Lo hice, me redirige a la pagina principal, pero me aparece este error en la primera linea
Notice: Undefined index: tipo_usuario in C:\xampp\htdocs\proyecto_horas\lider\index.php on line 5

Hay alguna forma de no mostrarlo (aparte del @)???

Aparte, hay un detalle cuando puse tu codigo que no se si es posible arregarlo... Cuando escribo localhost/carpeta_proyecto/lider obviamente me lleva al index.php de esa carpeta pero al no haber iniciado sesion me devuelve a la pagina principal del proyecto, pero sigue mostrandose localhost/carpeta_proyecto/lider en vez de localhost/carpeta_proyecto/ No se si es posible arreglar eso tambien... Muchas gracias
  #4 (permalink)  
Antiguo 17/05/2012, 11:40
 
Fecha de Ingreso: septiembre-2011
Ubicación: Caracas
Mensajes: 240
Antigüedad: 12 años, 7 meses
Puntos: 9
Respuesta: Evitar que un usuario acceda a una pagina sin haberse logueado

Nadie tiene una idea? Sin agregar esta parte del codigo, la pagina se redirige de manera efectiva, aunque el amigo alla arriba dijo que esto estaba mal
Código PHP:
Ver original
  1.  
  2. if(!$_SESSION['tipo_usuario']=="lider")
  3.     header("location:../index.php");

Pero si hago los cambios propuestos, me da los errores mencionados anteriormente... No se en que me estoy equivocando... Muchas gracias

Por cierto, alguien sabe como limitar una sesion a una cantidad de tiempo predeterminada, por ejemplo, una hora, dos horas o asi?

Etiquetas: logueado, sql, usuarios
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 02:46.