Foros del Web » Programando para Internet » PHP »

condicionar o personalizar usuarios de sesion

Estas en el tema de condicionar o personalizar usuarios de sesion en el foro de PHP en Foros del Web. Hola a todos!! tengo un problema que me tiene con dolor de cabeza. Tengo una tabla llamada usuario con los campos: Nombre, Password, cargo, email. ...
  #1 (permalink)  
Antiguo 29/06/2010, 10:11
 
Fecha de Ingreso: septiembre-2008
Mensajes: 52
Antigüedad: 15 años, 7 meses
Puntos: 0
condicionar o personalizar usuarios de sesion

Hola a todos!!
tengo un problema que me tiene con dolor de cabeza. Tengo una tabla llamada usuario con los campos: Nombre, Password, cargo, email. (hay tres tipos de cargo : Coordinador, Supervisor, Encuestador)
el tema es que en la pagina que estoy desarrollando quiero restringir el acceso a algunas paginas dependiendo del cargo, si es supervisor solo que tenga acceso a la plataforma de supervision, si es coordinador a plataforma coordinador, nosé si me hago entender.
al comienzo de cada pagina tengo este codigo, la que me verifica la existencia de la session:

session_start();
// si existe sesion puedo entrar a encuesta.php
if (isset($_SESSION['s_username']))
{
header("encuesta.php");
}
//si no existe logeado redirecciono a la página de login
else
{
header("location:login.html");
}
?>

tengo un form login y el codigo que verifica si el usuario existe o no:


<?php
include("conex.php");

if ($_POST['username']) {
//Comprobacion del envio del nombre de usuario y password
$username=$_POST['username'];
$password=$_POST['password'];
if ($password==NULL) {
echo "El password en incorrecto";
}
else
{
$query = mysql_query("SELECT username,password, cargo FROM usuario WHERE username = '$username'") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['password'] != $password)
{
echo "Login incorrecto";
}
else
{
$query = mysql_query("SELECT username,password, cargo FROM usuario WHERE username = '$username'") or die(mysql_error());
$row = mysql_fetch_array($query);

$_SESSION["s_username"] = $row['username'];
$sesion = $_SESSION["s_username"];

header("Location: ../Plataforma_coordinacion/sector.php");
}
}
}
?>

estaré atento a cualquier respuesta

muchas gracias
  #2 (permalink)  
Antiguo 29/06/2010, 10:17
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: condicionar o personalizar usuarios de sesion

veo explicacion pero no veo la pregunta!
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 29/06/2010, 10:21
 
Fecha de Ingreso: septiembre-2008
Mensajes: 52
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: condicionar o personalizar usuarios de sesion

lo que quiero es que dependiendo de su cargo se acceda a distintas plataformas: que si es "supervisor" entonces al acceder a login.html me distinga que el perfil que estoy ingresando es de supervisor y me vaya a supervisor.php, si su cargo es "coordinador" que vaya a coordinador.php. eso!

gracias por el interés!
  #4 (permalink)  
Antiguo 29/06/2010, 10:56
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: condicionar o personalizar usuarios de sesion

bueno es simple solo guarda en session otro dato que contenga el cargo y luego validas con eso
Código PHP:
Ver original
  1. $_SESSION["auth"] = $row["cargo"];

y luego solo envias los datos donde deben

Código PHP:
Ver original
  1. switch($_SESSION["auth"]) {
  2.     case 'Coordinador':
  3.         require_once 'pagina_coordinador.php';
  4.         break;
  5.     case 'Supervisor':
  6.         require_once 'pagina_supervisor.php';
  7.         break;
  8.     case 'Encuestador':
  9.         require_once 'pagina_encuestador.php';
  10.         break;
  11. }

saludos!
__________________
More about me...
~ @rhyudek1
~ Github
  #5 (permalink)  
Antiguo 29/06/2010, 11:22
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
De acuerdo Respuesta: condicionar o personalizar usuarios de sesion

otra opcipción es usando binarios

http://my2bits.wordpress.com/2006/12...s-de-usuarios/


saludos
__________________
gerardo
  #6 (permalink)  
Antiguo 29/06/2010, 11:26
 
Fecha de Ingreso: septiembre-2008
Mensajes: 52
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: condicionar o personalizar usuarios de sesion

ehm!!.... gracias, esta bueno, pero si escribo la url donde me lleva a la plataforma de supervisor estando en perfil de encuestador me lo muestra igual, la idea es que no pueda acceder a supervision si soy encuestador y viceversa!

saludos
  #7 (permalink)  
Antiguo 29/06/2010, 11:29
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: condicionar o personalizar usuarios de sesion

bueno si es informacion privada en cada uno de los archivos solo valida que sea del grupo que puede ver la informacion
Código PHP:
Ver original
  1. if($_SESSION["auth"] == "Coordinador"){
  2.   // mostrar pagina
  3. }else{
  4.   echo "usted no tiene permiso para revisar esta pagina!";
  5. }

@chalchis.. muy interesante el tema creo que lo he visto en funcionamiento en unos cuantos juegos online!.. gracias por el aporte.
__________________
More about me...
~ @rhyudek1
~ Github
  #8 (permalink)  
Antiguo 29/06/2010, 11:45
 
Fecha de Ingreso: septiembre-2008
Mensajes: 52
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: condicionar o personalizar usuarios de sesion

Sí, interesante lo de Binarios!

Gracias HIDEK, lo puse de esta forma:

if($_SESSION["s_cargo"] =="Coordinador")
{
header("Location: ../Plataforma_coordinacion/sector.php");
}
else
{
echo "Perfil de coordinador no es valido para acceder a esta pagina";
}
if ($_SESSION["s_cargo"] =="Encuestador")
{
header("Location: ../plataformaEncuesta/encuesta.php");
}
else
{
echo "Perfil de encuestador no es valido para acceder a esta pagina";
}

pero sigo con el problema de la redireccion via URL!, me sigue lanzando a la pagina donde no debiera llegar!!

saludos
  #9 (permalink)  
Antiguo 29/06/2010, 11:49
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: condicionar o personalizar usuarios de sesion

bueno eso que haces esta mal :P
ya que debes preguntar por todos los perfiles antes de enviar datos al navegador o el header no te funcionara
Código PHP:
Ver original
  1. if($_SESSION["s_cargo"] =="Coordinador") {
  2.     header("Location: ../Plataforma_coordinacion/sector.php");
  3. }elseif ($_SESSION["s_cargo"] =="Encuestador") {
  4.     header("Location: ../plataformaEncuesta/encuesta.php");
  5. }else {
  6.     echo "Perfil no es valido para acceder a esta pagina";
  7. }
intentalo asi pero recuerda que lo que te dije en el post anterior es que en cada pagina valides.. en este caso en el archivo ../Plataforma_coordinacion/sector.php deberias poner un

Código PHP:
Ver original
  1. if($_SESSION["auth"] == "Coordinador"){
  2.   // resto del codigo
  3. }else{
  4.   echo "usted no tiene permiso para revisar esta pagina!";
  5. }

saludos!
__________________
More about me...
~ @rhyudek1
~ Github
  #10 (permalink)  
Antiguo 29/06/2010, 12:46
 
Fecha de Ingreso: septiembre-2008
Mensajes: 52
Antigüedad: 15 años, 7 meses
Puntos: 0
yo denuevo xD
pucha, lo siento pero es que hago todo lo que dices!!
donde tengo el codigo donde valida si el usuario existe pongo:

Código PHP:
Ver original
  1. if($_SESSION['s_cargo'] =='Coordinador')
  2.     {
  3.         header("Location: ../Plataforma_coordinacion/sector.php");
  4.     }
  5.  
  6. elseif ($_SESSION['s_cargo'] =='Encuestador')
  7.     {
  8.         header("Location: ../plataformaEncuesta/encuesta.php");
  9.     }
  10. else
  11.     {
  12.         echo "Perfil de encuestador no es valido para acceder a esta pagina";
  13.     }

para que me envie a la pagina correpondiente al perfil, luego en cada una de las carpetas; Tanto de encuestador como de supervisor y coordinador, les pongo su correspondiente codigo

Código PHP:
Ver original
  1. <?php
  2.     // si existe sesion puedo entrar a sector.php
  3.     if (isset($_SESSION['s_cargo'])=='Encuestador' )
  4.     {
  5.     header("encuesta.php");
  6.     }
  7.     else
  8.     {
  9.         echo "Usted no tiene permiso";
  10.  
  11.     }  
  12.  
  13. ?>
lo mismo para Supervision y coordinacion

ya no sé en que me caigo xD
saludos y gracias!!

se me fue!! el codigo funciona, solo que en la redireccion me envia a donde se supone no debe entrar!

encontre algo!!:. hago lo mismo pero le quito los "isset" osea va así:
Código PHP:
Ver original
  1. <?phpsession_start();  
  2.  // si existe sesion puedo entrar a sector.php    
  3. if ($_SESSION['s_cargo']=='Encuestador' )    
  4. {    
  5.          header("encuesta.php");    
  6. }    
  7. else    
  8. {        
  9.          echo "Usted no tiene permiso";    
  10. }    ?>

con la diferencia que al redireccionar la direccion entra y me envia el mensaje de que no tengo permiso! arriba de la cabezera... que puedo hacer? para que en realidad aparte del mensaje me bloquee el acceso a esa pagina?

saludos

Última edición por GatorV; 29/06/2010 a las 13:41
  #11 (permalink)  
Antiguo 29/06/2010, 12:58
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: condicionar o personalizar usuarios de sesion

Código PHP:
Ver original
  1. if (isset($_SESSION['s_cargo'])=='Encuestador' ) // eso esta mal tambien

isset devuelve un boleano
ahi le dices si encuestador es trueo false
intenta asi
Código PHP:
Ver original
  1. <?php
  2.     // si existe sesion puedo entrar a sector.php
  3.     if (isset($_SESSION['s_cargo'])) {
  4.         if($_SESSION['s_cargo'] == 'Encuestador'){
  5.             header("encuesta.php");
  6.         }else{
  7.             echo "Usted no tiene permisos";
  8.         }
  9.     }else {
  10.         echo "No ha iniciado session";
  11.     }
  12. ?>
__________________
More about me...
~ @rhyudek1
~ Github
  #12 (permalink)  
Antiguo 29/06/2010, 13:11
 
Fecha de Ingreso: septiembre-2008
Mensajes: 52
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: condicionar o personalizar usuarios de sesion

HIDEK te pasaste por tu tiempo y disposicion!!
encontré la solucion!!
me pasa que cuando enviaba mensajes con else! me mostraba la pagina más el mensaje!!
entonces lo que hice fue lo siguiente

Código PHP:
Ver original
  1. <?php
  2.  if ($_SESSION['s_cargo']=='Coordinador' )
  3.     {
  4.         header("sector.php");
  5.     }
  6.     //si no existe logeado redirecciono a la página de login
  7.     else
  8.     {
  9.         echo "ACESSO RESTRINGIDO PARA USUARIOS HABILITADOS";
  10.         echo "<HTML><head><body> <a href='javascript:history.back()'>Volver</a></body></head></html>";
  11.         exit;
  12.     }  
  13. ?>

nosé si teoricamente este bien!!... he probado entrar via url! y via linkeados!! y me funciona de perillas!
muchas gracias por todo!!

Etiquetas: personalizar, 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 21:40.