Capita spesso che sia necessario dividere i visitatori in desiderabili e indesiderabili, e dare la possibilità di vedere alcune pagine del sito solo a chi possiede username e password. Come farlo, ad esempio, nel linguaggio di scripting lato server PHP?
Istruzioni
Passo 1
Organizziamo il modo più semplice per proteggere le tue pagine da visitatori non autorizzati. Il portatore di informazioni sull'autorizzazione del visitatore sarà la sessione. Una sessione è un analogo dei cookie in un browser, con l'unica differenza che vengono creati non sul nostro computer, ma sul server. E vengono utilizzati per lo stesso scopo dei cookie: per memorizzare informazioni diverse su di noi mentre passiamo da una pagina all'altra di un sito. Quando chiudiamo il browser, il server distrugge questa sessione e al successivo accesso ne crea una nuova. Utilizziamo questo meccanismo server per registrare se l'utente è già connesso alla sessione o meno. Leggendo queste informazioni, quando un visitatore richiede una pagina, lo script php aprirà l'accesso a pagine protette da password o offrirà di inserire un nome utente e una password.
Passaggio 1: creare una pagina per l'inserimento di login e password. Il codice HTML del modulo di autorizzazione nella sua forma più semplice può essere simile a questo:
Login:
Parola d'ordine:
Qui (all'inizio del file) aggiungeremo il codice php che verificherà la correttezza del nome utente e della password inseriti dal visitatore. All'inizio scriveremo:
inizio_sessione ();
Questo comando avvia una nuova sessione se non ne è già stata creata una per questo visitatore.
Quindi controlliamo se la sessione ha una variabile denominata 'userName' - memorizzerà il nome se il visitatore ha già effettuato l'accesso. Se esiste una tale variabile, reindirizza il visitatore alla pagina principale (index.php) e termina l'esecuzione di questo script php:
if ($ _ SESSIONE ['nomeutente']) {
intestazione ("Posizione: index.php");
Uscita;
}
Il resto del codice verrà eseguito solo se l'utente non ha ancora inserito il nome utente e la password corretti. Indichiamo quale login e password devono essere considerati corretti:
$ validName = 'Sono mio!';
$ validPass = 'password segreta';
Quindi controlliamo per vedere se i valori inviati dal modulo corrispondono a quelli corretti. Poiché abbiamo specificato il metodo di trasferimento dei dati POST nel modulo, dovrebbero essere letti dalla variabile superglobale $ _POST:
if ($ _ POST ['userName'] == $ validName && $ _POST ['userPass'] == $ validPass) {
$ _SESSION ['userName'] = $ validName;
intestazione ("Posizione: index.php");
Uscita;
}
Qui il codice tra parentesi graffe {} verrà eseguito con i valori corretti di username e password. Sulla riga $ _SESSION ['userName'] = $ validName; ma scriviamo nella sessione una variabile denominata 'userName' contenente il login dell'utente ora autorizzato. Questo sarà il segno che l'accesso è aperto a lui ovunque finché la sua sessione attuale è valida.
E nel caso vengano inseriti dati errati nel modulo, aggiungere il messaggio appropriato:
altrimenti eco"
Il login o la password non sono corretti!
;
Tutto il codice che deve essere salvato in un file chiamato login.php sarà simile a questo:
<?php
inizio_sessione ();
if ($ _ SESSIONE ['nomeutente']) {
intestazione ("Posizione: index.php");
Uscita;
}
$ validName = 'Sono mio!';
$ validPass = 'password segreta';
if ($ _ POST ['userName'] == $ validName && $ _POST ['userPass'] == $ validPass) {
$ _SESSION ['userName'] = $ validName;
intestazione ("Posizione: index.php");
Uscita;
}
altrimenti eco"
Il login o la password non sono corretti!
;
?>
Login:
Parola d'ordine:
Passo 2
Passaggio 2: creare un blocco di autorizzazione: un file separato che verrà collegato a ciascuna pagina che necessita di protezione tramite password. Questo file conterrà solo codice php, quindi la sua estensione sarà "php", e gli daremo un nome secondo la tradizione per tali file - "auth", cioè "auth.php". E anche qui, subito dopo il tag di apertura <? Php, dovrebbe esserci un'istruzione per avviare una sessione:
inizio_sessione ();
Possiamo leggere tutte le variabili che sono memorizzate nella sessione dall'array superglobale $ _SESSION. Dobbiamo controllare il valore della variabile "userName" - se il visitatore non ha ancora effettuato l'accesso, allora non sarà nell'array e lo reindirizzeremo alla pagina per inserire il suo nome utente e password:
if (! $ _ SESSIONE ['autorizzato']) {
intestazione ("Posizione: login.php");
Uscita;
}
Tutto il codice che deve essere salvato nel file auth.php sarà simile a questo:
<?php
inizio_sessione ();
if (! $ _ SESSIONE ['admin']) {
intestazione ("Posizione: enter.php");
Uscita;
}
?>
Passaggio 3
Passaggio 3: dopo aver salvato questi file sul server, rimarranno in tutte le pagine php che devono essere protette da utenti non autorizzati per collegare il blocco di autorizzazione. Cioè, all'inizio di ogni file php, dovrai inserire questo codice:
<?php
richiedono "auth.php";
?>
E per modificare la password di accesso, dovrai modificare i valori di queste variabili nel file login.php:
$ validName = 'Sono mio!';
$ validPass = 'password segreta';
$ validName - login, $ validPass - password.