Pagina di autenticazione utente

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 cookie
if (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.

Avanti >>>