bueno la verdad es que no te deberia dar la tarea hecha, pero es molesto no saber como hacer las cosas, asi que aqui va, te doy un codigo que te permite validar en MySQL si el usuario existe, tambien si ha introducido incorrectamente su constraseña 3 veces se bloquea el usuario en la base de datos, y ademas trabaja con sesiones.
bueno espero que te sirva
Código PHP:
<?
#Conectamos con MySQL
$conexion = mysql_connect("localhost","root","")
or die ("Fallo en el establecimiento de la conexión");
#Seleccionamos la base de datos a utilizar
mysql_select_db("mi_DB")
or die("Error en la selección de la base de datos");
$nom_get = $_POST["user"];
$pass_get = $_POST["oculto"];
if($nom_get == ""){
header("Location: principal.php?errorusuario=si");
}
else{
$resulta = mysql_query("select * from login");
while($rowd = mysql_fetch_array($resulta))
{
$id_usuarioa = $rowa["id_usu"];
$usera = $rowa["nombre"];
if($user != nom_get )
{
header("Location: principal.php?errorusuario=si");
}
}
}
/*******valido si la contraseña es incorrecta para un usuario valido y sumo 1 intento y bloqueo si tiene 3 intentos******/
$result3 = mysql_query("select * from login where nombre='$nom_get'" );
while($rowb = mysql_fetch_array($result3))
{
$id_usuariob = $rowb["id_usu"];
$user = $rowb["nombre"];
$pass = $rowb["contra"];
if($id_usuariob ==""){
header("Location: principal.php?errorusuario=si");
}
else
{
if($pass != $pass_get){
//si la contraseña es incorrecta para user, se incrementa el intento
$sql = mysql_query("update login set intentos = intentos + 1 where id_usu = '$id_usuariob'");
$sql2 = mysql_query("select intentos from login where id_usu = '$id_usuariob'");
while($rowx = mysql_fetch_array($sql2)){
$intentox = $rowx["intentos"];
//si esta escribiendo un user valido y una pass incorrecta, valida los intentos y si tiene mas de
//3, bloquea la cuenta, si tiene menos, arroja un error de usuario
if($intentox >=3){header("Location:bloqueado.htm");}
if($intentox < 3){header("Location: principal.php?errorusuario=si");}
}
}
if($pass == $pass_get){
$sql2 = mysql_query("select intentos from login where id_usu = '$id_usuariob'");
while($rowc = mysql_fetch_array($sql2)){
$intento = $rowc["intentos"];
}
if($intento >=3){header("Location:bloqueado.htm");}
if($intento <3){
// si antes de los 3 intentos el usuario esta correcto, reseteo los intentos a 0
$sql = mysql_query("update login set intentos = 0 where id_usu = '$id_usuariob'");
session_start();
session_register('usuario');
$usuario = $id_usuariob;
header ("Location: principal.php?usuariovalido=si");
}
}
}
}
/*************FIN VALIDACION Contraseña incorrecta, user correcto***********/
mysql_close($conexion);
?>
Luego lo que tu deseas hacer es verificar si el usuario esta logueado. y lo debes hacer de la sigueinte forma:
Código PHP:
<?
session_start();
if ($_SESSION['usuario']=""){
header ("Location: index.php");
exit;
}
else{
header("Location:Registrado.php");
}?>
La Password viene encriptada en MD5, por eso la paso por un campo oculto, pero eso te toca a ti, haciendo crujir las neuronas las cosas salen mejor
ojala que te sirva, Saludos