Autenticare gli utenti (II Parte)
Pagina 2 di 4
Si comincia col PHP
Ora che abbiamo la tabella nella quale memorizzare i dati, possiamo iniziare a scrivere un po’ di codice PHP. Stabiliamo, per essere ordinati, che creeremo tre piccoli script PHP, in tre diversi file.
Il primo conterrà semplicemente i dati di connessione al database, mentre il secondo invierà gli header, ed il terzo permetterà di iscriversi agli utenti che ancora non compaiono nella tabella. La struttra dei tre file è molto semplice; vediamo dapprima di scrivere il codice del file di configurazione da includere negli altri due, e che chiameremo conf.inc.php:
<?
$data = date ("d/m/Y H:i");
con l’istruzione date ricaveremo facilmente la data
nel formato GG/MM/AAAA (giorno, mese, anno). Scriviamo ora i
fondamentali dati per connettersi correttamente al server
MySQL:
$server = "localhost"; $utente = "root"; $db_pass = ""; $datab = "gol61"; $tabella = "anagrafica";
oltre all’indirizzo dell’host e i dati
dell’utente, abbiamo conservato in due variabili quelli
con il nome del database da utilizzare e quello della
tabella. Volendo personalizzare questi dati sarà
sufficiente intervenire sulle due variabili.
Com’è ormai nostra abitudine, creeremo una
piccola funzione al’interno di questo file, chiamata
errore_server(). Questa funzione servirà semplicemente
ad informarci minuziosamente su eventuali errori in fase di
connessione e di interrogazione.
function errore_server()
{
echo "<b>Il database MySql sembra
non rispondere...</b><br>MySql
dice:<br><font color=red>";
echo mysql_error();
echo "</font><br>pregasi
<a href="mailto:iltuo@indirizzo.com">
segnalare</a> il problema";
}
A questo punto non dobbiamo fare altro che connetterci al
server e selezionare, direttamente in questa fase, il
database da utilizzare.
$connessione = @mysql_connect ($server, $utente, $db_pass)
or die (errore_server ());
$db = mysql_select_db ($datab, $connessione)
or die (errore_server ());
?>
Salviamo il file conf.inc.php in una cartella del nostro
webserver, e pensiamo a creare quello che sarà
l’indice della cartella stessa.
Sei autorizzato? Controlliamo…
Il file index.php avrà l’importantissimo compito di inviare gli headers e, una volta che l’utente abbia inserito i dati richiesti, di verificare che questi siano presenti nel database.
Per fare una prova, e visualizzare tutti gli headers di una richiesta http, possiamo prendere in prestito un’esempio direttamente dal manuale PHP:
<?
$headers = getallheaders();
while (list ($header, $value) = each ($headers)) {
echo "$header: $value<br />
";
}
echo $REMOTE_ADDR;
?>
Questo piccolo ciclo while approfitta dell’istruzione
getallheaders() per restituire i valori dell’array
definito dall’istruzione stessa. Gli headers sono in
realtà di molteplici tipi, e quello che ci interessa
si chiama $PHP_AUTH_USER. Ricordiamo che gli headers vanno
inviati al browser prima di qualsiasi altra cosa, anche di un
solo semplice carattere, onde evitare spiacevoli errori. Ecco
quindi le prime righe del nostro file index.php
<?
if (!isset($PHP_AUTH_USER)) {
header('WWW-Authenticate: Basic realm="Area privata"');
header('HTTP/1.0 401 Unauthorized');
echo 'Richiesta autorizzazione.';
exit; }
- Articolo precedente Autenticare gli utenti (I Parte)
- Articolo successivo Autenticare gli utenti (III Parte)