Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/01/2009, 11:34
Avatar de acoevil
acoevil
 
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 9 meses
Puntos: 32
Pregunta Testeando la entrada al sitio

Hola quetal saludos a todos los foreros que ayudan a crecer cada vez mas esta comunidad.

Lo que quiero es que me aconsejen para mejorar el codigo de ingreso ami sitio web como la encriptacion de contraseñas entre otros aspectos de seguridad importantes que deberia mejorar para que fuera mas seguro aqui va el codigo

Código PHP:
<?php
session_start
();
require(
"DB.php");

    
//Si el resultado de la funcion es false esta incomplo el form
    
if(!validar($_POST))
    {
    
    
header("location:index.php?mensaje=Error:Los datos se encuentran incompletos");
    }
    
    else
    {
            
        
        
//estraigo las variables $_POST es un array asociativo
        
extract($_POST); 
        
//encripto con sha1 $login y $password ->unidireccionalmente
        
        
$clave=sha1($clave); 
        
//verifico si los datos de login y  password estan registrados 
        
$verification=mysql_query("
        select login,clave from usuarios where login='$login' and clave='$clave'"
);
        
            
//si hubo coincidencias
            
if(mysql_num_rows($verification)>0)
            {
                
//si usuario y login coinciden 
                
require('funciones.php');
                
funciones_inactividad_tiempo($login);
                
//registro variables de session
                //registro la hora de entrada (se puede usar para desloguear por inatividad)
                
$hora_entrada=date("H:i:s");
                
session_register("login","hora_entrada");
                
/*******VERIFICO PERMISO DE USUARIOS************/
                //        1->usuarios normal
                //        12->moderador
                //        12345->administrador
            
                //compruebo los permiso del usuarios legeado
                
$permisos=mysql_query("
                select permisos from usuarios where login='$login' and clave='$clave'"
);
                if(
mysql_num_rows($permisos)>0)
                {
                    while(
$row=mysql_fetch_array($permisos))
                    {
                        
$permiso=$row['permisos'];
                        
                            
                    }
                    
//despues de obtener los permisos hago lo redirecciono
                    
if($permiso==1
                    {
                        
header("location:panel.php?seccion=usuarios");
                        
$seccion=usuarios;
                        
session_register("seccion");
                        
session_register("login"); 
                        
//registro una variable de session llamada seccion por si el usuarios quiere                              escojer
                        //otro tipo de permiso, despues comparo las dos seccion en module_users.php
                    
}
                    elseif(
$permiso==12)
                    {
                        
header("location:panel.php?seccion=moderadores");
                        
$seccion=moderadores;
                        
session_register("seccion");
                        
session_register("login");
                    }
                    elseif(
$permiso==12345)
                    {
                        
header("location:panel.php?seccion=admin");
                        
$seccion=admin;
                        
session_register("seccion");
                        
session_register("login");
                    }
                        
                        
                        
                        
                    
                }
                
                
//si no se encuentrn permisos dar opcion de contacto con el administrador para corregir            
                
else
                {
                    echo 
"No se encontraron permisos";
                    
                }
                
                
                
/*******************/
                
                
                
            
}
            
//si no hubo conincidencias
            
else
            {
                
//mando de nuevo el formulario 
                
header("location:index.php?mensaje=Error:El usuario no se encuentra en la Base de datos");
            }
        
        
    }
        






//me permite validar grande cantidades de formulario en un simple ciclo foreach
function validar($array)
{
    

foreach (
$array as $key=>$value)
{
        
      if(!isset(
$key) || empty($value))
        {
         return 
false;
        }
}  
           return 
true;
    

    


}
?>