Un tutorial per il principiante! Non importa dove vai su Internet, c'è un punto fermo che trovi quasi ovunque - la registrazione dell'utente. Se hai bisogno che i tuoi utenti si registrino per sicurezza o solo per una funzionalità aggiunta, non c'è motivo di non farlo con questo semplice tutorial. In questo tutorial andremo oltre le basi della gestione degli utenti, finendo con una semplice Area membri che puoi implementare sul tuo sito web.
Se hai bisogno di aiuto extra o vuoi una scorciatoia, controlla la gamma di fornitori di servizi PHP su Envato Studio. Questi sviluppatori esperti possono aiutarti con qualsiasi soluzione, da una rapida soluzione ai bug, allo sviluppo di un'intera app da zero. Quindi, basta consultare i fornitori, leggere le recensioni e le valutazioni e scegliere quello giusto per te.
In questo tutorial passeremo attraverso ogni fase della creazione di un sistema di gestione degli utenti, insieme a un sistema di messaggistica privata tra utenti. Lo faremo usando PHP, con un database MySQL per memorizzare tutte le informazioni dell'utente. Questo tutorial è rivolto ai principianti assoluti di PHP, quindi non è necessaria alcuna conoscenza preliminare - in effetti, potresti essere un po 'annoiato se sei un utente esperto di PHP!
Questo tutorial è inteso come introduzione di base alle sessioni e per l'utilizzo di database in PHP. Anche se il risultato finale di questo tutorial potrebbe non sembrare immediatamente utile a te, le abilità che ottieni da questo tutorial ti permetteranno di produrre un tuo sistema di appartenenza; adattarsi alle proprie esigenze.
Prima di iniziare questo tutorial, assicurati di avere a disposizione le seguenti informazioni:
Se non disponi di queste informazioni, il tuo provider di hosting dovrebbe essere in grado di fornirti questo.
Ora che abbiamo rimosso le formalità, iniziamo con il tutorial!
Come affermato nell'Introduzione, è necessario un database per continuare oltre questo punto nel tutorial. Per cominciare, creeremo una tabella in questo database per memorizzare le informazioni dell'utente.
La tabella di cui abbiamo bisogno memorizzerà le informazioni dell'utente; per i nostri scopi utilizzeremo una tabella semplice, ma sarebbe facile memorizzare più informazioni in colonne aggiuntive, se questo è ciò di cui hai bisogno. Nel nostro sistema abbiamo bisogno delle seguenti quattro colonne:
In termini di database, a Chiave primaria è il campo che identifica in modo univoco la riga. In questo caso, ID utente
sarà la nostra chiave primaria. Dato che vogliamo che questo incrementi ogni volta che un utente si registra, useremo l'opzione speciale MySQL - Incremento automatico
.
La query SQL per creare la nostra tabella è inclusa di seguito e verrà solitamente eseguita nella scheda "SQL" di phpMyAdmin.
CREATE TABLE 'users' ('UserID' INT (25) NOT NULL AUTO_INCREMENT PRIMARY KEY, 'Username' VARCHAR (65) NOT NULL, 'Password' VARCHAR (32) NOT NULL, 'EmailAddress' VARCHAR (255) NOT NULL);
Per semplificare la creazione del nostro progetto, creeremo un file di base che possiamo includere in ciascuno dei file che creiamo. Questo file conterrà le informazioni di connessione al database, insieme ad alcune variabili di configurazione che ci aiuteranno nel percorso.
Inizia creando un nuovo file: base.php
, e inserisci il seguente codice:
Diamo un'occhiata ad alcune di quelle linee dovremmo? Ci sono alcune funzioni che abbiamo usato e non ancora spiegate, quindi diamo un'occhiata a loro rapidamente e ne capiamo il senso - se comprendi già le basi di PHP, potresti saltare questa spiegazione.
session_start ();
Questa funzione avvia una sessione per il nuovo utente, e più avanti in questo tutorial memorizzeremo le informazioni in questa sessione per permetterci di riconoscere gli utenti che hanno già effettuato l'accesso. Se una sessione è già stata creata, questa funzione lo riconoscerà e porterà quella sessione oltre alla pagina successiva.
mysql_connect ($ dbhost, $ dbuser, $ dbpass) o die ("Errore MySQL:". mysql_error ()); mysql_select_db ($ dbname) o die ("Errore MySQL:". mysql_error ());
Ognuna di queste funzioni esegue un'attività separata ma collegata. Il mysql_connect
la funzione collega il nostro script al server del database usando le informazioni che abbiamo dato sopra e il mysql_select_db
la funzione sceglie quindi quale database utilizzare con lo script. Se una delle funzioni non riesce a completare, il morire
la funzione si avvierà automaticamente e interromperà lo script dall'elaborazione, lasciando agli utenti il messaggio che c'è stato un errore MySQL.
L'elemento più importante sulla nostra pagina è la prima riga di PHP; questa linea includerà il file che abbiamo creato sopra (base.php), e ci permetterà essenzialmente di accedere a qualsiasi cosa da quel file nel nostro file corrente. Lo faremo con la seguente riga di codice PHP. Crea un file chiamato index.php
, e posiziona questo codice in alto.
La prima cosa che faremo per il nostro frontend è creare una pagina in cui gli utenti possano inserire i propri dettagli per accedere, o se sono già registrati in una pagina in cui possono scegliere cosa desiderano fare. In questo tutorial presumo che gli utenti abbiano una conoscenza di base del funzionamento di HTML / CSS e pertanto non spiegherò in dettaglio questo codice; al momento questi elementi non saranno abbinati, ma saremo in grado di cambiarlo più tardi quando creeremo il nostro foglio di stile CSS.
Usando il file che abbiamo appena creato (index.php
), inserisci il seguente codice HTML sotto la riga di PHP che abbiamo già creato.
Sistema di gestione degli utenti (Tom Cameron per NetTuts) Che cosa li mostreremo?
Prima di pubblicare il resto della pagina abbiamo alcune domande da porsi:
- L'utente ha già effettuato l'accesso?
- sì - dobbiamo mostrare loro una pagina con le opzioni che devono scegliere.
- No - continuiamo sulla prossima domanda.
L'utente ha già inviato i propri dati di accesso?
- sì - dobbiamo controllare i loro dettagli, e se corretti li registreremo nel sito.
- No - continuiamo sulla prossima domanda.
Se entrambi i precedenti hanno avuto risposta No, ora possiamo assumere che dobbiamo mostrare un modulo di accesso all'utente. Queste domande sono, infatti, le stesse domande che implementeremo nel nostro codice PHP. Lo faremo nella forma di
se affermazioni
. Senza inserire nulla in nessuno dei tuoi nuovi file, diamo un'occhiata alla logica che useremo per prima.Sembra confuso, non è vero? Dividiamolo in sezioni più piccole e analizziamole una alla volta.
if (! empty ($ _ SESSION ['LoggedIn']) &&! empty ($ _ SESSION ['Username'])) // consente all'utente di accedere alla pagina principaleQuando un utente accede al nostro sito Web, memorizzeremo le sue informazioni in una sessione - in qualsiasi momento dopo questo possiamo accedere a tali informazioni in uno speciale array PHP globale -
$ _SESSION
. Stiamo usando ilvuoto
funzione per verificare se la variabile è vuota, con l'operatore!
di fronte a esso. Quindi stiamo dicendo:Se la variabile $ _SESSION ['LoggedIn'] non è vuota e $ _SESSION ['Username'] non è vuota, esegui questa parte di codice.
La linea successiva funziona allo stesso modo, solo che questa volta si usa il
$ _POST
array globale. Questo array contiene tutti i dati che sono stati inviati dal modulo di login che creeremo in seguito in questo tutorial. La linea finale verrà eseguita solo se nessuna delle precedenti dichiarazioni è soddisfatta; in questo caso mostreremo all'utente un modulo di login.Quindi, ora che capiamo la logica, prendiamo un po 'di contenuto tra quelle sezioni. Nel tuo
index.php
file, inserisci quanto segue sotto quello che hai già.Area membri
=$_SESSION['Username']?> e il tuo indirizzo email è =$_SESSION['EmailAddress']?>
. Successo"; eco "Ora stiamo reindirizzandoti all'area membri.
"; eco ""; else echo"Errore
"; eco "Siamo spiacenti, il tuo account non è stato trovato. Per favore clicca qui per riprovare.
"; else ?>Accesso membro
Grazie della visita! Effettua il login o sotto, oppure clicca qui per registrarti.
Speriamo che il primo e l'ultimo blocco di codice non ti confondano troppo. Quello di cui abbiamo veramente bisogno per rimanere incastrati ora è ciò che avete imparato in questo tutorial per il codice PHP. Ora passeremo attraverso la seconda sezione una riga alla volta, e spiegherò a cosa serve ciascun bit di codice qui.
$ username = mysql_real_escape_string ($ _ POST ['username']); $ password = md5 (mysql_real_escape_string ($ _ POST ['password']));
Ci sono due funzioni che devono essere spiegate per questo. in primo luogo, mysql_real_escape_string
- una funzione molto utile per pulire l'input del database. Non è una misura di sicurezza, ma questo manterrà fuori la maggior parte degli hacker malintenzionati là fuori, eliminando parti indesiderate di tutto ciò che è stato inserito nel nostro modulo di accesso. in secondo luogo, md5
. Sarebbe impossibile entrare nei dettagli qui, ma questa funzione semplicemente crittografa tutto ciò che è passato ad esso - in questo caso la password dell'utente - per impedire agli sguardi indiscreti di leggerlo.
$ checklogin = mysql_query ("SELECT * FROM users WHERE Username = '". $ username. "' AND Password = '". $ password. "'"); if (mysql_num_rows ($ checklogin) == 1) $ row = mysql_fetch_array ($ checklogin); $ email = $ row ['EmailAddress']; $ _SESSION ['Username'] = $ username; $ _SESSION ['EmailAddress'] = $ email; $ _SESSION ['LoggedIn'] = 1;
Qui abbiamo il nucleo del nostro codice di accesso; in primo luogo, eseguiamo una query sul nostro database. In questa ricerca stiamo cercando tutto ciò che riguarda un membro, il cui nome utente e password corrispondono ai valori del nostro $ username
e $ password
che l'utente ha fornito. Nella riga successiva abbiamo una dichiarazione if, in cui stiamo controllando quanti risultati abbiamo ricevuto; se non ci sono risultati, questa sezione non verrà elaborata. Ma se c'è un risultato, sappiamo che l'utente esiste, e quindi li accediamo.
Le prossime due righe sono per ottenere l'indirizzo email dell'utente. Abbiamo già queste informazioni dalla query che abbiamo già eseguito, quindi possiamo facilmente accedere a queste informazioni. Per prima cosa, otteniamo una serie di dati che sono stati recuperati dal database - in questo caso stiamo usando la funzione PHP mysql_fetch_array
. Ho quindi assegnato il valore di Indirizzo email
campo a una variabile da utilizzare in seguito.
Ora impostiamo la sessione. Stiamo memorizzando il nome utente e l'indirizzo e-mail dell'utente nella sessione, insieme a un valore speciale per noi per sapere che sono stati registrati utilizzando questo modulo. Dopo che questo è stato detto e fatto, verranno quindi reindirizzati all'area membri utilizzando il META REFRESH nel codice.
Quindi, che aspetto ha attualmente il nostro progetto per un utente?
Grande! È ora di andare avanti, per assicurarci che le persone possano effettivamente entrare nel tuo sito.
È tutto molto bello avere un modulo di accesso sul tuo sito, ma ora dobbiamo consentire agli utenti di poterlo utilizzare - dobbiamo creare un modulo di accesso. Crea un file chiamato register.php
e inserire il seguente codice in esso.
Sistema di gestione degli utenti (Tom Cameron per NetTuts) Errore"; eco "Spiacenti questo nome utente è già in uso. Per favore torna indietro e riprova.
"; else $ registerquery = mysql_query (" INSERIRE I VALORI degli utenti (nome utente, password, indirizzo email) ('". $ username."', '". $ password."', '". $ email."') "); if ($ registerquery) echo"Successo
"; eco "Il tuo account è stato creato con successo. Clicca qui per effettuare il login.
"; else echo"Errore
"; eco "Siamo spiacenti, la tua registrazione è fallita. Per favore torna indietro e riprova.
"; else ?>Registrare
Per favore inserisci i tuoi dati qui sotto per registrarti.