En realidad yo no se mucho de PHP, así que no puedo decirte que esta bien o que esta mal con el codigo...
Pero te puedo recomendar este script que a mi me ha funcionado muy bien....
Primero, creamos la pagina de validación val.php (ponle el nombre que tu quieras)...
Código:
<?php
/* Config Section */
$pass = 'password'; // Aquí escribes el password.
$cookiename = 'valcookie'; // Esto es opcional, la validación crea un cookie, y aquí le puedes poner el nombre que tu quieras. El nombre por default es valcookie.
$expirytime = time()+3600; // Esto también es opcional. Aquí le dices al cookie cuando expira el password (en segundos). El default es 1 hora.
$msg = 'Te equivocaste, vuelve a intentarlo.'; // Esto también es opcional. Aquí especificas el mensaje de error que saldra cuando se escriba incorrectamente el password.
/* End Config */
/* Logout Stuff - Sept 5, 2005 */
if (isset($_REQUEST['logout'])) {
setcookie($cookiename,'',time() - 3600); // remove cookie/password
if (substr($_SERVER['REQUEST_URI'],-12)=='?logout=true') { // if there is '?logout=true' in the URL
$url=str_replace('?logout=true','',$_SERVER['REQUEST_URI']); // remove the string '?logout=true' from the URL
header('Location: '.$url); // redirect the browser to original URL
}
show_login_page('');
exit();
}
$logout_button='<form action="'.$_SERVER['REQUEST_URI'].'" method="post"><input type="submit" name="logout" value="Logout" /></form>';
$logout_text='<a href="'.$_SERVER['REQUEST_URI'].'?logout=true">Logout</a>';
/* End Logout Stuff */
/* FUNCTIONS */
$encrypt_pass=md5($pass); // encrypt password
function setmycookie() {
global $cookiename,$encrypt_pass,$expirytime;
setcookie($cookiename,$encrypt_pass,$expirytime);
}
function show_login_page($msg) {
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Authorization Required</title>
<style type="text/css">
<!--
.error {color:#A80000}
body {font:90% Verdana, Arial, sans-serif;color:#404040}
#wrapper {width:800px;margin:0 auto;border:1px solid #606060}
#main {text-align:center;padding:15px}
#header {font:bold 130% Verdana, Arial, sans-serif;color:#DDDDDD;width:100%;height:5em;text-align:center;background:#A80000;line-height:5em}
#mid {margin:5em 0 5em 0}
#footer {font-size:75%;text-align:center;width:100%}
input {border:1px solid #606060; background: #DDDDDD}
-->
</style>
</head>
<body>
<div id="wrapper">
<div id="header">Autorización Requerida</div>
<div id="main">
<div id="mid">
<form action="" method="POST">
Password: <input type="password" name="password" size="20">
<input type="submit" value="Login">
<input type="hidden" name="sub" value="sub">
</form>
<div class=error><?=$msg?></div>
</div>
</div>
</div>
<div id="footer">Autentificado Por <a href="http://www.zann-marketing.com/sas/">Simple Script de Validación</a> Copyright © 2006.</div>
</body>
</html>
<? }
/* END FUNCTIONS */
$errormsg='';
if (isset($_POST['sub'])) { // if form has been submitted
$submitted_pass=md5($_POST['password']); // encrypt submitted password
if ($submitted_pass<>$encrypt_pass) { // if password is incorrect
$errormsg=$msg;
show_login_page($errormsg);
exit();
} else { // if password is correct
setmycookie();
}
} else {
if (isset($_COOKIE[$cookiename])) { // if cookie isset
if ($_COOKIE[$cookiename]==$encrypt_pass) { // if cookie is correct
// do nothing
} else { // if cookie is incorrect
show_login_page($errormsg);
exit();
}
} else { // if cookie is not set
show_login_page($errormsg);
exit();
}
}
?>
Y ahora la pagina de entrada... en cada pagina que sea validada por el script escribes el siguiente codigo en la primer linea:
Código:
<?
require('val.php');
?>
Y listo, esto te funcionara muy bien.
Saludos