Hola:
Estoy teniendo un error extraño que no logro entender.
Luego de mucho leer y probar, logre crear mi script de autentificacion (Gracias Cluster por tu ayuda), el script funciona correctamente y hace lo que debe hacer, es decir, no permitir el acceso a zonas seguras si no se ha identificado el usuario.
Aca lo explico un poco:
Primero veo los datos ingresados en el formulario de ingreso y veo que el usuario exista.
Codifica.php
Código PHP:
<? include("conex.php");
$login=$_POST['login'];$password=$_POST['password'];
$consultar=mysql_query("select * from usuarios where rut_user='".$login."' and pass='".$password."'");
if (mysql_num_rows($consultar)==1)
{
session_start();
$_SESSION['id']=session_id();
$_SESSION['login']=$login;
$_SESSION['password']=$password;
$_SESSION['autentificado']="si";
$_SESSION['tipo']=mysql_result($consultar,0,"tipo_user");
header("Location: ../index2.php");
}
else
{
header("Location: ../ingresar.php?error=si");
exit();
} ?>
ya tengo mi sesion creada y aca esta el archivo que genera php para guardar la sesion
Código PHP:
id|s:32:"e3ffcb83d80bb99545287d813198bf24";
login|s:5:"admin";password|s:5:"admin";
autentificado|s:2:"si";tipo|s:1:"1";
Ahora bien, a cada pagina segura le agrego
Código PHP:
include ("seguridad.php");
y aca esta el archivo
seguridad.php
Código PHP:
<?
session_start();
if($_SESSION['autentificado']!="si")
{
header("Location: ingresar.php?error=si");
exit();
}
?>
Hasta ahora todo funciona correctamente.
Resulta que cree un archivo menu.php en donde se despliegan diferentes opciones dependiendo el tipo de usuario. Cuando creo la sesion tambien guardo su tipo_user.
menu.php
Código PHP:
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?
$tipo_user= $_SESSION['tipo'];
if($tipo_user=="")
echo "esta vacio";
if ($tipo_user=="1")
echo "Es Adm";
if ($tipo_user=="3")
echo "Es soporte";
?>
<table width="15%" border="1">
<tr>
<td><a href="form_usuarios.php" target="principal">Ingresar Usuarios</a></td>
</tr>
<tr>
<td>Opcion 2</td>
</tr>
<tr>
<td>Opcion 3</td>
</tr>
<tr>
<td><a href="salir.php">Salir</a></td>
</tr>
</table>
</body>
</html>
pero resulta que no logro recuperar el valor que tiene la sesion en el campo "tipo". Lo he hecho traspasando el valor de $_SESSION['tipo'] a una variable $tipo_user pero tampoco muestra nada, siempre me dice que el campo esta vacio.
No se si habra que modificar algo en el php.ini.
Uso Register_globals en off, tengo el php como modulo de apache.
Ojala se entienda bien y me puedan ayudar.
Gracias
Salu2 !!!