Ciao a tutti.
Sto usando lo script di HTML.it Area Riservata.
http://php.html.it/script/vedi/2107/area-risevata/
Tale script è formato dai seguenti files:
-login.php (dove sta il form per il login)
-utenti.php (dove sono raccolte le password degli utenti)
-area_riservata.php (file che devo includere per ogni area riservata)
-error.htm (la pagina di errore di default)
Il file README dice testualmente "I file login.php e utenti.php DEVONO stare nella stessa directory, inoltre i file area_riservata.php e error.htm devono trovarsi nella stessa directory delle vostre pagine riservate. Se le pagine riservate sono organizzate in più directory, copiate questi due file in ogni directory che contiene pagine riservate."
Quindi se ho una struttura dei file sul server web di questo tipo:
+
|__index.htm
|__login.php
|__utenti.php
+__utenti
......|__utente1
...........|__home_utente1.htm
...........|__area_riservata.php
...........|__error.htm
Insomma i file login.php e utenti.php nella directory principale e i file area riservata.php ed error.htm nelle directory dei rispettivi utenti sussistono problemi.
Mi spiego: Se metto tutti i file dello script in una directory del server ed aggiungo un utente nel file utenti.php in effetti me lo fa loggare, ma mi reindizza sempre nella pagina di default.
Io invece voglio che ogni utente abbia una sua pagina personale di login.
Come dovrei fare?
Poi ci sarebbero anche altri problemi come quello di nn rendere pubblico il file utenti.php per ovvie ragioni di sicurezza, ma per ora voglio concentrarmi sul problema di reinderizzare ogni utente nella sua pagina personale.
Grazie a tutti dell'eventuale collaborazione.
Allego anche i codici dei file più importanti del suddetto script.
file login.php
Codice PHP:
<?
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Login</title>
</head>
<body>
<?
function check($user,$password){
include("utenti.php");
foreach($utenti as $user_ => $password_){
if (($user==$user_) AND ($password==$password_)) {
return true;
}
}
return false;
}
function form_login(){
?>
<form id="login" action="<?=$PHP_SELF?>" method="post">
<div style="text-align:center;margin-left:auto;margin-right:auto;">
Utente:
<input type="text" name="utente" size="20" maxlength="255">
Password:
<input type="password" name="password" size="20" maxlength="255">
<input type="submit" value=" OK ">
</div>
</form>
<? }
if(isset($_POST["utente"])){
if (check($_POST["utente"],$_POST["password"])){
$_SESSION["utente"] = $_POST["utente"];
$_SESSION["password"] = $_POST["password"];
echo "ora sei loggato!";
}else{
form_login();
}
}else{
form_login();
}
?>
</body>
</html>
fileutenti.php
Codice PHP:
<?
/*
Per aggiungere un nuovo utente scrivere:
$utenti["nome_utente"] = "password";
Ad esempio, se si vuole aggiungere l'utente mario con password rossi, scrivere:
$utenti["mario"] = "rossi";
*/
$utenti["admin"] = "admin";
$utenti["user1"] = "pwd1";
?>
file area_riservata.php
PS:
Per rendere una pagina privata, dovete aggiungere all'inizio di questa la seguente stringa:
<? include("area_riservata.php"); ?>
Codice PHP:
<?
session_start();
if(!isset($_SESSION["utente"])){
include("error.htm");
die();
}
?>