Nume Tutorial:Formular de inregistrare si login in PHP
Descriere:In acest tutorial vei citi despre cum poti realiza un formular de inregistrare si unul de login folosind PHP, MySQL si HTML. De obicei, formularele de inregistrare si autentificare sunt utilizate de forumuri, magazine online sau retele sociale cum ar fi Hi5, Facebook, Twitter, etc.
Download:Nu necesita
Autor:Anonim
Sursa (Link-ul oficial):
Propria parere:Util.
Tutorialul:
Conectarea la baza de date
Pentru a realiza inregistrarea utilizatorilor, avem in primul rand nevoie de o baza de date MySQL cu o tabela pe care o vom denumi users. De asemenea, vom crea un fisier dbconnect.php ce va fi inclus atat pe pagina de inregistrare, cat si pe cea de login. In acest fisier vom introduce urmatorul script pentru conectarea la baza de date:
Pentru acest exemplu, vom considera ca tabela users contine 4 campuri: Id (cheie primara cu atributul auto_increment), Name, Username si Password.
Dupa ce ati introdus codul de mai sus in dbconnect.php va trebui sa scrieti in index.php codul de pornire a sesiunii si sa includeti fisierul de conectare:
Formularele HTML
Vom crea 2 fisiere: register.php si login.php. In pagina principala (index.php) vom defini doua formulare, unul de inregistrare, ce va trimite catre register.php, si unul de autentificare, ce va transmite datele catre login.php. Problema de care va trebui sa va ocupati este denumirea celor 5 input-uri (text box-uri), fiecare avand un nume specific ce va fi utilizat in fisierul .php specificat prin atributul action al tag-ului <form>.
Iata codul html pentru formularul de inregistrare:
si cel pentru login:
Formularele vor arata astfel:
Inregistrare
Nume si prenume
Username
Parola
Login / Autentificare
Username
Parola
Inregistrarea utilizatorilor
Scrie urmatorul cod in fisierul register.php. Dupa cum poti observa, acest fisier verifica daca avem date transmise, apoi preia numele, username-ul si parola utilizatorului din variabila superglobala $_POST si executa un query MySQL de tip INSERT pentru a salva datele in tabela users (Id-ul lipseste din query deoarece este incrementat automat). Ca metoda de securitate, parola este encodata utilizand functia md5():
OBS. MD5 (Message Digest Algorithm 5) este o functie criptografica de tip hash unidirectional, care livreaza ca rezultat o valoare fixa ca lungime de 128 Biti. Valuarea calculata cu ajutorul functiei MD5 (pe scurt md5sum), este folosita insa pe scara larga drept suma de control, la verificarea integritatii fisierelor. Functia md5() din PHP returneaza hash-ul ca un numar hexazecimal (in baza 16) de 32 caractere.
Autentificarea utilizatorilor
Scrie urmatorul cod in fisierul login.php. Similar formularului de inregistrare, acest fisier verifica existenta informatiilor, retine username-ul si parola in doua variabile, apoi executa un query SELECT pentru a verifica daca sunt valide.
In caz de succes, numele de utilizator si parola sunt memorate in sesiune. Acest pas este necesar deoarece permite verificarea unui utilizator utilizand datele din sesiune, fara a-i cere sa introduca de fiecare data numele de utilizator si parola. De exemplu, daca intr-o alta pagina (panou_control.php) vrem sa permitem accesul utilizatorilor la anumite functionalitati, vom scrie urmatorul cod:
Descriere:In acest tutorial vei citi despre cum poti realiza un formular de inregistrare si unul de login folosind PHP, MySQL si HTML. De obicei, formularele de inregistrare si autentificare sunt utilizate de forumuri, magazine online sau retele sociale cum ar fi Hi5, Facebook, Twitter, etc.
Download:Nu necesita
Autor:Anonim
Sursa (Link-ul oficial):
Tutorialul:
Conectarea la baza de date
Pentru a realiza inregistrarea utilizatorilor, avem in primul rand nevoie de o baza de date MySQL cu o tabela pe care o vom denumi users. De asemenea, vom crea un fisier dbconnect.php ce va fi inclus atat pe pagina de inregistrare, cat si pe cea de login. In acest fisier vom introduce urmatorul script pentru conectarea la baza de date:
Code:
<?php
$server = "localhost";
$database = "test";
$username = "root";
$parola = "";
// conectarea la serverul MySQL
$connect = mysql_connect($server,$username,$password) or die( mysql_error() );
// selecteaza baza de date test
$db = mysql_select_db($database,$connect) or die( mysql_error() );
?>
Pentru acest exemplu, vom considera ca tabela users contine 4 campuri: Id (cheie primara cu atributul auto_increment), Name, Username si Password.
Dupa ce ati introdus codul de mai sus in dbconnect.php va trebui sa scrieti in index.php codul de pornire a sesiunii si sa includeti fisierul de conectare:
Code:
<?php
session_start();
require_once("dbconnect.php");
?>
<html>
<head>
<title>Inregistrare / Login</title>
</head>
</html>
Formularele HTML
Vom crea 2 fisiere: register.php si login.php. In pagina principala (index.php) vom defini doua formulare, unul de inregistrare, ce va trimite catre register.php, si unul de autentificare, ce va transmite datele catre login.php. Problema de care va trebui sa va ocupati este denumirea celor 5 input-uri (text box-uri), fiecare avand un nume specific ce va fi utilizat in fisierul .php specificat prin atributul action al tag-ului <form>.
Iata codul html pentru formularul de inregistrare:
Code:
<form name="register_form" action="register.php" method="post">
<table width="100%" border="0" cellpadding="0" cellspacing="2">
<tr>
<td width="40%">Nume si prenume</td>
<td><input type="text" name="register_name" id="register_name" /></td>
</tr>
<tr>
<td>Username</td>
<td><input type="text" name="register_username" id="register_username" /></td>
</tr>
<tr>
<td>Parola</td>
<td><input type="password" name="register_password" id="register_password" /></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="register_btn" value="Inregistrare" /></td>
</tr>
</table>
</form>
si cel pentru login:
Code:
<form name="login_form" action="login.php" method="post">
<table width="100%" border="0" cellpadding="0" cellspacing="2">
<tr>
<td width="40%">Username</td>
<td><input type="text" name="login_username" id="login_username" /></td>
</tr>
<tr>
<td>Parola</td>
<td><input type="password" name="login_password" id="login_password" /></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="login_btn" value="Login" /></td>
</tr>
</table>
</form>
Formularele vor arata astfel:
Inregistrare
Nume si prenume
Username
Parola
Login / Autentificare
Username
Parola
Inregistrarea utilizatorilor
Scrie urmatorul cod in fisierul register.php. Dupa cum poti observa, acest fisier verifica daca avem date transmise, apoi preia numele, username-ul si parola utilizatorului din variabila superglobala $_POST si executa un query MySQL de tip INSERT pentru a salva datele in tabela users (Id-ul lipseste din query deoarece este incrementat automat). Ca metoda de securitate, parola este encodata utilizand functia md5():
Code:
<?php
session_start();
require_once("dbconnect.php");
// verifica daca exista date transmise
if ($_POST['register_name'] != "" && $_POST['register_username'] != "" && $_POST['register_password'] != '') {
// preia datele din formular
$name = $_POST['register_name'];
$username = $_POST['register_username'];
$password = md5($_POST['register_password']);
// formeaza si executa query-ul de inserare in baza de date
$query = "INSERT INTO `users` (`Name`,`Username`,`Password`) VALUES ('".$name."','".$username."','".$password."')";
$result = mysql_query($query) or die ( "Error : ". mysql_error() );
// afiseaza un mesaj de succes
if ($result) {
echo "Inregistrarea a fost efectuata cu succes.<br>
Click <a href='index.php'>aici</a> pentru a reveni la pagina de login";
}
}
?>
OBS. MD5 (Message Digest Algorithm 5) este o functie criptografica de tip hash unidirectional, care livreaza ca rezultat o valoare fixa ca lungime de 128 Biti. Valuarea calculata cu ajutorul functiei MD5 (pe scurt md5sum), este folosita insa pe scara larga drept suma de control, la verificarea integritatii fisierelor. Functia md5() din PHP returneaza hash-ul ca un numar hexazecimal (in baza 16) de 32 caractere.
Autentificarea utilizatorilor
Scrie urmatorul cod in fisierul login.php. Similar formularului de inregistrare, acest fisier verifica existenta informatiilor, retine username-ul si parola in doua variabile, apoi executa un query SELECT pentru a verifica daca sunt valide.
Code:
<?php
session_start();
require_once("dbconnect.php");
// verifica daca exista date transmise
if ($_POST['login_username'] != "" && $_POST['login_password'] != '') {
// preia datele din formular
$username = $_POST['login_username'];
$password = md5($_POST['login_password']);
// formeaza si executa query-ul de select din baza de date
$query = "SELECT * FROM `users` WHERE `Username` = '".$username."' AND `Password` = '".$password."'";
$result = mysql_query($query) or die ( "Error : ". mysql_error() );
// verifica daca interogarea MySQL a gasit date valide
if ($result || mysql_num_rows($result) < 1) {
// daca nu, afiseaza un mesaj de eroare
echo "Datele introduse sunt incorecte<br>
Click <a href='index.php'>aici</a> pentru a reveni la pagina de login";
} else {
// salveaza username-ul si parola in sesiune
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
// afiseaza un mesaj de succes
echo "Autentificarea a fost efectuata cu succes.";
}
}
?>
In caz de succes, numele de utilizator si parola sunt memorate in sesiune. Acest pas este necesar deoarece permite verificarea unui utilizator utilizand datele din sesiune, fara a-i cere sa introduca de fiecare data numele de utilizator si parola. De exemplu, daca intr-o alta pagina (panou_control.php) vrem sa permitem accesul utilizatorilor la anumite functionalitati, vom scrie urmatorul cod:
Code:
<?php
session_start();
require_once("dbconnect.php");
// verifica daca exista date in sesiune
if (isset($_SESSION['username']) && isset($_SESSION['password'])) {
// preia datele din sesiune
$username = $_SESSION['username'];
$password = $_SESSION['password'];
// formeaza si executa query-ul de select din baza de date
$query = "SELECT * FROM `users` WHERE `Username` = '".$username."' AND `Password` = '".$password."'";
$result = mysql_query($query) or die ( "Error : ". mysql_error() );
// verifica daca interogarea MySQL a gasit date valide
if ($result || mysql_num_rows($result) < 1) {
// daca nu, afiseaza un mesaj de eroare
echo "Acces interzis<br>
Click <a href='index.php'>aici</a> pentru a reveni la pagina de login";
} else {
// afiseaza functiile si informatiile la care
// utilizatorul autentificat are acces
...
}
}
?>