Ver Mensaje Individual
  #3 (permalink)  
Antiguo 06/07/2006, 10:59
guiweb
 
Fecha de Ingreso: septiembre-2004
Ubicación: Santiago de Chile
Mensajes: 156
Antigüedad: 22 años
Puntos: 0
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

Última edición por guiweb; 06/07/2006 a las 11:06