Registrazione utenti con login e pass - Php e MySql

Creare su Altervista (PhpMyAdmin) oppure su un server Web in locale un database "registro" e la tabella "utenti".

Creare i file php nella cartella "esempio" di Altervista o nella cartella htdocs di xamp:
  • 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:

<?php //connessione al nostro database
$connessione_al_server=mysql_connect("localhost","root","root"); // ip locale, login e password
if(!$connessione_al_server){
die ('Non riesco a connettermi: errore '.mysql_error()); // questo apparirà solo se ci sarà un errore
}
$db_selected=mysql_select_db("registro",$connessione_al_server); // dove io ho scritto "prova" andrà inserito il nome del db
if(!$db_selected){
die ('Errore nella selezione del database: errore '.mysql_error()); // se la connessione non andrà a buon fine apparirà questo messaggio
}
?>



Come vedete il file è tutto commentato e comprensibile sicuramente per chiunque abbia una minima conoscenza di php. Se state utilizzando xamp(win), xamp(mac), Altervista, la password dovrà rimanere vuota. 

Il primo passaggio è stato fatto, creiamo adesso il database andando nel phpMyAdmin di Altervista chiamiamolo “registro” e all’ interno creiamo un’ unica tabella di nome “utenti”, contenente i 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.
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:



<?php
session_start(); // dive essere la prima cosa nella pagina, aprire la sessione
include("db_con.php"); // includo il file di connessione al database
if($_POST["username_reg"] != "" && $_POST["password_reg"]!= "" && $_POST["email_reg"] != ""){ // se i parametri iscritto non sono vuoti non sono vuote
$query_registrazione = mysql_query("INSERT INTO utenti (username,password,email)
VALUES ('".$_POST["username_reg"]."','".$_POST["password_reg"]."','".$_POST["email_reg"]."')") // scrivo sul DB questi valori
or die ("query di registrazione non riuscita".mysql_error()); // se la query fallisce mostrami questo errore
}else{
header('location:index.php?action=registration&errore=Non hai compilato tutti i campi obbligatori'); // se le prime condizioni non vanno bene entra in questo ramo else
}
if(isset($query_registrazione)){ //se la reg è andata a buon fine
$_SESSION["logged"]=true; //restituisci vero alla chiave logged in SESSION
header("location:index.php");
}else{
echo "non ti sei registrato con successo"; // altrimenti esce scritta a video questa stringa
}
?>



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:

<?php
session_start();// come sempre prima cosa, aprire la sessione
include("db_con.php"); // includere la connessione al database
?>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<h2>Registrazione</h2>
<form name="form_registration" method="post" action="registration.php">
<br/>
<p>Username: <input type="text" name="username_reg"></p>
<br/>
<p>Password: <input type="password" name="password_reg"></p>
<br/>
<p>Email: <input type="text" name="email_reg" ></p>
<br/>
<button>Registrati</button>
</form>
<h2>Log in</h2>
<form name="form_login" method="post" action="login.php">
<p>Username</p><input type="text" name="username" ></p>
<p>Password <input name="password"></p>
<button>Accedi</button>
</form>
<body>
</html>

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:

<?php
session_start();// come sempre prima cosa, aprire la sessione
include("db_con.php"); // Include il file di connessione al database
$_SESSION["username"]=$_POST["username"]; // con questo associo il parametro username che mi è stato passato dal form alla variabile SESSION username
$_SESSION["password"]=$_POST["password"]; // con questo associo il parametro username che mi è stato passato dal form alla variabile SESSION password
$query = mysql_query("SELECT * FROM users WHERE username='".$_POST["username"]."' AND password ='".$_POST["password"]."'") //per selezionare nel db l'utente e pw che abbiamo appena scritto nel log
or DIE('query non riuscita'.mysql_error());
// Con il SELECT qua sopra selezione dalla tabella users l utente registrato (se lo è) con i parametri che mi ha passato il form di login, quindi
// Quelli dentro la variabile POST. username e password.
if(mysql_num_rows($query)&gt;0){ //se c'è una persona con quel nome nel db allora loggati
$row = mysql_fetch_assoc($query); // metto i risultati dentro una variabile di nome $row
$_SESSION["logged"] =true; // Nella variabile SESSION associo TRUE al valore logge
header("location:prova.php"); // e mando per esempio ad una pagina esempio.php// in questo caso rimanderò ad una pagina prova.php
}else{
echo "non ti sei registrato con successo"; // altrimenti esce scritta a video questa stringa di errore
}
?>



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:

<?php echo "Ti sei loggato con successo";?>
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.

fonte: https://www.webhouseit.com/realizzare-una-registrazione-e-un-login-in-php/

Commenti

Post popolari in questo blog

Simulazioni di reti (con Cisco Packet Tracer)

Esercizi in Excel e fogli di Google