Dunque per "dovere di cronaca" ti dico che nella fretta non ho avuto il tempo di provarlo, ma dovrebbe comunque funzionare. Il codice è semplice semplice (spero non contenga errori nè di sintassi nè soprattutto di concetto) e ti ho riassunto le due variabili che potrebbe tornarti utile modificare a tuo piacimento all'inizio dello script.
La pagina di login è una sola, mentre l'altro è uno script da mettere in testa a tutte le pagine php che intendi proteggere da sguardi indiscreti.
login.php
Codice PHP:
<?php
/* INSERISCI QUI LA PASSWORD CHE VUOI
IMPOSTARE PER PROTEGGERE LE AREE
(non usare questi caratteri: ' \ )
*/
$password = 'cavatappi';
/* INSERISCI QUI LA PAGINA A CUI VUOI
FARE ANDARE GLI UTENTI SE LA PASSWORD
è CORRETTA */
$pagina = 'index.php';
session_start();
if(isset($_POST['password']))
{
$psw = strip_tags($_POST['password']);
if($psw == $password)
{
$_SESSION['logged'] = 1;
header("Location: " . $pagina);
exit;
}
else
$error = "La password inserita non è corretta!\n";
}
?><html>
<head>
<title>Accesso alle aree protette</title>
</head>
<body>
<?=$error;?>
<form name="login" method="POST" action="<?=$PHP_SELF;?>">
Inserisci la password
<input type="password" name="password">
<input type="submit" name="form_send">
</form>
</body>
</html>
come vedi ho anche fatto un semplice modulo in html, puoi personalizzarlo come credi, l'importante è che il method (POST), l'action <?=$PHP_SELF;?> e il nome del campo "password" rimangano invariati. =)
Questo invece è lo scriptino (diminutivo di script forgiato sul momento) da includere in testa ad ogni pagina protetta. Nota che le pagine, a questo punto, dovranno avere estensione .php
(non preoccuparti: il codice php non viene stampato ma il risultato sul browser sarà puro html)
Codice PHP:
<?php
session_start();
if(!isset($_SESSION['logged']) || $_SESSION['logged'] != 1) header("Location: login.php");
?>
<!-- Qui inserisci la pagina HTML che vuoi che sia protetta --!>
Rinnovo la mia speranza che funzioni tutto, se c'è qualche problema posta pure che risolvo al più presto!