Hola que tal, te dejo este codigo, que lo modifique un poco y le añadi un poco de mejora, para
que lo cheques y me dices si se soluciono algo.
Código PHP:
Ver original<?php
include("conexion.php");
$password=md5($_POST['password']);
if($usuario==NULL|$password==NULL) {
echo "<script> alert (\"Te falta llenar uno o mas campos verificalo\"); </script>";
echo "<script language=Javascript> location.href=\"../index.php\"; </script>";
}
if($usuario!= "" && $password!= "") {
$sql = mysql_query("SELECT usuario FROM usuarios WHERE usuario='$usuario'");
//si el usuario existe? (si devolvio linea con ese usuario.)
$sql = mysql_query("SELECT usuario, password, nivel, status FROM usuarios WHERE usuario='$usuario' and password='$password'");
//si el usuario con el password coinciden? __ loggeo correcto.
/*este if ya no seria necesaria, puesto que la comprobacion esta en el query.*/
// if($f['password'] == $password)
$_SESSION['usuariologueado'] = $f['usuario'];
// esta podria ser el problema, no se como uses esta pero si el usuario cerro la ventana, nunca
// entro a la parte donde se actualiza el STATUS a desconectado. Y es por eso que el
// $_GET['status'] estaria en este momento de 'conectado', aunque no se para que usas esa
// linea en realidad.
$status=$_GET['status'];
$query = mysql_query("UPDATE usuarios SET status='conectado' WHERE usuario = '$usuario'");
if($f['nivel'] == 'administrador'){
header('location:../paneldecontrol.php'); }elseif($f['nivel'] == 'usuario'){
header('location:../paneldeusuario.php'); }
}else{
echo "<script> alert (\"Password incorrecto\"); </script>";
echo "<script language=Javascript> location.href=\"../index.php\"; </script>";
}
}else{
echo "<script> alert (\"El usuario no existe\"); </script>";
echo "<script language=Javascript> location.href=\"../index.php\"; </script>";
}
}
?>