Înregistrare autentificare fără Dumnezeu php

10.05.2015 Romchik

O zi buna. În acest articol, vom folosi un exemplu pentru a analiza înregistrarea utilizatorilor în . Apoi activați utilizatorul confirmându-i adresa de e-mail. Și, în sfârșit, autorizarea utilizatorului în . Dar numai utilizatorii activi ar trebui autorizați.

Primul lucru pe care îl vom face este să creăm un controler și o vizualizare pentru înregistrare.

Crearea unui formular de înregistrare

Accesați directorul cu șabloanele de resurse și creați subdirectorul de autentificare în el. Acum, în folderul auth vom crea un fișier register.blade.php cu următorul cod:

Înregistrare

((--Erori--)) @if ($erori->are()) ×
    @foreach($erori->all() ca $eroare)
  • ((( $eroare )))
  • @endforeach
@endif (!! csrf_field() ! Email Пароль Повторите пароль Отправить !}

Nu voi explica codul de mai sus, totul este clar aici.

App/Http/Controllers/Auth/AuthController.php

Vom suprascrie doar metodele controlerului AuthController.php. Deci, pentru a afișa formularul de înregistrare, există o metodă getRegister. Nu atingem această metodă.

Acum să trecem la rute. Deschideți fișierul:

Și definiți calea către metoda noastră:

Route::get("auth/register", "Auth\AuthController@getRegister");

Acum să deschidem aplicația noastră în browser. Super, vedem formularul de înregistrare.

Înregistrarea utilizatorului în

Să definim imediat ruta pentru înregistrarea utilizatorului. Să mergem la fișier:

App/Http/Controllere/routes.php

Și adăugați următorul traseu:

Route::post("auth/register", "Auth\AuthController@postRegister");

Acum să creăm un tabel pentru a stoca utilizatorii. Există deja o migrare pentru acest tabel, dar nu este potrivit pentru noi. Să-l schimbăm. Să mergem la fișier:

Database/migrations/2014_10_12_create_users_table.php

Și hai să schimbăm codul:

In cazul meu arata asa:

Salvați bd.php.
Grozav! Avem un tabel în baza de date și o conexiune la acesta. Acum puteți începe să creați o pagină pe care utilizatorii își vor lăsa datele.

3. Creați un fișier reg.php cu conținutul (toate comentariile în interior):



Înregistrare


Înregistrare


Autentificarea dvs.:




Parola Dvs:








4. Creați un fișier care va introduce date în baza de date și va salva utilizatorul. save_user.php (comentarii în interior):

5. Acum utilizatorii noștri se pot înregistra! Apoi, trebuie să creați o „ușă” pentru ca utilizatorii deja înregistrați să intre pe site. index.php (comentarii în interior):




pagina principala


pagina principala


Autentificarea dvs.:


Parola Dvs:






Inregistreaza-te



OK, totul sa terminat acum! Lecția poate fi plictisitoare, dar foarte utilă. Numai ideea de înregistrare este afișată aici, apoi o puteți îmbunătăți: adăugați securitate, design, câmpuri de date, încărcare avatare, deconectare din contul dvs. (pentru a face acest lucru, pur și simplu distruge variabilele din sesiune cu funcția unset) și curând. Noroc!

Am verificat totul, funcționează corect!

În acest articol, veți învăța cum să creați un formular de înregistrare și autentificare folosind HTML, JavaScript, PHP și MySql. Astfel de formulare sunt folosite pe aproape fiecare site web, indiferent de tipul acestuia. Sunt create pentru un forum, un magazin online, rețele sociale (cum ar fi Facebook, Twitter, Odnoklassniki) și multe alte tipuri de site-uri.

Dacă aveți un site web pe computerul local, atunci sper că aveți deja un server local instalat și care rulează. Fără el, nimic nu va funcționa.

Crearea unui tabel în baza de date

Pentru a implementa înregistrarea utilizatorilor, în primul rând avem nevoie de o bază de date. Dacă îl aveți deja, atunci grozav, în caz contrar, trebuie să îl creați. În articol, explic în detaliu cum să faci asta.

Și așa, avem o bază de date (abreviată ca DB), acum trebuie să creăm un tabel utilizatoriiîn care vom adăuga utilizatorii noștri înregistrați.

Am explicat și cum se creează un tabel într-o bază de date în articol. Înainte de a crea un tabel, trebuie să stabilim ce câmpuri va conține. Aceste câmpuri vor corespunde câmpurilor din formularul de înregistrare.

Deci, ne-am gândit, ne-am imaginat ce câmpuri ar avea formularul nostru și am creat un tabel utilizatorii cu aceste câmpuri:

  • id- Identificator. Camp id Fiecare tabel din baza de date ar trebui să-l aibă.
  • Nume- Pentru a salva numele.
  • nume- Pentru a păstra numele de familie.
  • e-mail- Pentru a salva adresa poștală. Vom folosi e-mailul ca logare, deci acest câmp trebuie să fie unic, adică să aibă indexul UNIC.
  • email_status- Câmp pentru a indica dacă e-mailul este confirmat sau nu. Dacă e-mailul este confirmat, atunci acesta va avea valoarea 1, în caz contrar valoarea este 0.
  • parola- Pentru a salva parola.


Dacă doriți ca formularul de înregistrare să aibă alte câmpuri, le puteți adăuga și aici.

Asta e, masa noastră utilizatorii gata. Să trecem la etapa următoare.

Conexiune la baza de date

Am creat baza de date, acum trebuie să ne conectăm la ea. Ne vom conecta folosind extensia PHP MySQLi.

În folderul site-ului nostru, creați un fișier cu numele dbconnect.php, și scrieți următorul script în el:

Acest fișier dbconnect.php va trebui conectat la manevrele de formulare.

Observați variabila $address_site, aici am indicat numele site-ului meu de testare la care voi lucra. Vă rugăm să indicați numele site-ului dvs. în consecință.

Structura site-ului

Acum să ne uităm la structura HTML a site-ului nostru.

Vom muta antetul și subsolul site-ului în fișiere separate, header.phpȘi footer.php. Le vom include pe toate paginile. Și anume pe pagina principală (fișier index.php), la pagina cu formularul de înregistrare (file form_register.php) și la pagina cu formularul de autorizare (dosar form_auth.php).

Blocați cu link-urile noastre, înregistrareȘi autorizare, adăugați-le în antetul site-ului, astfel încât să fie afișate pe toate paginile. Va intra un link către pagina cu formularul de înregistrare (fișier form_register.php) iar celălalt la pagina cu formularul de autorizare (dosar form_auth.php).

Conținutul fișierului header.php:

Numele site-ului nostru

Drept urmare, pagina noastră principală arată astfel:


Desigur, site-ul dvs. poate avea o structură complet diferită, dar acest lucru nu este important pentru noi acum. Principalul lucru este că există link-uri (butoane) pentru înregistrare și autorizare.

Acum să trecem la formularul de înregistrare. După cum înțelegeți deja, îl avem în dosar form_register.php.

Accesați baza de date (în phpMyAdmin), deschideți structura tabelului utilizatoriiși uită-te la ce domenii avem nevoie. Aceasta înseamnă că avem nevoie de câmpuri pentru introducerea prenumelui și prenumelui, un câmp pentru introducerea adresei poștale (E-mail) și un câmp pentru introducerea parolei. Și din motive de securitate, vom adăuga un câmp pentru introducerea unui captcha.

Pe server, ca urmare a procesării formularului de înregistrare, pot apărea diverse erori din cauza cărora utilizatorul nu se va putea înregistra. Prin urmare, pentru ca utilizatorul să înțeleagă de ce înregistrarea eșuează, este necesar să afișeze mesaje despre aceste erori.

Înainte de a afișa formularul, adăugați un bloc pentru a afișa mesajele de eroare din sesiune.

Si inca ceva, daca utilizatorul este deja autorizat, si de curiozitate merge direct pe pagina de inregistrare scriind in bara de adrese a browserului adresa_site-ului/form_register.php, apoi în acest caz, în locul formularului de înregistrare, vom afișa un antet în care se menționează că este deja înregistrat.

În general, codul fișierului form_register.php ne descurcam:

Esti deja inregistrat

În browser, pagina cu formularul de înregistrare arată astfel:


Folosind atributul obligatoriu, am făcut toate câmpurile obligatorii.

Atenție la codul formularului de înregistrare unde este afișat captcha:


Am specificat calea către fișier în valoarea atributului src pentru imagine captcha.php, care generează acest captcha.

Să ne uităm la codul fișierului captcha.php:

Codul este bine comentat, așa că mă voi concentra doar pe un singur punct.

În interiorul unei funcții imagineTtfText(), este specificată calea către font verdana.ttf. Deci, pentru ca captcha să funcționeze corect, trebuie să creăm un folder fonturi, și plasați fișierul font acolo verdana.ttf. Îl puteți găsi și descărca de pe Internet, sau îl puteți lua din arhiva cu materialele acestui articol.

Am terminat cu structura HTML, este timpul să trecem mai departe.

Verificarea validității e-mailului folosind jQuery

Orice formular trebuie să verifice validitatea datelor introduse, atât pe partea clientului (folosind JavaScript, jQuery), cât și pe partea serverului.

Trebuie să acordăm o atenție deosebită câmpului E-mail. Este foarte important ca adresa poștală introdusă să fie validă.

Pentru acest câmp de introducere, setăm tipul de e-mail (type="email"), acest lucru ne avertizează ușor împotriva formatelor incorecte. Dar acest lucru nu este suficient, deoarece prin inspectorul de cod pe care ni-l pune la dispoziție browser-ul putem modifica cu ușurință valoarea atributului tip Cu e-mail pe text, și atât, cecul nostru nu va mai fi valabil.


Și în acest caz, trebuie să facem o verificare mai fiabilă. Pentru a face acest lucru, vom folosi biblioteca jQuery din JavaScript.

Pentru a conecta biblioteca jQuery, în fișier header.phpîntre etichete , înainte de eticheta de închidere , adăugați această linie:

Imediat după această linie, vom adăuga codul de validare a e-mailului. Aici vom adăuga un cod pentru a verifica lungimea parolei introduse. Lungimea sa trebuie să fie de cel puțin 6 caractere.

Utilizând acest script, verificăm valabilitatea adresei de e-mail introduse. Dacă utilizatorul a introdus un e-mail incorect, afișăm un mesaj de eroare în acest sens și dezactivăm butonul de trimitere a formularului. Dacă totul este în regulă, atunci eliminăm eroarea și activăm butonul de trimitere a formularului.

Și așa, am terminat cu validarea formularului din partea clientului. Acum îl putem trimite la server, unde vom face și câteva verificări și vom adăuga date în baza de date.

Înregistrare utilizator

Trimitem formularul la dosar pentru procesare înregistrare.php, prin metoda POST. Numele acestui fișier de gestionare este specificat în valoarea atributului acțiune. Și metoda de trimitere este specificată în valoarea atributului metodă.

Deschideți acest fișier înregistrare.phpși primul lucru pe care trebuie să-l facem este să scriem o funcție de lansare a sesiunii și să conectăm fișierul creat anterior dbconnect.php(În acest fișier am făcut o conexiune la baza de date). Și, de asemenea, să declarăm imediat celulele mesaje de eroareȘi mesaje_succesîn matricea globală de sesiuni. ÎN mesaje_eroare vom înregistra toate mesajele de eroare care apar în timpul procesării formularelor și în mesaje_succes, vom înregistra mesaje vesele.

Înainte de a continua, trebuie să verificăm dacă formularul a fost trimis. Un atacator poate privi valoarea atributului acțiune din formular și aflați ce fișier procesează acest formular. Și poate avea ideea să meargă direct la acest fișier introducând următoarea adresă în bara de adrese a browserului: http://adresa_site-ului/register.php

Deci, trebuie să verificăm o celulă în matricea globală POST al cărei nume se potrivește cu numele butonului nostru „Înregistrare” din formular. Astfel verificăm dacă butonul „Înregistrare” a fost apăsat sau nu.

Dacă un atacator încearcă să meargă direct la acest fișier, va primi un mesaj de eroare. Permiteți-mi să vă reamintesc că variabila $address_site conține numele site-ului și a fost declarată în fișier dbconnect.php.

Valoarea captcha din sesiune a fost adăugată atunci când a fost generată, în fișier captcha.php. Ca o reamintire, vă voi arăta din nou această bucată de cod din fișier captcha.php, unde valoarea captcha este adăugată la sesiune:

Acum să trecem la verificarea în sine. În dosar înregistrare.php, în interiorul blocului if, unde verificăm dacă a fost apăsat butonul „Înregistrare”, sau mai degrabă unde este indicat comentariul „” // (1) Spațiu pentru următoarea bucată de cod"noi scriem:

//Verificați captcha primită //Tăiați spațiile de la începutul și sfârșitul liniei $captcha = trim($_POST["captcha"]); if(isset($_POST["captcha"]) && !empty($captcha))( //Compară valoarea primită cu valoarea din sesiune. if(($_SESSION["rand"] != $captcha) && ($_SESSION ["rand"] != ""))( // Dacă captcha-ul nu este corect, atunci returnăm utilizatorul la pagina de înregistrare și acolo îi vom afișa un mesaj de eroare că a introdus captcha greșit . $error_message = "

Eroare! Ai introdus captcha greșit

"; // Salvați mesajul de eroare în sesiune. $_SESSION["error_messages"] = $error_message; // Reveniți utilizatorul la antetul paginii de înregistrare ("HTTP/1.1 301 Mutat permanent"); header("Locație: " .$address_site ."/form_register.php"); //Opriți ieșirea din script(); ) // (2) Loc pentru următoarea bucată de cod )else( //Dacă captcha nu este trecut sau este ieșire gol ("

Eroare! Nu există un cod de verificare, adică un cod captcha. Puteți merge la pagina principală.

"); }

În continuare, trebuie să procesăm datele primite din matricea POST. În primul rând, trebuie să verificăm conținutul matricei globale POST, adică dacă există celule acolo ale căror nume corespund cu numele câmpurilor de intrare din formularul nostru.

Dacă celula există, atunci tăiem spațiile de la începutul și sfârșitul liniei din această celulă, în caz contrar, redirecționăm utilizatorul înapoi la pagina cu formularul de înregistrare.

În continuare, după ce am tăiat spațiile, adăugăm linia la variabilă și verificăm această variabilă dacă nu este goală; dacă nu este goală, trecem mai departe, altfel redirecționăm utilizatorul înapoi la pagina cu formularul de înregistrare.

Lipiți acest cod în locația specificată" // (2) Spațiu pentru următoarea bucată de cod".

/* Verificați dacă există date trimise din formular în matricea globală $_POST și includeți datele trimise în variabile obișnuite.*/ if(isset($_POST["first_name"]))( //Tăiați spațiile de la început și sfârșitul șirului $first_name = trim($_POST["first_name"]); //Verificați variabila pentru golire if(!empty($first_name))( // Pentru siguranță, convertiți caracterele speciale în entități HTML $first_name = htmlspecialchars($first_name, ENT_QUOTES) ; )else( // Salvează mesajul de eroare în sesiune. $_SESSION["error_messages"] .= "

Introdu numele tau

Câmpul de nume lipsește

"; //Readuceți utilizatorul la antetul paginii de înregistrare ("HTTP/1.1 301 Mutat permanent"); header("Locație: ".$address_site."/form_register.php"); //Opriți ieșirea din script(); ) if( isset($_POST["last_name"]))( //Tăiați spațiile de la începutul și sfârșitul liniei $last_name = trim($_POST["last_name"]); if(!empty($last_name)) ( // Pentru securitate , convertiți caracterele speciale în entități HTML $last_name = htmlspecialchars($last_name, ENT_QUOTES); )else( // Salvați mesajul de eroare în sesiune. $_SESSION["error_messages"] .= "

Vă rugăm să introduceți numele dvs. de familie

"; //Readuceți utilizatorul la antetul paginii de înregistrare ("HTTP/1.1 301 Mutat permanent"); header("Locație: ".$address_site."/form_register.php"); //Opriți ieșirea din script(); ) )else ( // Salvează mesajul de eroare în sesiune. $_SESSION["error_messages"] .= "

Câmpul numelui de familie lipsește

"; //Readuceți utilizatorul la antetul paginii de înregistrare ("HTTP/1.1 301 Mutat permanent"); header("Locație: ".$address_site."/form_register.php"); //Opriți ieșirea din script(); ) if( isset($_POST["email"]))( //Tăiați spațiile de la începutul și sfârșitul liniei $email = trim($_POST["email"]); if(!empty($email)) ( $email = htmlspecialchars ($email, ENT_QUOTES); // (3) Locația codului pentru verificarea formatului adresei de e-mail și a unicității acesteia )else( // Salvați mesajul de eroare în sesiune. $_SESSION["error_messages"] .= "

Introduceți adresa dvs. de email

"; //Readuceți utilizatorul la antetul paginii de înregistrare ("HTTP/1.1 301 Mutat permanent"); header("Locație: ".$address_site."/form_register.php"); //Opriți ieșirea din script(); ) )else ( // Salvează mesajul de eroare în sesiune. $_SESSION["error_messages"] .= "

"; //Readuceți utilizatorul la antetul paginii de înregistrare ("HTTP/1.1 301 Mutat permanent"); header("Locație: ".$address_site."/form_register.php"); //Opriți ieșirea din script(); ) if( isset($_POST["parolă"]))( //Tăiați spațiile de la începutul și sfârșitul șirului $parolă = trim($_POST["parolă"]); if(!empty($parolă)) ( $parolă = htmlcaractere speciale ($parolă, ENT_QUOTES); //Criptați parola $parolă = md5($parolă."top_secret"); )else( // Salvați mesajul de eroare în sesiune. $_SESSION["messaje_de_eroare"] .= "

Introduceți parola

"; //Readuceți utilizatorul la antetul paginii de înregistrare ("HTTP/1.1 301 Mutat permanent"); header("Locație: ".$address_site."/form_register.php"); //Opriți ieșirea din script(); ) )else ( // Salvează mesajul de eroare în sesiune. $_SESSION["error_messages"] .= "

"; //Readuceți utilizatorul la antetul paginii de înregistrare ("HTTP/1.1 301 Mutat permanent"); header("Locație: ".$address_site."/form_register.php"); //Opriți ieșirea din script(); ) // (4) Locul pentru codul pentru adăugarea unui utilizator la baza de date

De o importanță deosebită este domeniul e-mail. Trebuie să verificăm formatul adresei poștale primite și unicitatea acesteia în baza de date. Adică există vreun utilizator cu aceeași adresă de e-mail deja înregistrat?

La locatia specificata" // (3) Locația codului pentru a verifica formatul adresei poștale și unicitatea acesteia" adăugați următorul cod:

//Verificați formatul adresei de e-mail primite folosind o expresie regulată $reg_email = "/^**@(+(*+)*\.)++/i"; //Dacă formatul adresei de e-mail primite nu se potrivește cu expresia regulată if(!preg_match($reg_email, $email))( // Salvează mesajul de eroare în sesiune. $_SESSION["error_messages"] .= "

Ați introdus un e-mail incorect

"; //Readuceți utilizatorul la antetul paginii de înregistrare ("HTTP/1.1 301 Mutat permanent"); header("Locație: ".$address_site."/form_register.php"); //Opriți ieșirea din script(); ) // Verificăm dacă o astfel de adresă este deja în baza de date. $result_query = $mysqli->query("SELECT `email` FROM `users` WHERE `email`="".$email."""); / /Dacă numărul de primite există exact un rând, ceea ce înseamnă că utilizatorul cu această adresă de e-mail este deja înregistrat if($result_query->num_rows == 1)( //Dacă rezultatul rezultat nu este fals if(($row = $result_query->fetch_assoc()) != false) ( // Salvează mesajul de eroare în sesiune. $_SESSION["error_messages"] .= "

Un utilizator cu această adresă de e-mail este deja înregistrat

"; //Readuceți utilizatorul la antetul paginii de înregistrare ("HTTP/1.1 301 Mutat permanent"); header("Locație: ".$address_site."/form_register.php"); )else( // Salvați mesajul de eroare la sesiune . $_SESSION["error_messages"] .= "

Eroare la interogarea bazei de date

"; //Readuceți utilizatorul la antetul paginii de înregistrare ("HTTP/1.1 301 Mutat permanent"); header("Locație: ".$address_site."/form_register.php"); ) /* închiderea selecției */ $ result_query-> close(); //Oprește scriptul exit(); ) /* închiderea selecției */ $result_query->close();

Și așa, am terminat cu toate verificările, este timpul să adăugăm utilizatorul la baza de date. La locatia specificata" // (4) Locul pentru codul pentru adăugarea unui utilizator la baza de date" adăugați următorul cod:

//Interogare pentru a adăuga un utilizator la baza de date $result_query_insert = $mysqli->query("INSERT INTO `users` (prenume, prenume, e-mail, parolă) VALUES ("".$prenume."", "".$nume ." ", "".$email.", "".$parolă."")"); if(!$result_query_insert)( // Salvează mesajul de eroare în sesiune. $_SESSION["error_messages"] .= "

Eroare la solicitarea de adăugare a utilizatorului la baza de date

"; //Readuceți utilizatorul la antetul paginii de înregistrare ("HTTP/1.1 301 Mutat permanent"); header("Locație: ".$address_site."/form_register.php"); //Opriți ieșirea din script(); )else( $_SESSION["success_messages"] = "

Înregistrarea s-a încheiat cu succes!!!
Acum vă puteți autentifica folosind numele de utilizator și parola.

"; //Trimite utilizatorul la antetul paginii de autorizare ("HTTP/1.1 301 Mutat permanent"); header ("Locație: ".$address_site."/form_auth.php"); ) /* Completarea cererii */ $ result_query_insert-> close(); //Închide conexiunea la baza de date $mysqli->close();

Dacă a apărut o eroare în cererea de adăugare a unui utilizator la baza de date, adăugăm un mesaj despre această eroare în sesiune și returnăm utilizatorul la pagina de înregistrare.

În rest, dacă totul a mers bine, adăugăm și un mesaj la sesiune, dar de data aceasta este mai plăcut, și anume îi spunem utilizatorului că înregistrarea a avut succes. Și îl redirecționăm către pagina cu formularul de autorizare.

Scriptul pentru verificarea formatului adresei de e-mail și a lungimii parolei se află în fișier header.php, deci se va aplica și câmpurilor din acest formular.

Sesiunea este începută și în fișier header.php, deci în dosar form_auth.php Nu este nevoie să începem o sesiune, deoarece vom primi o eroare.


După cum am spus deja, aici funcționează și scriptul pentru verificarea formatului adresei de e-mail și a lungimii parolei. Prin urmare, dacă utilizatorul introduce o adresă de e-mail incorectă sau o parolă scurtă, va primi imediat un mesaj de eroare. Un buton a intra va deveni inactiv.

După remedierea erorilor, butonul a intra devine activ, iar utilizatorul va putea trimite formularul la server, unde va fi procesat.

Autorizarea utilizatorului

Pentru a atribui valoare acțiune handicapul de autorizare are un dosar specificat auth.php, aceasta înseamnă că formularul va fi procesat în acest fișier.

Și așa, deschideți fișierul auth.phpși scrieți codul pentru a procesa formularul de autorizare. Primul lucru pe care trebuie să-l faceți este să începeți o sesiune și să conectați fișierul dbconnect.php pentru a se conecta la baza de date.

Când faceți clic pe linkul de ieșire de pe site, suntem duși la un fișier logout.php, unde pur și simplu distrugem celulele cu adresa de e-mail și parola din sesiune. După aceasta, returnăm utilizatorul înapoi la pagina pe care a fost făcut clic pe link Ieșire.

Cod fișier logout.php:

Asta e tot. Acum știți cum să implementați și să procesați formularele de înregistrare și autorizare a utilizatorilor pe site-ul dvs. Aceste formulare se găsesc pe aproape fiecare site web, așa că fiecare programator ar trebui să știe cum să le creeze.

De asemenea, am învățat cum să validăm datele de intrare, atât pe partea client (în browser, folosind JavaScript, jQuery), cât și pe partea server (folosind PHP). De asemenea, am învățat cum să implementăm o procedură de părăsire a site-ului.

Toate scripturile au fost testate și funcționează. Puteți descărca arhiva cu fișierele acestui mic site de pe acest link.

Pe viitor voi scrie un articol unde voi descrie. Și mai am de gând să scriu un articol în care să explic (fără a reîncărca pagina). Deci, pentru a fi la curent cu lansarea de noi articole, vă puteți abona la site-ul meu.

Dacă aveți întrebări, vă rugăm să mă contactați, iar dacă observați vreo eroare în articol, vă rog să-mi spuneți.

Planul de lecție (Partea 5):

  • Crearea unei structuri HTML pentru formularul de autorizare
  • Prelucrăm datele primite
  • Afișăm salutul utilizatorului în antetul site-ului
  • Ți-a plăcut articolul?

    Vom învăța cum să facem autentificarea simplă a utilizatorului pe site. Site-ul poate avea pagini doar pentru utilizatorii autorizați și vor funcționa pe deplin dacă le adăugăm blocul nostru de autentificare. Pentru a-l crea, aveți nevoie de o bază de date MySQL. Poate avea 5 coloane (minimum), sau mai multe dacă doriți să adăugați informații despre utilizatori. Să numim baza de date „Userauth”.

    Să creăm următoarele câmpuri în el: ID pentru numărarea numărului de utilizatori, UID pentru numărul unic de identificare al utilizatorului, Nume de utilizator pentru numele utilizatorului, E-mail pentru adresa sa de e-mail și Parolă pentru parolă. Puteți utiliza baza de date existentă pentru a autoriza utilizatorul, doar, ca și în cazul unei noi baze de date, creați următorul tabel în ea.

    Cod MySQL

    CREATE TABLE `users` (`ID` int (11) NOT NULL AUTO_INCREMENT, `UID` int (11) NOT NULL, `Username` text NOT NULL, `Email` text NOT NULL, `Parolă` text NOT NULL, CHEIE PRIMARĂ (`ID`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

    Acum să creăm fișierul „sql.php”. Este responsabil pentru conectarea la baza de date. Acest cod, în primul rând, creează variabile pentru server și utilizator atunci când acesta se conectează la server. În al doilea rând, va selecta baza de date, în acest caz „USERAUTH”. Acest fișier trebuie inclus în „log.php” și „reg.php” pentru a accesa baza de date.

    Cod PHP

    Urmează pagina de autentificare, să se numească „login.php”. În primul rând, verifică datele introduse pentru erori. Pagina are câmpuri pentru nume de utilizator, parolă, buton de trimitere și link de înregistrare. Când utilizatorul face clic pe butonul „Login”, formularul va fi procesat de codul din fișierul „log.php” și apoi se va autentifica.

    Cod PHP

    Formular de autentificare

    Nume de utilizator
    Parola
    Înregistrare

    Apoi scriem un script pentru a vă conecta în sistem. Să-i spunem „log.php”. Are o funcție de curățare a datelor de intrare din injecțiile SQL care vă pot distruge scriptul. În al doilea rând, primește datele formularului și le verifică corectitudinea. Dacă datele introduse sunt corecte, scriptul trimite utilizatorul la pagina de utilizatori autorizați, dacă nu, setează erori și trimite utilizatorul la pagina de autentificare.

    Cod PHP

    Să facem o pagină de înregistrare, numiți-o „register.php”. Este similar cu pagina de autentificare, doar că mai are câteva câmpuri, iar în loc de un link de înregistrare, există un link către login.php în cazul în care utilizatorul are deja un cont.

    Cod PHP

    Formular de înregistrare

    Nume de utilizator
    E-mail
    Parola
    Repetați parola
    am un cont

    Acum vom crea un script de înregistrare în fișierul „reg.php”. Acesta va include „sql.php” pentru a vă conecta la baza de date. Este folosită aceeași funcție ca și în scriptul de conectare pentru a șterge câmpul de introducere. Variabilele sunt setate pentru posibile erori. Urmează o funcție pentru a crea un identificator unic care nu a fost furnizat niciodată înainte. Datele din formularul de înregistrare sunt apoi extrase și verificate. Se face o verificare pentru a se asigura că adresa de e-mail este în formatul corect și că parola este reintrodusă corect. Apoi, scriptul verifică dacă există un utilizator cu același nume în baza de date și, dacă da, raportează o eroare. În cele din urmă, codul adaugă utilizatorul la baza de date.

    Cod PHP

    De asemenea, trebuie să creați un script pentru a deconecta utilizatorul din sistem. Acesta încheie sesiunea pentru utilizator cu ID-ul și numele unic dat, apoi redirecționează utilizatorul către pagina de conectare.

    Cod PHP

    În cele din urmă, scriptul „auth.php” poate fi folosit pentru a face paginile accesibile numai utilizatorilor autorizați. Verifică detaliile de conectare și, dacă sunt corecte, permite utilizatorului să răsfoiască paginile, iar dacă nu, îi cere să se autentifice. În plus, dacă cineva încearcă să pirateze site-ul prin crearea uneia dintre sesiuni, acesta va fi întrerupt, ca în cazul general.

    Cod PHP

    Una dintre condițiile din codul de mai sus este subiectul întrebării în .

    Următorul cod trebuie inserat în pagina pentru utilizatorii autorizați, se numește, de exemplu, „member.php”, dar al tău poate fi numit orice vrei.

    Cod PHP

    Sunteți autorizat să accesați această pagină. Ieși ( )

    Autentificarea utilizatorului este gata!

    Ultima modificare pe 5 aprilie 2018 de Vincy.

    Autentificarea și înregistrarea utilizatorului este o cerință de bază pentru orice aplicație CMS. Aceasta este munca inițială în timpul pornirii unui proiect. Aplicația cu autentificare de conectare a utilizatorului oferă securitate prin împiedicarea accesului anonim. Există diferite moduri de a activa autentificarea în aplicația noastră, cum ar fi activarea autentificarii OAuth sau implementarea Single Sign-on (SSO) și alte moduri similare. Într-un tutorial anterior, am văzut cum să implementăm și, de asemenea, despre.

    Acest exemplu include atât funcționalitățile de conectare, cât și de înregistrare. Am folosit baza de date MySQL pentru a stoca membrii înregistrați. Înregistrarea utilizatorului va conține informații pentru a obține detalii de la utilizator. La trimiterea acestui formular, datele formularului sunt postate în PHP și stocate în baza de date. Parola utilizatorului va fi criptată înainte de a fi stocată în baza de date. înainte de a posta în codul PHP. Când utilizatorul este autentificat cu acreditările valide, atunci utilizatorul și el vor avea voie să continue.

    Formular de înregistrare a utilizatorului

    Acest cod este pentru a arăta utilizatorului formularul de înscriere. Când utilizatorul trimite formularul cu detaliile sale, funcția JavaScript va fi apelată pentru a valida introducerea utilizatorului. După validarea cu succes, codul PHP va citi datele formularului postat pentru a executa inserarea bazei de date.