Regjistrimi i autoritetit të pazot php

10/05/2015 Romchik

Diten e mire. Në këtë artikull, ne do të përdorim një shembull për të analizuar regjistrimin e përdoruesit në . Më pas aktivizoni përdoruesin duke konfirmuar adresën e tij të emailit. Dhe së fundi, autorizimi i përdoruesit në . Por vetëm përdoruesit aktivë duhet të autorizohen.

Gjëja e parë që do të bëjmë është të krijojmë një kontrollues dhe një pamje për regjistrim.

Krijimi i një formulari regjistrimi

Shkoni te drejtoria me shabllonet e burimeve dhe krijoni nëndirektorinë auth në të. Tani në dosjen auth ne do të krijojmë një skedar register.blade.php me kodin e mëposhtëm:

Regjistrimi

((--Gabimet--)) @if ($errors->has()) ×
    @foreach($errors->all() si $gabim)
  • ((( $gabim )))
  • @endforeach
@endif (!! csrf_field() ! Email Пароль Повторите пароль Отправить !}

Unë nuk do ta shpjegoj kodin e mësipërm, gjithçka është e qartë këtu.

App/Http/Controllers/Auth/AuthController.php

Ne do të anashkalojmë vetëm metodat e kontrolluesit AuthController.php. Pra, për të shfaqur formularin e regjistrimit, ekziston një metodë getRegister. Ne nuk e prekim këtë metodë.

Tani le të kalojmë te rrugët. Hapni skedarin:

Dhe përcaktoni rrugën drejt metodës sonë:

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

Tani le të hapim aplikacionin tonë në shfletues. E shkëlqyeshme, ne shohim formularin e regjistrimit.

Regjistrimi i përdoruesit në

Le të përcaktojmë menjëherë rrugën për regjistrimin e përdoruesit. Le të shkojmë te skedari:

App/Http/Controllers/routes.php

Dhe shtoni rrugën e mëposhtme:

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

Tani le të krijojmë një tabelë për të ruajtur përdoruesit. Ka tashmë një migrim për këtë tabelë, por nuk është e përshtatshme për ne. Le ta ndryshojmë. Le të shkojmë te skedari:

Baza e të dhënave/migrations/2014_10_12_create_users_table.php

Dhe le të ndryshojmë kodin:

Në rastin tim duket kështu:

Ruaj bd.php.
E shkëlqyeshme! Ne kemi një tabelë në bazën e të dhënave dhe një lidhje me të. Tani mund të filloni të krijoni një faqe në të cilën përdoruesit do të lënë të dhënat e tyre.

3. Krijoni një skedar reg.php me përmbajtjen (të gjitha komentet brenda):



Regjistrimi


Regjistrimi


Hyrja juaj:




Fjalëkalimi juaj:








4. Krijoni një skedar që do të futë të dhëna në bazën e të dhënave dhe do të ruajë përdoruesin. save_user.php (komentet brenda):

5. Tani përdoruesit tanë mund të regjistrohen! Tjetra, duhet të krijoni një "derë" për përdoruesit e regjistruar tashmë që të hyjnë në sit. index.php (komentet brenda):




Faqja kryesore


Faqja kryesore


Hyrja juaj:


Fjalëkalimi juaj:






Regjistrohu



OK tani ka mbaruar! Mësimi mund të jetë i mërzitshëm, por shumë i dobishëm. Këtu shfaqet vetëm ideja e regjistrimit, atëherë mund ta përmirësoni: shtoni sigurinë, dizajnin, fushat e të dhënave, ngarkimin e avatarëve, daljen nga llogaria juaj (për ta bërë këtë, thjesht shkatërroni variablat nga seanca me funksionin e pacaktuar) dhe kështu me radhë. Paç fat!

Kontrollova gjithçka, funksionon siç duhet!

Në këtë artikull, do të mësoni se si të krijoni një formular regjistrimi dhe identifikimi duke përdorur HTML, JavaScript, PHP dhe MySql. Forma të tilla përdoren pothuajse në çdo faqe interneti, pavarësisht nga lloji i saj. Ato janë krijuar për një forum, një dyqan online, rrjete sociale (si Facebook, Twitter, Odnoklassniki) dhe shumë lloje të tjera faqesh.

Nëse keni një faqe interneti në kompjuterin tuaj lokal, atëherë shpresoj që tashmë keni një server lokal të instaluar dhe funksional. Pa të, asgjë nuk do të funksionojë.

Krijimi i një tabele në bazën e të dhënave

Për të zbatuar regjistrimin e përdoruesve, para së gjithash na duhet një bazë e të dhënave. Nëse e keni tashmë, atëherë shkëlqyeshëm, përndryshe, ju duhet ta krijoni atë. Në artikull, unë shpjegoj në detaje se si ta bëj këtë.

Dhe kështu, ne kemi një bazë të dhënash (shkurtuar si DB), tani duhet të krijojmë një tabelë përdoruesit në të cilin do të shtojmë përdoruesit tanë të regjistruar.

Unë gjithashtu shpjegova se si të krijoni një tabelë në një bazë të dhënash në artikull. Para se të krijojmë një tabelë, duhet të përcaktojmë se cilat fusha do të përmbajë. Këto fusha do të korrespondojnë me fushat nga formulari i regjistrimit.

Kështu, menduam, imagjinuam se çfarë fusha do të kishte forma jonë dhe krijuam një tabelë përdoruesit me këto fusha:

  • id- Identifikues. Fusha idÇdo tabelë në bazën e të dhënave duhet ta ketë atë.
  • Emri- Për të ruajtur emrin.
  • mbiemri- Për të ruajtur mbiemrin.
  • email- Për të ruajtur adresën postare. Ne do të përdorim e-mail si hyrje, kështu që kjo fushë duhet të jetë unike, domethënë të ketë indeksin UNIQUE.
  • statusi_email- Fusha për të treguar nëse posta është konfirmuar apo jo. Nëse posta konfirmohet, atëherë ajo do të ketë një vlerë prej 1, përndryshe vlera është 0.
  • fjalëkalimin- Për të ruajtur fjalëkalimin.


Nëse dëshironi që formulari juaj i regjistrimit të ketë disa fusha të tjera, mund t'i shtoni edhe këtu.

Kjo është ajo, tavolina jonë përdoruesit gati. Le të kalojmë në fazën tjetër.

Lidhja e bazës së të dhënave

Ne kemi krijuar bazën e të dhënave, tani duhet të lidhemi me të. Ne do të lidhemi duke përdorur shtesën PHP MySQLi.

Në dosjen e faqes sonë, krijoni një skedar me emrin dbconnect.php, dhe shkruani skriptin e mëposhtëm në të:

Ky skedar dbconnect.php do të duhet të lidhen për mbajtësit e formave.

Vini re variablin $adresa_site, këtu kam treguar emrin e faqes sime të testimit në të cilën do të punoj. Ju lutemi tregoni emrin e faqes tuaj në përputhje me rrethanat.

Struktura e sitit

Tani le të shohim strukturën HTML të faqes sonë.

Ne do të zhvendosim kokën dhe fundin e faqes në skedarë të veçantë, header.php Dhe footer.php. Ne do t'i përfshijmë ato në të gjitha faqet. Gjegjësisht në faqen kryesore (skedar indeks.php), në faqen me formularin e regjistrimit (skedar form_regjistrim.php) dhe në faqen me formularin e autorizimit (skedar form_auth.php).

Blloko me lidhjet tona, regjistrimin Dhe autorizimi, shtoni ato në kokën e faqes në mënyrë që të shfaqen në të gjitha faqet. Një lidhje do të hyjë në faqen me formularin e regjistrimit (skedar form_regjistrim.php) dhe tjetra në faqen me formularin e autorizimit (skedar form_auth.php).

Përmbajtja e skedarit header.php:

Emri i faqes sonë

Si rezultat, faqja jonë kryesore duket si kjo:


Sigurisht, faqja juaj mund të ketë një strukturë krejtësisht të ndryshme, por kjo nuk është e rëndësishme për ne tani. Gjëja kryesore është se ka lidhje (butona) për regjistrim dhe autorizim.

Tani le të kalojmë te formulari i regjistrimit. Siç e kuptoni tashmë, ne e kemi atë në dosje form_regjistrim.php.

Shkoni te baza e të dhënave (në phpMyAdmin), hapni strukturën e tabelës përdoruesit dhe shikoni se cilat fusha na duhen. Kjo do të thotë se na duhen fusha për futjen e emrit dhe mbiemrit, një fushë për futjen e adresës postare (Email) dhe një fushë për futjen e fjalëkalimit. Dhe për qëllime sigurie, ne do të shtojmë një fushë për të futur një captcha.

Në server, si rezultat i përpunimit të formularit të regjistrimit, mund të ndodhin gabime të ndryshme për shkak të të cilave përdoruesi nuk do të jetë në gjendje të regjistrohet. Prandaj, në mënyrë që përdoruesi të kuptojë pse regjistrimi dështon, është e nevojshme të shfaqen mesazhe në lidhje me këto gabime.

Përpara se të shfaqni formularin, shtoni një bllok për të shfaqur mesazhet e gabimit nga sesioni.

Dhe një gjë tjetër, nëse përdoruesi është tashmë i autorizuar, dhe për kuriozitet ai shkon direkt në faqen e regjistrimit duke shkruar në shiritin e adresave të shfletuesit adresa_site/form_register.php, atëherë në këtë rast, në vend të formularit të regjistrimit, ne do të shfaqim një kokë që thotë se ai tashmë është i regjistruar.

Në përgjithësi, kodi i skedarit form_regjistrim.php kemi marrë këtë:

Ju jeni regjistruar tashmë

Në shfletues, faqja me formularin e regjistrimit duket si kjo:


Duke përdorur atributin e kërkuar, ne i bëmë të detyrueshme të gjitha fushat.

Kushtojini vëmendje kodit të formularit të regjistrimit ku shfaqet captcha:


Ne specifikuam shtegun e skedarit në vlerën e atributit src për imazhin captcha.php, e cila gjeneron këtë captcha.

Le të shohim kodin e skedarit captcha.php:

Kodi është komentuar mirë, ndaj do të fokusohem vetëm në një pikë.

Brenda një funksioni imageTtfText(), shtegu për në font është specifikuar verdana.ttf. Pra, që captcha të funksionojë siç duhet, duhet të krijojmë një dosje fontet, dhe vendosni skedarin e shkronjave atje verdana.ttf. Mund ta gjeni dhe ta shkarkoni nga Interneti, ose ta merrni nga arkivi me materialet e këtij artikulli.

Kemi mbaruar me strukturën HTML, është koha për të ecur përpara.

Kontrollimi i vlefshmërisë së emailit duke përdorur jQuery

Çdo formë duhet të kontrollojë vlefshmërinë e të dhënave të futura, si në anën e klientit (duke përdorur JavaScript, jQuery) dhe në anën e serverit.

Ne duhet t'i kushtojmë vëmendje të veçantë fushës Email. Është shumë e rëndësishme që adresa postare e futur të jetë e vlefshme.

Për këtë fushë hyrëse, ne vendosëm llojin e emailit (type="email"), kjo na paralajmëron pak nga formatet e pasakta. Por kjo nuk mjafton, sepse përmes inspektorit të kodit që na ofron shfletuesi, mund të ndryshojmë lehtësisht vlerën e atributit lloji Me emailteksti, dhe kaq, çeku ynë nuk do të jetë më i vlefshëm.


Dhe në këtë rast, ne duhet të bëjmë një kontroll më të besueshëm. Për ta bërë këtë, ne do të përdorim bibliotekën jQuery nga JavaScript.

Për të lidhur bibliotekën jQuery, në skedar header.php midis etiketave , përpara etiketës mbyllëse , shtoni këtë rresht:

Menjëherë pas kësaj rreshti, ne do të shtojmë kodin e vërtetimit të emailit. Këtu do të shtojmë një kod për të kontrolluar gjatësinë e fjalëkalimit të futur. Gjatësia e saj duhet të jetë së paku 6 karaktere.

Duke përdorur këtë skript, ne kontrollojmë adresën e postës elektronike të futur për vlefshmëri. Nëse përdoruesi ka futur një email të pasaktë, ne shfaqim një mesazh gabimi në lidhje me këtë dhe çaktivizojmë butonin e paraqitjes së formularit. Nëse gjithçka është në rregull, atëherë ne heqim gabimin dhe aktivizojmë butonin e paraqitjes së formularit.

Dhe kështu, ne kemi përfunduar me vërtetimin e formularit në anën e klientit. Tani mund ta dërgojmë në server, ku do të bëjmë edhe disa kontrolle dhe do të shtojmë të dhëna në bazën e të dhënave.

Regjistrimi i përdoruesit

Ne e dërgojmë formularin në dosje për përpunim regjistrohen.php, me metodën POST. Emri i këtij skedari mbajtës është specifikuar në vlerën e atributit veprim. Dhe metoda e dërgimit specifikohet në vlerën e atributit metodë.

Hapeni këtë skedar regjistrohen.php dhe gjëja e parë që duhet të bëjmë është të shkruajmë një funksion të nisjes së sesionit dhe të lidhim skedarin që kemi krijuar më parë dbconnect.php(Në këtë skedar kemi bërë një lidhje me bazën e të dhënave). Dhe gjithashtu, le të deklarojmë menjëherë qelizat mesazhet_error Dhe mesazhet_sukses në grupin global të sesioneve. NË mesazhet_error ne do të regjistrojmë të gjitha mesazhet e gabimit që ndodhin gjatë përpunimit të formularit, dhe në mesazhet_sukses, do të regjistrojmë mesazhe të gëzueshme.

Përpara se të vazhdojmë, duhet të kontrollojmë nëse formulari është dorëzuar fare. Një sulmues mund të shikojë vlerën e atributit veprim nga formulari dhe zbuloni se cili skedar po përpunon këtë formular. Dhe ai mund të ketë idenë të shkojë drejtpërdrejt te ky skedar duke shtypur adresën e mëposhtme në shiritin e adresave të shfletuesit: http://site_adresa/register.php

Pra, ne duhet të kontrollojmë për një qelizë në grupin global POST, emri i së cilës përputhet me emrin e butonit tonë "Regjistrohu" nga formulari. Në këtë mënyrë kontrollojmë nëse butoni "Regjistrohu" është klikuar apo jo.

Nëse një sulmues përpiqet të shkojë drejtpërdrejt në këtë skedar, ai do të marrë një mesazh gabimi. Më lejoni t'ju kujtoj se ndryshorja $address_site përmban emrin e sajtit dhe është deklaruar në skedar dbconnect.php.

Vlera captcha në seancë u shtua kur u krijua, në skedar captcha.php. Si kujtesë, do t'ju tregoj përsëri këtë pjesë të kodit nga skedari captcha.php, ku vlera captcha i shtohet seancës:

Tani le të vazhdojmë me vetë verifikimin. Në dosje regjistrohen.php, brenda bllokut if, ku kontrollojmë nëse është klikuar butoni "Regjistrohu", ose më mirë ku tregohet komenti "" // (1) Hapësirë ​​për pjesën tjetër të kodit"ne shkruajmë:

//Kontrollo kaptchën e marrë //Të shkurtosh hapësirat nga fillimi dhe fundi i rreshtit $captcha = trim($_POST["captcha"]); if(isset($_POST["captcha"]) && !empty($captcha))( //Krahaso vlerën e marrë me vlerën nga sesioni. if(($_SESSION["rand"] != $captcha) && ($_SESSION ["rand"] != ""))( // Nëse captcha nuk është e saktë, atëherë ne e kthejmë përdoruesin në faqen e regjistrimit dhe atje do t'i shfaqim atij një mesazh gabimi se ai ka futur captcha të gabuar $error_message = "

Gabim! Ke futur captcha të gabuar

"; // Ruani mesazhin e gabimit në seancë. $_SESSION["error_messages"] = $error_message; // Kthejeni përdoruesin në kokën e faqes së regjistrimit ("HTTP/1.1 301 Moved Permanently"); header("Vendndodhja: " .$address_site ."/form_register.php"); //Ndalo daljen e skriptit(); ) // (2) Vendi për pjesën tjetër të kodit )else( //Nëse captcha nuk kalohet ose është bosh dilni ("

Gabim! Nuk ka asnjë kod verifikimi, domethënë një kod captcha. Mund të shkoni në faqen kryesore.

"); }

Më pas, duhet të përpunojmë të dhënat e marra nga grupi POST. Para së gjithash, duhet të kontrollojmë përmbajtjen e grupit global POST, domethënë nëse ka qeliza atje, emrat e të cilëve korrespondojnë me emrat e fushave hyrëse nga forma jonë.

Nëse qeliza ekziston, atëherë shkurtojmë hapësirat nga fillimi dhe fundi i rreshtit nga kjo qelizë, përndryshe, e ridrejtojmë përdoruesin përsëri në faqen me formularin e regjistrimit.

Më pas, pasi të kemi shkurtuar hapësirat, i shtojmë rreshtin variablës dhe e kontrollojmë këtë variabël për zbrazëti, nëse nuk është bosh, vazhdojmë, përndryshe e ridrejtojmë përdoruesin përsëri në faqen me formularin e regjistrimit.

Ngjite këtë kod në vendndodhjen e specifikuar" // (2) Hapësirë ​​për pjesën tjetër të kodit".

/* Kontrolloni nëse ka të dhëna të dërguara nga formulari në grupin global $_POST dhe mbështillni të dhënat e dorëzuara në variabla të rregullt.*/ if(isset($_POST["first_name"]))( //Shkurtoni hapësirat nga fillimi dhe fundi i vargut $first_name = trim($_POST["first_name"]); //Kontrollo variablin për zbrazëti if(!empty($first_name))( // Për siguri, konverto karaktere speciale në entitete HTML $first_name = htmlspecialchars($first_name, ENT_QUOTES) ; )else( // Ruani mesazhin e gabimit në seancë. $_SESSION["error_messages"] .= "

Shkruaj emrin tend

Mungon fusha e emrit

"; //Kthejeni përdoruesin në kokën e faqes së regjistrimit ("HTTP/1.1 301 Lëvizur përgjithmonë"); header("Vendndodhja: ".$address_site."/form_register.php"); //Ndalo daljen e skriptit(); ) if( isset($_POST["last_name"]))( //Shkurto hapësirat nga fillimi dhe fundi i rreshtit $last_name = trim($_POST["last_name"]); if(!empty($last_name)) ( // Për siguri, konvertoni karakteret speciale në entitete HTML $last_name = htmlspecialchars($last_name, ENT_QUOTES); )else( // Ruani mesazhin e gabimit në seancë. $_SESSION["error_messages"] .= "

Ju lutemi shkruani mbiemrin tuaj

"; //Kthejeni përdoruesin në kokën e faqes së regjistrimit ("HTTP/1.1 301 Lëvizur përgjithmonë"); header("Vendndodhja: ".$address_site."/form_register.php"); //Ndalo daljen e skriptit(); ) )else ( // Ruani mesazhin e gabimit në seancë. $_SESSION["error_messages"] .= "

Mungon fusha e mbiemrit

"; //Kthejeni përdoruesin në kokën e faqes së regjistrimit ("HTTP/1.1 301 Lëvizur përgjithmonë"); header("Vendndodhja: ".$address_site."/form_register.php"); //Ndalo daljen e skriptit(); ) if( isset($_POST["email"]))( //Shkurto hapësirat nga fillimi dhe fundi i rreshtit $email = trim($_POST["email"]); if(!empty($email)) ( $email = htmlspecialchars ($email, ENT_QUOTES); // (3) Vendndodhja e kodit për kontrollimin e formatit të adresës së emailit dhe unike të saj )else( // Ruani mesazhin e gabimit në seancë. $_SESSION["error_messages"] . = "

Shkruani emailin tuaj

"; //Kthejeni përdoruesin në kokën e faqes së regjistrimit ("HTTP/1.1 301 Lëvizur përgjithmonë"); header("Vendndodhja: ".$address_site."/form_register.php"); //Ndalo daljen e skriptit(); ) )else ( // Ruani mesazhin e gabimit në seancë. $_SESSION["error_messages"] .= "

"; //Kthejeni përdoruesin në kokën e faqes së regjistrimit ("HTTP/1.1 301 Lëvizur përgjithmonë"); header("Vendndodhja: ".$address_site."/form_register.php"); //Ndalo daljen e skriptit(); ) if( isset($_POST["fjalëkalimi"]))( //Prit hapësirat nga fillimi dhe fundi i vargut $password = trim($_POST["password"]); if(!empty($password)) ( $password = htmlspecialchars ($password, ENT_QUOTES); //Enkriptoni fjalëkalimin $password = md5($password."top_secret"); )else( // Ruani mesazhin e gabimit në seancë. $_SESSION["error_messages"] . = "

Futni fjalëkalimin tuaj

"; //Kthejeni përdoruesin në kokën e faqes së regjistrimit ("HTTP/1.1 301 Lëvizur përgjithmonë"); header("Vendndodhja: ".$address_site."/form_register.php"); //Ndalo daljen e skriptit(); ) )else ( // Ruani mesazhin e gabimit në seancë. $_SESSION["error_messages"] .= "

"; //Kthejeni përdoruesin në kokën e faqes së regjistrimit ("HTTP/1.1 301 Lëvizur përgjithmonë"); header("Vendndodhja: ".$address_site."/form_register.php"); //Ndalo daljen e skriptit(); ) // (4) Vendi për kodin për shtimin e një përdoruesi në bazën e të dhënave

Me rëndësi të veçantë është fusha email. Ne duhet të kontrollojmë formatin e adresës postare të marrë dhe veçantinë e saj në bazën e të dhënave. Kjo do të thotë, a ka ndonjë përdorues me të njëjtën adresë emaili të regjistruar tashmë?

në vendin e caktuar" // (3) Vendndodhja e kodit për të kontrolluar formatin e adresës postare dhe veçantinë e saj" shtoni kodin e mëposhtëm:

//Kontrollo formatin e adresës së emailit të marrë duke përdorur një shprehje të rregullt $reg_email = "/^**@(+(*+)*\.)++/i"; //Nëse formati i adresës së emailit të marrë nuk përputhet me shprehjen e rregullt if(!preg_match($reg_email, $email))( // Ruani mesazhin e gabimit në seancë. $_SESSION["error_messages"] .= "

Ke futur një email të pasaktë

"; //Kthejeni përdoruesin në kokën e faqes së regjistrimit ("HTTP/1.1 301 Lëvizur përgjithmonë"); header("Vendndodhja: ".$address_site."/form_register.php"); //Ndalo daljen e skriptit(); ) // Kontrollojmë nëse një adresë e tillë është tashmë në bazën e të dhënave. $result_query = $mysqli->query("SELECT `email` FROM `users` WHERE `email`="".$email."""); / /Nëse numri i të pranuarve është saktësisht një rresht, që do të thotë se përdoruesi me këtë adresë emaili është tashmë i regjistruar nëse ($result_query->num_rows == 1)( //Nëse rezultati që rezulton nuk është i rremë nëse (($row = $result_query->fetch_assoc()) != false) ( // Ruaje mesazhin e gabimit në seancë. $_SESSION["error_messages"] .= "

Një përdorues me këtë adresë emaili është regjistruar tashmë

"; //Kthejeni përdoruesin në kokën e faqes së regjistrimit ("HTTP/1.1 301 u zhvendos përgjithmonë"); header("Vendndodhja: ".$address_site."/form_register.php"); )else( // Ruani mesazhin e gabimit në seancë . $_SESSION["error_messages"] .= "

Gabim në pyetjen e bazës së të dhënave

"; //Kthejeni përdoruesin në kokën e faqes së regjistrimit ("HTTP/1.1 301 Lëvizur përgjithmonë"); header("Vendndodhja: ".$address_site."/form_register.php"); ) /* duke mbyllur përzgjedhjen */ $ result_query-> mbyll (); //Ndalo daljen e skriptit (); ) /* duke mbyllur përzgjedhjen */ $result_query->mbyll();

Dhe kështu, ne kemi mbaruar me të gjitha kontrollet, është koha për të shtuar përdoruesin në bazën e të dhënave. në vendin e caktuar" // (4) Vendi për kodin për shtimin e një përdoruesi në bazën e të dhënave" shtoni kodin e mëposhtëm:

//Pyetje për të shtuar një përdorues në bazën e të dhënave $result_query_insert = $mysqli->query("INSERT INTO `users` (first_name, last_name, email, password) VALUES ("".$first_name."", "".$last_name ." ", "".$email.", "".$password."")"); if(!$result_query_insert)( // Ruani mesazhin e gabimit në seancë. $_SESSION["error_messages"] .= "

Gabim në kërkesën për të shtuar përdorues në bazën e të dhënave

"; //Kthejeni përdoruesin në kokën e faqes së regjistrimit ("HTTP/1.1 301 Lëvizur përgjithmonë"); header("Vendndodhja: ".$address_site."/form_register.php"); //Ndalo daljen e skriptit(); )else( $_SESSION["success_messages"] = "

Regjistrimi përfundoi me sukses!!!
Tani mund të identifikoheni duke përdorur emrin e përdoruesit dhe fjalëkalimin tuaj.

"; //Dërgo përdoruesin në kokën e faqes së autorizimit ("HTTP/1.1 301 Lëvizur përgjithmonë"); header("Vendndodhja: ".$address_site."/form_auth.php"); ) /* Përfundimi i kërkesës */ $ result_query_insert-> close();//Mbyll lidhjen me bazën e të dhënave $mysqli->close();

Nëse ka ndodhur një gabim në kërkesën për të shtuar një përdorues në bazën e të dhënave, ne shtojmë një mesazh në lidhje me këtë gabim në seancë dhe e kthejmë përdoruesin në faqen e regjistrimit.

Përndryshe, nëse gjithçka shkoi mirë, ne i shtojmë edhe një mesazh seancës, por këtë herë është më e këndshme, domethënë i themi përdoruesit që regjistrimi ishte i suksesshëm. Dhe ne e ridrejtojmë atë në faqen me formularin e autorizimit.

Skripti për kontrollimin e formatit të adresës së emailit dhe gjatësisë së fjalëkalimit është në skedar header.php, kështu që do të zbatohet edhe për fushat nga ky formular.

Fillohet edhe seanca në dosje header.php, pra në dosje form_auth.php Nuk ka nevojë të fillojmë një seancë, sepse do të kemi një gabim.


Siç thashë tashmë, skripti për kontrollimin e formatit të adresës së postës elektronike dhe gjatësisë së fjalëkalimit gjithashtu funksionon këtu. Prandaj, nëse përdoruesi fut një adresë të gabuar emaili ose fjalëkalim të shkurtër, ai menjëherë do të marrë një mesazh gabimi. Një buton për të hyrë do të bëhet joaktive.

Pas rregullimit të gabimeve, butoni për të hyrë bëhet aktiv dhe përdoruesi do të mund ta dërgojë formularin në server, ku do të përpunohet.

Autorizimi i përdoruesit

Për të atribuar vlerën veprim handikapi i autorizimit ka një dosje të specifikuar auth.php, kjo do të thotë se formulari do të përpunohet në këtë skedar.

Dhe kështu, hapni skedarin auth.php dhe shkruani kodin për të përpunuar formularin e autorizimit. Gjëja e parë që duhet të bëni është të filloni një seancë dhe të lidhni skedarin dbconnect.php për t'u lidhur me bazën e të dhënave.

Kur klikoni në lidhjen e daljes nga faqja, ne çojmë te një skedar dalje.php, ku thjesht shkatërrojmë qelizat me adresën e emailit dhe fjalëkalimin nga sesioni. Pas kësaj, ne e kthejmë përdoruesin në faqen në të cilën është klikuar lidhja dalje.

Kodi i skedarit logout.php:

Kjo eshte e gjitha. Tani ju e dini se si të zbatoni dhe përpunoni formularët e regjistrimit dhe autorizimit të përdoruesve në faqen tuaj të internetit. Këto forma gjenden pothuajse në çdo faqe interneti, kështu që çdo programues duhet të dijë se si t'i krijojë ato.

Mësuam gjithashtu se si të vërtetojmë të dhënat hyrëse, si në anën e klientit (në shfletues, duke përdorur JavaScript, jQuery) dhe në anën e serverit (duke përdorur PHP). Mësuam gjithashtu se si të zbatojmë një procedurë për largimin nga siti.

Të gjitha skriptet janë testuar dhe janë duke punuar. Nga kjo lidhje mund ta shkarkoni arkivin me skedarët e kësaj faqeje të vogël.

Në të ardhmen do të shkruaj një artikull ku do të përshkruaj. Dhe gjithashtu planifikoj të shkruaj një artikull ku do të shpjegoj (pa ringarkuar faqen). Pra, në mënyrë që të qëndroni të informuar për publikimin e artikujve të rinj, ju mund të abonoheni në faqen time të internetit.

Nëse keni ndonjë pyetje, ju lutem më kontaktoni dhe nëse vëreni ndonjë gabim në artikull, ju lutem më njoftoni.

Plani i mësimit (Pjesa 5):

  • Krijimi i një strukture HTML për formularin e autorizimit
  • Ne përpunojmë të dhënat e marra
  • Ne shfaqim përshëndetjen e përdoruesit në kokën e faqes
  • Ju pëlqeu artikulli?

    Ne do të mësojmë se si të bëjmë vërtetimin e thjeshtë të përdoruesit në sit. Sajti mund të ketë faqe vetëm për përdoruesit e autorizuar dhe ato do të funksionojnë plotësisht nëse u shtojmë bllokun tonë të vërtetimit. Për ta krijuar atë, ju nevojitet një bazë të dhënash MySQL. Mund të ketë 5 kolona (minimumi), ose më shumë nëse dëshironi të shtoni informacione rreth përdoruesve. Le ta quajmë bazën e të dhënave "Userauth".

    Le të krijojmë në të fushat e mëposhtme: ID për numërimin e numrit të përdoruesve, UID për numrin unik të identifikimit të përdoruesit, Emri i përdoruesit për emrin e përdoruesit, Email për adresën e tij të emailit dhe Fjalëkalimi për fjalëkalimin. Ju mund të përdorni bazën e të dhënave ekzistuese për të autorizuar përdoruesin, thjesht, si në rastin e një databaze të re, krijoni tabelën e mëposhtme në të.

    Kodi MySQL

    KRIJO TABELA `përdoruesit` (`ID` int (11) NOT NULL AUTO_INCREMENT, `UID` int (11) JO NULL, teksti i `emrit të përdoruesit` NUK NULL, teksti i postës elektronike` JO NULL, Teksti i `fjalëkalimit` JO NULL, ÇELËSI PRIMAR (`ID`)) MOTORI=MyISAM SHARSET DEFAULT=utf8 AUTO_INCREMENT=1 ;

    Tani le të krijojmë skedarin "sql.php". Është përgjegjës për lidhjen me bazën e të dhënave. Ky kod, së pari, krijon variabla për serverin dhe përdoruesin kur ai lidhet me serverin. Së dyti, do të zgjedhë bazën e të dhënave, në këtë rast "USERAUTH". Ky skedar duhet të përfshihet në "log.php" dhe "reg.php" për të hyrë në bazën e të dhënave.

    Kodi PHP

    Tjetra është faqja e hyrjes, le të quhet "login.php". Së pari, kontrollon të dhënat e futura për gabime. Faqja ka fusha për emrin e përdoruesit, fjalëkalimin, butonin e dorëzimit dhe lidhjen e regjistrimit. Kur përdoruesi klikon butonin "Identifikohu", formulari do të përpunohet nga kodi nga skedari "log.php" dhe më pas do të identifikohet.

    Kodi PHP

    Formulari i hyrjes

    Emri i përdoruesit
    Fjalëkalimi
    Regjistrimi

    Pastaj shkruajmë një skript për t'u futur në sistem. Le ta quajmë "log.php". Ka një funksion për të pastruar të dhënat hyrëse nga injeksionet SQL që mund të prishin skriptin tuaj. Së dyti, ai merr të dhënat e formularit dhe i kontrollon ato për korrektësi. Nëse të dhënat hyrëse janë të sakta, skripti e dërgon përdoruesin në faqen e përdoruesve të autorizuar, nëse jo, vendos gabime dhe e dërgon përdoruesin në faqen e hyrjes.

    Kodi PHP

    Le të bëjmë një faqe regjistrimi, ta quajmë "register.php". Është e ngjashme me faqen e hyrjes, vetëm se ka disa fusha të tjera, dhe në vend të lidhjes së regjistrimit, ka një lidhje me login.php në rast se përdoruesi tashmë ka një llogari.

    Kodi PHP

    Formular regjistrimi

    Emri i përdoruesit
    Email
    Fjalëkalimi
    Përsëritni fjalëkalimin
    Unë kam një llogari

    Tani do të krijojmë një skript regjistrimi në skedarin "reg.php". Ai do të përfshijë "sql.php" për t'u lidhur me bazën e të dhënave. I njëjti funksion përdoret si në skriptin e hyrjes për të pastruar fushën e hyrjes. Variablat vendosen për gabime të mundshme. Tjetra është një funksion për të krijuar një identifikues unik që nuk është dhënë kurrë më parë. Më pas nxirren dhe verifikohen të dhënat nga formulari i regjistrimit. Bëhet një kontroll për t'u siguruar që adresa e emailit është në formatin e duhur dhe që fjalëkalimi është rifutur saktë. Skripti më pas kontrollon nëse ka një përdorues me të njëjtin emër në bazën e të dhënave dhe, nëse po, raporton një gabim. Së fundi, kodi shton përdoruesin në bazën e të dhënave.

    Kodi PHP

    Ju gjithashtu duhet të krijoni një skript për të dalë përdoruesin nga sistemi. Ai përfundon seancën për përdoruesin me ID-në dhe emrin unik të dhënë, dhe më pas e ridrejton përdoruesin në faqen e identifikimit.

    Kodi PHP

    Së fundi, skripti "auth.php" mund të përdoret për t'i bërë faqet të aksesueshme vetëm për përdoruesit e autorizuar. Ai kontrollon detajet e hyrjes dhe, nëse janë të sakta, i lejon përdoruesit të shfletojë faqet dhe nëse jo, i kërkon të identifikohet. Përveç kësaj, nëse dikush përpiqet të hakojë faqen duke krijuar një nga seancat, ai do të ndërpritet, si në rastin e përgjithshëm.

    Kodi PHP

    Një nga kushtet në kodin e mësipërm është tema e pyetjes në.

    Kodi i mëposhtëm duhet të futet në faqen për përdoruesit e autorizuar, ai quhet, për shembull, "member.php", por i yti mund të quhet çdo gjë që ju pëlqen.

    Kodi PHP

    Ju jeni të autorizuar për të hyrë në këtë faqe. Dil jashtë ( )

    Vërtetimi i përdoruesit është gati!

    Ndryshuar për herë të fundit më 5 prill 2018 nga Vincy.

    Hyrja dhe regjistrimi i përdoruesit është një kërkesë bazë për çdo aplikacion CMS. Kjo është puna fillestare gjatë fillimit të një projekti. Aplikacioni me autentifikimin e hyrjes së përdoruesit ofron siguri duke parandaluar aksesin anonim. Ka mënyra të ndryshme për të aktivizuar vërtetimin në aplikacionin tonë si duke aktivizuar hyrjen në OAuth ose duke zbatuar Single Sign-on (SSO) dhe mënyra të tjera të ngjashme. Në një tutorial të mëparshëm, ne kemi parë se si të zbatojmë dhe gjithashtu rreth.

    Ky shembull përfshin si funksionet e hyrjes ashtu edhe të regjistrimit. Unë kam përdorur bazën e të dhënave MySQL për të ruajtur anëtarët e regjistruar. Regjistrimi i përdoruesit do të përmbajë të dhëna për të marrë detajet nga përdoruesi. Me dorëzimin e këtij formulari, të dhënat e formularit postohen në PHP dhe ruhen në bazën e të dhënave. Fjalëkalimi i përdoruesit do të kodohet përpara se të ruhet në bazën e të dhënave. përpara se të postoni në kodin PHP. Kur përdoruesi është identifikuar me kredencialet e vlefshme, atëherë përdoruesi dhe ai do të lejohen të vazhdojnë më tej.

    Formulari i regjistrimit të përdoruesit

    Ky kod është për t'i treguar përdoruesit formularin e regjistrimit. Kur përdoruesi dorëzon formularin me të dhënat e tij, funksioni JavaScript do të thirret për të vërtetuar hyrjen e përdoruesit. Pas vërtetimit të suksesshëm, kodi PHP do të lexojë të dhënat e formularit të postuar për të ekzekutuar futjen e bazës së të dhënave.