Hola, tengo el siguiente codigo de un sistema de usuarios
1. fichero de login:
Código:
<table>
<tr>
<form method="post" enctype="multipart/form-data" action='comproba.php'>
<td>Login:</td> <td><input name="usuari" value="login... " type="text" size="30" /></td>
<td>Password:</td> <td><input name="password" value="El password" type="password" size="30" /></td>
<td><input type="submit" value="Entrar" name="enviar" /></td>
</form>
</tr>
</table>
2. fichero de comprobacion de datos (comproba.php)
Código:
<?php
ob_start();
session_start();
include 'php/conexio.php';
$login =$_POST['usuari'];
$pass =$_POST['password'];
mysql_real_escape_string($login);
mysql_real_escape_string($pass);
$query = "SELECT *
FROM usuari
WHERE nom='".$login."' and passwd = '".$pass."'";
$result=mysql_query($query) or die ((mysql_error()));
if(mysql_num_rows($result)>0)
{
$_SESSION['login']=$login;
session_unset($_SESSION['error_login']);
header("Location:index.php");
ob_end_flush();
}
else
{
//session_unset();
//session_destroy();
$_SESSION['error_login']="logeo incorrecto";
header("Location:login.php");
}
mysql_close($conexio);
ob_end_flush();
?>
y finalmente, el código apra comprobar si te has logeado a cada página
Código:
<?php
ob_start();
session_start();
if(!isset($_SESSION['login']))
{
$_SESSION['error_login']="Error al logueig - index.php ".session_name();
header("Location:login.php");
ob_end_flush();
}
else
{
?>
El problema es que en la parte donde comprueba si estas logeado redirige al login como si no hubira pasado la comprobación, cosa que si hace, es decir, dice que la variable $_SESSION['login'] no esta inicializada