Connect with us

Tutoriales Varios

Autentificar usuarios en base de datos

Puedes hacer lo siguiente:

Creas una tabla en tu base de datos (para el ejemplo: MySQL) donde tendras al menos el nombre de usuario (usr_login ) y su contraseña (usr_pass ).

es una buena práctica que pongas la conexión a la base de datos en un módulo aparte que sea llamado desde todas las paginas que usan la base de datos (en el ejemplo me conecto directamente)

crea un módulo (yo lo llamo seguridad.php ) y coloca el siguiente código en él:

Código PHP:

<?

/* Autenticación

*/

  $muerte = ‘Acceso Denegado!!!!  :-p’;

  if(!isset($PHP_AUTH_USER)) {

    header(‘WWW-Authenticate: Basic realm="Nombre del Site"’);

    header(‘HTTP/1.0 401 Unauthorized’);

    echo $muerte;

    exit;

  } else {

    // valido mi clave en el servidor …

    if (@$db_link = mysql_connect("localhost", "usuario", "clave")) {

        @mysql_select_db("base_de_datos");

    }

    $sql = "select * from usuarios

                where ((usr_login = ‘$PHP_AUTH_USER’)

                     and (usr_pass = ‘$PHP_AUTH_PW’)) ";

    $qpass= mysql_query($sql, $db_link);

    if(mysql_num_rows($qpass)<>1)  {

      echo $muerte;

      exit;

    }

  }

?>

Ahora al principio de cada una de tus páginas que necesite autenticar al usuario colocarás

Código PHP:

<? include("seguridad.php");?>

Para terminar te recuerdo que queda en tus manos el mejorar el código, por ejemplo puedes validar un límite de intentos fallidos, registrar fecha y hora de acceso del usuario así como las páginas "autenticadas" que ha visitado. También puedes darle más seguridad al código validando errores en el SQL, y muchos etcés …

Nota: Este tipo de autentificación es via HTTP y funciona bajo PHP instalado como Módulo de Apache y no como CGI

Diginota Es una Revista On-line, Internet, tecnologías, con los trucos y Notas insólitas, extrañas y mucho más... . Proporcionamos Noticias Técnicas, Revisiones, consejos, Cómo Hacer, todo esto y mucho más. Desde el 2005. Si quieres saber más de diginota En mis redes sociales a pesar de estar en varias, Soy mas activo en Twitter y de allí dispuesto a ayudarte en lo que pueda.