Tema: sesiones php
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/02/2010, 09:59
otacon3784
 
Fecha de Ingreso: diciembre-2009
Ubicación: La Paz - Bolivia
Mensajes: 67
Antigüedad: 14 años, 4 meses
Puntos: 1
sesiones php

Bueno perdon que moleste de nuevo pero creo que tengo un problema saben hago un pequeño sistema web y para acceder a el hago que se loguen y comienzen una session por lo que averigue por ahiy viendo manuales realice la codificacion ahora bien cual es mi problema que al loguear al usuario lo busco en una BD y obtengo sus datos y los mando por la session para poder recuperarlos despues en los lugares que necesite esa informacion el problema es que un mismo usuario puede tener dos opciones como usuario simple o como un colaborador que modifica o hace registros nuevos.
Cuando ese usuario u otro ingresa al registro con el mismo nivel aparece la info del otro usuario y eso es un problema.
A continuacion coloco el código y haber si alguien me puede ayudar con esto me esta matando:
index.php
Código PHP:
<center><h1>Autentificación para Ingresar</h1> </center>
<form name="form" id="third" class="niceform" action="control.php" method="POST"> 
<? if ($_GET["errorusuario"]=="si"){?> 
<h2>Datos incorrectos</h2>
<? }else{?> 
<h2>Introduce tu clave de acceso</h2>
<? }?>
 Usuario :
<input type="Text" name="usuario" size="15" maxlength="50">
Password :
<input type="password" name="contrasena" size="12" maxlength="50"> <br><br>
<input type="Submit" class="buttonSubmit" value="ENTRAR">
</form>
control.php
Código PHP:
<? 
  
include("conectar.php");
  
$link=Conectarse();
  
$a=$_POST["usuario"];
  
$b=$_POST["contrasena"];
  
$result=mysql_query("select nombres,pass,tipo_usuario,paterno,materno,email from usuarios WHERE nombres='$usuario' and pass='$contrasena'",$link);
  while(
$row mysql_fetch_array($result)) 
  {
     
$uno=$row["nombres"];$dos=$row["pass"];$tres=$row["tipo_usuario"];
     
$cuatro=$row["paterno"];$cinco=$row["materno"];$seis=$row["email"];          
  } 
  if ((
$b==$dos) && ($tres=="admin"))
  {
    
session_start();
    
session_register("autentificado_a","uno","dos","tres","cuatro","cinco","seis");
    
$autentificado_a "SI";
    
header ("Location: index_admin.php"); 
  }
  else if((
$b==$dos) && ($tres=="colaborador"))
  {
    
session_start();
    
session_register("autentificado_c","uno","dos","tres","cuatro","cinco","seis");
    
$autentificado_c "SI";
    
header ("Location: index_colaborador.php");
  }
  else if ((
$b==$dos) && ($tres=="usuario"))
  {
    
session_start();
    
session_register("autentificado_u","uno","dos","tres","cuatro","cinco","seis");
    
$autentificado_u "SI";
    
header ("Location: index_usuario.php");
  }
  else 
  {
    
header("Location: index.php?errorusuario=si");  
  }
  
mysql_free_result($result);
  
mysql_close($link);
?>
y para comprobar si el usuario esta en el menu que le corresponde coloco este php en cada página que quiero que vea, estas seguridades son tres dependiendo si es el admin, colaborador o usuario.pongo el ejemplo de seguridad de usuario aunque tecnicamente las tres son iguales
seguridad_u.php
Código PHP:
<?
//Inicio la sesión
session_start();
//COMPRUEBA QUE EL USUARIO ESTA AUTENTIFICADO
if ($_SESSION["autentificado_u"] != "SI") {
//si no existe, envio a la página de autentificacion
header("Location: index.php");
//ademas salgo de este script
exit();
}
?>
Según investigue no existiria problema si cada ususario entra al sistema desde una pc para cada uno.
Pero si varios usuarios quieren usar la misma máquina solo obtiene info de uno.

haber si alguien me corrige el codigo o que hago mal...