ciao
ecco la pag di login, l'ho chiamata login_3.php quindi nel link della index.php modifica il nome, la lasceri così come è, salvo modificare le cocation degli header in funzione di come chiami le varie pagine
guarda che come è la pag con gli array deve essere nella stessa cartella altrimenti devi mettere la oath al require
poi ti mando come impostare la pagina riservata
ecco la pag di login, l'ho chiamata login_3.php quindi nel link della index.php modifica il nome, la lasceri così come è, salvo modificare le cocation degli header in funzione di come chiami le varie pagine
guarda che come è la pag con gli array deve essere nella stessa cartella altrimenti devi mettere la oath al require
PHP:
<?php
ob_start();
session_start();
if (!isset($_SESSION['p']) || md5($_SESSION['p']) != $_GET['p']) {
//questo vuol dire che è stato tentato un accesso diretto tipo http://www.mio_sito.it/login_2.php
$_SESSION=array();//distruggo le sessioni e rimando alla index
header('location: index.php');//se hai modoficato il nome della index devi modificarlo anche qui
exit();
}
//con questo si evita che venga visualizzato http://www.mio_sito..... nel bw
echo "<head><title>{$_SESSION['p']}</title></head>";
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$username = addslashes($_POST['user']);
$password = sha1(addslashes($_POST['pass']));
require_once "utenti.php";//carico la pagina con l'arry degli utenti
//se chiami la pag in modo diverso da utenti devi modificare il nome anche sopra
//metto un flag a 0
$flag=0;
//ciclo l'array degli utenti per verificare se esiste
foreach($utente as $chiave => $valore){
if($chiave == $username && $password == $valore){
//se la coppia username/valore esiste metto il flag a 1
$flag=1;
}
}
if ($flag === 1) {
$_SESSION['p'] = sha1(uniqid(mt_rand()));//rivalorizzo la sessione
$_SESSION['user'] = $username;
header("Location: private.php?r={$_SESSION['p']}");//tutto ok rinvio alla privata sempre trasmettendo il la sessione anche con get
exit();
}
//password e/o username non corretti
$_SESSION=array();//distruggo le sessioni e rimando alla index
$utente=array();//non servirebbe
header('Location: index.php');
exit();
}
//se il session[p] e il get[p] sono OK mostro il form di log
echo <<<EOF
<p>da usare un user e pass registrati sul db</p>
<form name="form1" method="post" action="{$_SERVER['REQUEST_URI']}">
<table width="45%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="16%">username</td>
<td width="84%"><input name="user" type="text" id="user"></td>
</tr>
<tr>
<td>password</td>
<td><input name="pass" type="password" id="pass"></td>
</tr>
<tr>
<td> </td>
<td><input name="log" type="submit" id="log" value="log"></td>
</tr>
</table>
</form>
<p><a href="login_2.php">esci</a></p>
EOF;
ob_end_flush();
?>