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