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: 19 años, 7 meses
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