Registrazione utenti con Php e MySql

Creare dei form di login e di registrazione. (Utilizzo del database)

Andare su Altervista e creare una cartella "prova"

Creare la tabella users nel database dove volete gestire l'area riservata

Trasferire dopo averli creati i 5 file.php nella cartella prova:
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:

1
2
3
4
5
6
7
8
9
10
11
12
<?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("nome del database",$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
}


?>


Se state utilizzando Altervista oppure un serverlocale cone Easyphp o Xampp la password dovrà rimanere vuota altrimenti, con Mamp(mac) dovrà essere come per il nick, cioè “root”.


Creiamo una 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.


Creare il file registration.php con il seguente codice.
Codice da inserire nel registration.php:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?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 users (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:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?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:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?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
}
?>


Assegnare alla sessione i parametri passati dal form di login,

Definire la “SELECT mysql” per selezionare e cercare nella tabella “users” del database l'utente selezionato. Se tutto funziona correttamente il login avrà successo, altrimenti, si visualizzerà a schermo un messaggio di errore.
Codice da inserire nel prova.php:

1
<?php echo "Ti sei loggato con successo";?>

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


Commenti