PHP verificare username e password
Per validare username e password (per esempio in uno script che esamina l'input di una form HTML di login) due sono gli standard de facto nel Web:
- La password è sempre case sensitive (esiste quindi una distinzione tra lettere maiuscole e minuscole): deve essere inserita esattamente nel modo in cui è stata settata.
- Lo username, al contrario non è case sensitive.
Per questa ragione lo username deve essere confrontato senza distinguere tra lettere maiuscole e minuscole.
Questo può essere fatto sia utilizzando
strcasecmp() (per questo si veda la sezione precedente) o convertendo prima in lettere minuscole (o maiuscole)
la password inserita e validandola successivamente con la password reale. Questo risultato si ottiene attraverso la funzione
strtolower() o
strtoupper().
Il codice precedente mostra un esempio di utilizzo di
strcmp()/
strcasecmp()e anche dell'operatore di comparazione ===.
<?php
$user = (isset($_GET['user'])) ? $_GET['user'] : '';
$pass = (isset($_GET['pass'])) ? $_GET['pass'] : '';
if (
(strtolower($user) === 'damon' && $pass === 'secret') ||
(strtoupper($user) === 'SHELLEY' && $pass === 'verysecret') ||
(strcasecmp($user, 'Christian') == 0 && strcmp($pass, 'topsecret') == 0)
) {
echo 'Login successful.';
} else {
echo 'Login failed.';
}
?>
In base ai dati inseriti nella URL (Uniform Resource Locator) della chiamata dello script, l'operazione di login può andar a buon fine o meno. La URL che segue conclude con successo
l'operazione di login (è necessario cambiare la porzione relativa al servername):
http://servername/comparelogin. php?user=cHRISTIAN&&pass=topsecret
Al contrario, l'esempio di login seguente non si conclude con successo:
http://servername/comparelogin. php?user=Christian&&pass=TopSecret
Attenzione
Fornire username e password attraverso GET non è una buona prassi; al contrario viene normalmente preferito POST. Nonostante questo, nell'esempio si utilizza GET con la finalità di testare quello che è stato spiegato.
Informazioni sull'autore
Sergio Ferraiolo
Descrizione:
Web Master di webdesignfirenze.com, titolare di web.at.work che ha realizzato il sito.
Mansioni: Programmatore, web designer e Analista