Un esempio di login con accesso a database MySQL. La dispensa in origine conteneva informazioni sui metodi HTTP e su...
Description
PHP e MySQL: funzionalità Login In questa dispensa viene fornito un esempio per realizzare la funzionalità di login a un sito. Le tecnologie impiegate sono HTML, PHP e MySQL. Saranno descritti in dettaglio i passaggi per accedere al database.
Login : creazione del form HTML Il form che consente ad un utente di effettuare il login comprende solitamente i seguenti controlli: un campo testo per inserire lo username; un campo password per inserire la password; un link da utilizzare nel caso in cui si sia dimenticata la password; un link da utilizzare per effettuare la registrazione; una casella di controllo da utilizzare se si desidera essere identificati ogni volta che si torna a visitare il sito; un pulsante per sottomettere i dati. Naturalmente, ogni controllo deve essere accompagnato da una etichetta esplicativa. Per il momento, limitiamoci a considerare i campi di testo, di password e il pulsante per l’invio della richiesta e andiamo a creare il form, senza preoccuparci della grafica. login.html
Esempio Login Username Password
Quando l’utente fa clic sul pulsante “Login”, lo username e la password vengono inviati al server per l’elaborazione. Lo script PHP che si occupa dell’autenticazione dell’utente deve: ottenere username e password; accedere al database e verificare se username e password esistono e a quale utente corrispondono; 1 Bocchi Cinzia Ultimo aggiornamento: 25/11/2012
inviare la risposta al client; la risposta sarà positiva se l’utente è stato riconosciuto, negativa altrimenti.
Dopo aver deciso quale metodo HTTP utilizzare 1, torniamo al form e inseriamo il metodo nell’attributo method. Naturalmente non è consigliabile utilizzare get per l’invio di password, quindi opteremo per post. login.html
Esempio Login Username Password
Login : creazione dello script PHP Lo script PHP (login.php) dovrà effettuare le seguenti operazioni. login.php
Recupero dei dati inviati
I dati inviati mediante il form vengono memorizzati nell’array $_POST $_POST username inserito password inserita username password Assegniamo tali valori a due variabili locali: $uid = $_POST[“username”] $pwd = $_POST[“password”] Vediamo come si modifica il codice di login.html e login.php. 1
Vedere http://www.scribd.com/doc/24193963/Passaggio-di-Parametri-al-Server
2 Bocchi Cinzia Ultimo aggiornamento: 25/11/2012
login.html
Esempio Login Username Password login.php
Connessione al database
I comandi PHP necessari per connettersi al database ed eseguire interrogazioni sulle tabelle sono i seguenti:
CONNESSIONE AL SERVER
$conn = mysql_connect(“localhost”, “root”, “password”) or die(“impossibile connettersi al server”);
SELEZIONE DEL DATABASE
$db = mysql_select_db(“nomedb”, $conn) or die(“impossibile selezionare il database”); Vediamo lo script PHP modificato, supponendo che: l’host sia localhost, lo username sia root, non sia richiesta password, il nome del database sia db.
3 Bocchi Cinzia Ultimo aggiornamento: 25/11/2012
login.php
Verifica dell’esistenza dell’utente
Arrivati a questo punto, dobbiamo preparare ed eseguire la query che verifica se l’utente è registrato. Il recordset risultante deve poi essere esaminato per valutare i risultati ottenuti. Esso conterrà il record dell’utente che ha effettuato il login o nessun record, a seconda che l’utente sia o meno registrato. I passi necessari per verificare l’esistenza dell’utente sono i seguenti:
PREPARAZIONE DELLA QUERY
$query = “.............”;
ESECUZIONE DELLA QUERY
$result = mysql_query($query) or die(“query fallita: “.mysql_error());
ESTRAZIONE DEI RECORD DAL RECORD SET
while ($row = mysql_fetch_array($result)) { ............. } Per accedere a un campo del record estratto si utilizza la sintassi: $row [‘nome_campo’] Supponiamo che nel database esista una tabella utente come la seguente: utente idUtente username password 1 uid1 pwd1 2 uid2 pwd2 3 uid3 pwd3 La query in questione deve cercare nella tabella utente un record il cui username coincide con $uid e la password con $pwd: 4 Bocchi Cinzia Ultimo aggiornamento: 25/11/2012
SELECT username, password FROM utente WHERE username = ‘$uid’ AND password = ‘$pwd’; Osservate che le variabili PHP devono essere racchiuse tra apici. Vediamo lo script PHP modificato: login.php
Thank you for interesting in our services. We are a non-profit group that run this website to share documents. We need your help to maintenance this website.