Re: Authenticate an user: Help!!!
| From: | Richard | Date: | Wed, 07 Nov 2001 01:55:28 +0000 |
| Subject: | Re: Authenticate an user: Help!!! | ||
| References: | 1 2 3 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-73665@lists.php.net to get a copy of this message | ||
Hola Mercedes te envio un script que tengo para que veas si te sirve, la
autentificaciòn debe de estar a fuerza en el inicio de la pagina que
quieres proteger.
la pagina que quiero proteger es la siguiente:
[mipc@mipc]$ more admin.html
<? include("acceso.inc.class.php");?>
<script>
var target="/~admin/index.htm"
window.location=target
</script>
Como ves esa pagina solo hace referencia a otra pero no cambia nada, yen la
primera linea, antes de enviar los headers hago la autentificacion. en este
ejemplo uso una base de datos en postgress para checar los usuarios pero lo
puedes reemplazar por un archivo comun.
[mipc@mipc]$ more acceso.inc.class.php
<?php
// Checo si $PHP_AUTH_USER tiene informacion
if (!isset($PHP_AUTH_USER)) {
header('WWW-Authenticate: Basic realm="Reportes"');
header('HTTP/1.0 401 Unauthorized');
exit;
} else if (isset($PHP_AUTH_USER)) {
$user="xxx";
$pass="xxx";
$host="localhost";
$conn = pg_Connect("host=$host port=5432 dbname=xxx user=xxx
password=xxxx");
if(!$conn)
{ echo "no hay conexion";
exit;
}
$sql = "SELECT *
FROM usuario
WHERE usuario='$PHP_AUTH_USER' and
pass='$PHP_AUTH_PW'";
$result = pg_Exec ($conn, $sql);
$num = pg_NumRows($result);
if ($num != "0") {
// echo "<P>autorizado!</p>";
// exit;
} else {
header('WWW-Authenticate: Basic realm="Reportes CADIT"');
header('HTTP/1.0 401 Unauthorized');
echo '
<html>
<head>
<title>Untitled</title>
</head>
<body bgcolor="LightSteelBlue">
<div align="center"><font color=Navy>¡ Acceso Restringido
!</font></div>
</body>
</html>
';
exit;
}
}
?>
Espero que te ayude y suerte.
Ricardo
bordoy@mac.com