Vi posto il codice:
sulla pagina col login (fr_area.php) ho questo php e il form di login:

Codice PHP:
<?php 
if(isset($_GET['error']) and $_GET['error']==1
include(
"fr_error.htm"); 
?> 

//form del login
<form id="flogin" action="area_riservata.php" method="post">
    <input name="login" type="text" id="login">
    <input name="pwd" type="password" id="pwd">

Nella pagina: area_riservata.php (che fa il controllo del login) il codice è:
Codice PHP:
<?php 
session_start
(); 
$login=trim($_POST['login']); 
$pwd=trim($_POST['pwd']); 

include(
"utenti.php"); 

if(isset(
$utente[$login]) and $utente[$login]==$pwd){ 
//loggato con successo 
$_SESSION['ok']=1
header("Location: fr_areariservata.php");  //la pagina protetta, se il login funziona
exit; 

else{ 
//non loggato 
header("Location: fr_area.php?error=1");  //pagina con il login
exit; 


?>
La pagina utenti.php:

Codice PHP:
 <?php 
$utente
['admin']="admin"
?>

La pagina di errore (fr_error.htm) ha solo il testo: "Errore nel login!"


La pagina protetta (quella se il login ha successo: fr_areariservata.php)
all'inizio ha:

Codice PHP:
 <?php 
session_start
(); 
if(
$_SESSION['ok']==1){ 
?>
poi c'è tutto l'html e alla fine:

Codice PHP:
 <?php 

else{ 
header("Location: fr_area.php");  //pagina con il login
exit; 

?>