Registrazione dominio 1 GB Spazio web 20 GB traffico mensile Ampiezza banda no limit S.O. Linux Supporto php, Perl 20 MB db mySQL 10 email da 250 MB Statistiche Easy Stats
Protezione di pagine con PHP tramite variabili di sessione
proteggere aree del vostro sito con php non è troppo difficile. Si possono usare a tale scopo le variabili di sessione. L'esempio qui riportato utilizza quattro file:
più tutte le pagine protette (nel nostro esempio solamente inizia.php).
Il principio è piuttosto semplice: verificato il login, viene impostata una variabile di sessione, in particolare autorizzato, che verrà poi testata in ogni pagina da proteggere. Il controllo avviene tramite il minuscolo script check.php, che deve essere incluso in tutte le pagine riservate, prima del tag <html>. Tutti i nomi utente e password sono contenuti in un file di testo. Tale file (pasx.txt) in questo esempio, per semplificare, è leggibile in chiaro, ma si può aumentare notevolmente il livello di sicurezza criptando sia il nome utente che la password tramite, ad esempio, la codifica MD5:
http://www.php.net/manual/en/function.md5.php
Un ulteriore grado di protezione può essere introdotto posizionando il file pasx.txt all'interno di una cartella dedicata, e rendendolo inaccessibile alla lettura via web tramite il pannello di controllo sui piani windows, e tramite il file .htaccess su linux. La soluzione ottimale è naturalmente quella di conservare i dati di accesso in un database.
La struttura di pasx.txt è la seguente:
pasx.txt
prova~:~prova
test~:~test
tentativo~:~tentativo
ogni riga del file contiene una coppia (userid,passwd) separata dai caratteri speciali ~:~
Lo script login.php si preoccupa di mostrare all'utente il form di immissione dati (userid e passwd) e di verificare che i valori immessi corrispondano ad una delle coppie presenti nel file pasx.txt. Se l'utente viene riconosciuto, lo script, dopo aver inizializzato sia la sessione che la variabile autorizzato, indirizza il browser verso la prima pagina protetta inizia.php, altrimenti richiama lo script destroy.php che elimina tutto il contenuto della sessione aperta. E' importantissimo, per il funzionamento del sistema, che la pagina login.php riporti la riga di codice:
Una volta attivata la variabile di sessione autorizzato, ogni pagina che includerà lo script check.php verrà visualizzata senza problemi. Se il login non ha avuto successo, invece, viene mostrato un messaggio di errore.
Tutte le pagine protette dovranno contenere, prima del tag <html>, questa riga di codice:
<? include("check.php"); ?>
La sessione viene terminata in due modi, chiudendo il browser, o richiamando lo script destroy.php.
Gli script mostrati in questo breve esempio non sono completi, e devono essere integrati nelle vostre pagine. Qui di seguito un esempio di pagina protetta dalla variabile di sessione autorizzato:
inizia.php
<? include("check.php"); ?>
<html>
<head>
<title> Pagina di test - PHP login </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
</head>
<body>
Esempio: login effettuato con successo
</body>
</html>