Verifica dell'autorizzazione
Dopo essersi registrato, un utente può accedere all'area riservata tramite un form che richiede l'inserimento del nome utente e della password:
nome del file: Login.php
<?php mysql_connect("localhost", "root", "") or die(mysql_error());Viene avviata una connessione al server mysql. Se l'operazione non riesce viene mostrato un messaggio di errore.
mysql_select_db("utenti") or die(mysql_error());Viene selezionato il data base contenente gli account degli utenti.
if(isset($_COOKIE['Autenticato'])) { $username = $_COOKIE['Autenticato']; $pass = $_COOKIE['Riconosciuto'];L'utente che è entrato in questa pagina dopo aver compilato il form di Login ha inviato anche due cookie: quello denominato «Autenticato» contiene il nome utente, mentre quello denominato «Riconosciuto» contiene la password. Se il client ha spedito questi cookie, da essi, vengono lette le credenziali: nome utente e password.
$esito = mysql_query("SELECT * FROM users WHERE username = '$username'") or die(mysql_error());Si interroga il data base per ottenere il record corrispondente all'utente autenticato. Nella variabile $esito c'è il risultato della query
while($info = mysql_fetch_array( $esito )) { if ($pass != $info['password']) { } else { header("Location: privato.php"); } }La variabile $esito è una tabella temporanea contenente tutti i record che soddisfano la condizione di ricerca. La funzione mysql_fetch_array preleva una riga della tabella e la deposita nella variabile $info, che in tal modo diventa un array associativo i cui indici sono i nomi dei campi della tabella. Da questo array associativo si preleva il campo password. Se questa password non corrisponde a quella fornita si ripropone il modulo di login, altrimenti si redireziona il browser del client alla pagina privato.php, ovvero all'area riservata.
}Termine della sezione eseguita se l'utente ha inviato il cookieif (isset($_POST['invio'])) { if(!$_POST['username'] | !$_POST['pass']) { die('completa tutti i campi.'); }Se la richiesta è pervenuta da un form si verifica se sono stati compilati i campi nome utente e password.
$esito = mysql_query("SELECT * FROM users WHERE username = '" . $_POST['username']."'") or die(mysql_error()); $esistente = mysql_num_rows($esito);con i due campi "nome utente" e "password" si interroga il data base per prelevare il record che soddisfa il requisito di ricerca. La funzione mysql_num_rows restituisce il numero di righe della tabella temporanea ottenuta dalla query.