Realizzare Registrazione e Login in PHP

Immagine originale tratta da Fotolia
Tempo stimato di lettura: 4 minuti, 36 secondi
Pubblicato il 30 aprile 2013

Il web è pieno di guide riguardanti il php, ce ne sono davvero tantissime e di ogni genere, quelle complesse, quelle troppo banali, quelle inutilizzabili per il loro scarso metodo di arrivare all’utenza.

Oggi, qua su WebHouse, inizio un piccolo ciclo di “mini-guide” inerenti proprio questo linguaggio che tenterà, dove possibile, di far capire le sue basi anche agli utenti meno esperti.

Questa serie di articoli proverà ad arrivare a destinazione con semplicità e professionalità, riguarderà script piccoli ma utili, specifici e sopratutto focalizzati su un preciso obiettivo!

PS: Ricordiamo che è sempre opportuno preoccuparsi della sicurezza degli script che si metteno in rete. Di conseguenza ogni script dovrà poi essere corredato dalle opportune misure necessarie per prevenire attacchi dall’esterno.

In questo primo articolo tratterò un argomento da sempre molto richiesto in rete: vedremo come creare dei form di login e di registrazione. Prima di passare però al vero succo della questione è necessario trattare brevemente un altro argomento, i database.

Questi sono semplicemente degli archivi di dati correlati logicamente tra loro, fondamentalmente utilizzati per modellare una realtà tramite dei dati informatici.

Ma come possiamo utilizzare questi dati a nostro piacimento ? Con il  MySQL, “software” che ci permette di estrarli, leggerli, cancellarli ed eventualmente aggiornarli in qualsivoglia momento.

Come possono il login e la registrazione di un sito internet interagire con questo “archivio”? E cosa ci servirà per crearli ? Ve lo spiego subito. Nella sezione che riguarderà la registrazione potremo utilizzare il database per immagazzinare i dati dell’ utente, mentre dall’ altro lato, in quello del login, lo utilizzeremo semplicemente per leggere ciò che prima è stato inserito, tutto questo attraverso dei semplici codici appartenenti al MySQL. Vi sarà comunque tutto più chiaro una volta che avrete letto e visto con i vostri occhi ogni cosa. Iniziamo !!

Serviranno i seguenti elementi:

  • Mamp(mac)/Xampp(win), (le conoscenze di questi programmi dovrete averle).
  • Un editor di testo per scrivere il codice.

Creiamo subito i file fisici .php (vuoti)  e le tabelle nel database che ospiteranno tutti i nostri dati informatici.  Andiamo dentro la cartella htdocs di mamp/xamp e creiamo la cartellina che conterrà tutte le nostre cose, chiamiamola “prova”. Al suo interno a sua volta creeremo successivamente 5 file.php:

  • login.php
  • registration.php
  • db_con.php
  • index.php
  • prova.php // è semplicemente un file di prova in cui visualizzeremo il messaggio “login effettuato con successo”.

In login .php andrà inserita la pagina che conterrà tutti i file inerenti il relativo processo, nel registration.php tutti quelli inerenti la registrazione, in db_con.php  i parametri di connessione al database che, per questa volta, vi passerò semplicemente io, non essendo il tutorial incentrato su questo. 😉

Passiamo alla stesura del db_con.php:

 

Come vedete il file è tutto commentato e comprensibile sicuramente per chiunque abbia una minima conoscenza di php. Se state utilizzando xamp(win) la password dovrà rimanere vuota altrimenti, con Mamp(mac) dovrà essere come per il nick, cioè “root”. Il primo passaggio è stato fatto, creiamo adesso il database andando nel phpMyAdmin di Mamp/xamp; chiamiamolo “prova” e all’ interno creiamo un’ unica tabella di nome “users”, contenente solamente 4 campi (faremo una registrazione molto semplice):

  • Campo “id” [ INT, auto_incement, primary ]
  • Campo “username” [VARCHAR, 255]
  • Campo “password” [VARCHAR, 255]
  • Campo “email” [VARCHAR, 255]

  INT e VARCHAR saranno tipologie di campi e 255, dove presente, sarà l’ eventuale lunghezza massima del campo.

creazione id, username e password nel database.

Fatto questo possiamo tornare sui nostri file fisici, aprire il registration.php ed incollarci dentro il seguente codice, anch’ esso tutto commentato.

Codice da inserire nel registration.php:

Questo file di registrazione utilizza un “INSERT mysql” per inserire nel database i dati che gli son stati passati dal form di registrazione (username_reg, password_reg, email_reg), dati che adesso andremo a vedere e ad inserire nell’ index.php..

Codice da inserire nell’ index.php:

 

In questa pagina non farete altro che creare due form in html, quello di registrazione contenente tre campi, “username_reg”, “password_reg”, ed “email_reg”  (campi collegati alla pagina registration.php attraversio l’ attributo “action”) , e quello di login, che avrà solamente due campi, quello “username” e quello “password”. !!

Creiamo adesso la pagina, come per la registrazione, collegata al rispettivo form di login, login.php! Apritela e incollateci dentro il seguente codice.

Codice da inserire nel login.php:

Prima cosa che faccio, assegno alla sessione i parametri passati dal form di login, così resteranno fino a scadenza al suo interno e potranno eventualmente esser riutilizzati per qualcos’ altro. Dopo ciò faccio un “SELECT mysql” per selezionare e cercare nella tabella “users” del database qualche utente che corrisponde ai dati inseriti nel form. Se tutto funziona correttamente il login avrà successo, altrimenti, si visualizzerà a schermo un messaggio di errore.

Codice da inserire nel prova.php:

A questo punto, se avrete eseguito questi passaggi correttamente, dovreste essere in grado di registrarvi al vostro “sito”  e successivamente anche di loggoravi. Fate delle prove, iniziate a registrare qualche utente dal form e andate a visualizzare la tabella users nel database; se questa avrà al suo interno gli utenti che avete inserito, allora avrete fatto tutto correttamente nella sessione inerente la registrazione. Dopo di che  provate a loggoravi con gli utenti che avete creato e controllate che anche questa passaggio funzioni.

Ho testato il codice in locale e tutto dovrebbe essere funzionante, per qualsiasi problema o errore non esitate comunque a fare domande.. !! Un saluto 😉

Appena ne avrò tempo implementerò nel codice anche le indispensabili pratiche di sicurezza.. !! Pazientate !! 🙂

Shares