Iscrizione utente con PHP

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.

introduzione

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:

  • Nome host del database - questo è il server su cui è ospitato il tuo database, nella maggior parte dei casi questo sarà semplicemente 'localhost'.
  • Nome database, Nome utente database, Password database - prima di iniziare questo tutorial, è necessario creare un database MySQL se si ha la possibilità o avere a portata di mano le informazioni per la connessione a un database esistente. Questa informazione è necessaria durante il tutorial.

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!

Passaggio 1 - Configurazione iniziale

Impostazione del database

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:

  • ID utente (Chiave primaria)
  • Nome utente
  • Parola d'ordine
  • Indirizzo email

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);

Creare un file di base

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.

Passaggio 2: ritorno al frontend

Cosa dobbiamo fare prima?

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.

Inizia la pagina HTML

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:

  1. L'utente ha già effettuato l'accesso?
  • - 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?
    • - 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 principale

    Quando 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 il vuoto 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

    e il tuo indirizzo email è .

    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.

    Lascia che le persone si iscrivano

    È 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.




    Quindi, non c'è molto nuovo PHP che non abbiamo ancora imparato in quella sezione. Diamo solo una rapida occhiata a quella query SQL, e vediamo se riusciamo a capire cosa sta facendo.

    $ registerquery = mysql_query ("INSERT INTO (Nome utente, Password, Indirizzo email) VALORI ('". $ username. "', '". $ password. "', '". $ email. "')");

    Quindi, qui stiamo aggiungendo l'utente al nostro database. Questa volta, invece di recuperare i dati, li stiamo inserendo; quindi stiamo specificando in primo luogo in quale colonna stiamo inserendo i dati (non dimenticare, il nostro ID utente salirà automaticamente). Nel VALORI() area, stiamo dicendo cosa mettere in ogni colonna; in questo caso le nostre variabili che provengono dall'input dell'utente. Quindi proviamoci; una volta creato un account sul tuo nuovo modulo di registrazione, ecco cosa vedrai nell'area membri.

    Assicurati di poter disconnettersi

    Siamo quasi alla fine di questa sezione, ma c'è ancora una cosa di cui abbiamo bisogno prima che finiamo qui - un modo per gli utenti di disconnettere i loro account. Questo è molto facile da fare (fortunatamente per noi); crea un nuovo file chiamato logout.php e inserire il seguente in esso.

     

    In questo stiamo prima reimpostando il nostro globale $ _SESSION array, e quindi stiamo distruggendo completamente la sessione.

    E questa è la fine di quella sezione e la fine del codice PHP. Passiamo ora alla nostra sezione finale.

    Passaggio 3: ottenere in stile

    Non spiegherò molto in questa sezione - se non capisci l'HTML / CSS ti consiglio caldamente quando hai molti tutorial eccellenti su questo sito per iniziare. Crea un nuovo file chiamato style.css e inserire il seguente in esso; questo modulerà tutte le pagine che abbiamo creato finora.

    * margine: 0; padding: 0;  body font-family: Trebuchet MS;  a color: # 000;  a: hover, a: active, a: visited text-decoration: none;  #main width: 780px; margine: 0 auto; margin-top: 50px; imbottitura: 10px; border: 1px solid #CCC; background-color: #EEE;  form fieldset border: 0;  form fieldset pbr clear: left;  label margin-top: 5px; blocco di visualizzazione; larghezza: 100 px; padding: 0; fluttuare: a sinistra;  input font-family: Trebuchet MS; border: 1px solid #CCC; margin-bottom: 5px; background-color: #FFF; imbottitura: 2px;  input: hover border: 1px solid # 222; background-color: #EEE; 

    Ora diamo un'occhiata ad alcuni screenshot di come dovrebbe essere il nostro progetto finale:

    Il modulo di accesso.

    L'area membri.

    Il modulo di registrazione.

    E infine…

    E questo è tutto! Ora hai un'area riservata ai membri che puoi utilizzare sul tuo sito. Posso vedere un sacco di persone scuotere la testa e gridare ai loro monitor che non è utile per loro - hai ragione. Ma quello che spero che i principianti di PHP abbiano imparato sono le basi su come utilizzare un database e come utilizzare le sessioni per memorizzare le informazioni. Le abilità vitali per la creazione di qualsiasi applicazione web.

    • Iscriviti al feed RSS di NETTUTS per ulteriori tuts e articoli di sviluppo web giornalieri.