Inicio arrow Trucos y tutoriales arrow Tutoriales PHP y APACHE arrow Autentificar usuarios en base de datos
Autentificar usuarios en base de datos PDF Imprimir E-Mail

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

Comentarios
Añadir nuevoBuscar
¡Sólo los usuarios registrados pueden escribir comentarios!

Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved.

 
< Anterior   Siguiente >
 
 

Encuesta

¿ Que opinas de nuestro nuevo diseño Web ?
 

Estan en Linea

Hay 1 invitado en línea