Godless auth registration php

10/05/2015 Romchik

Magandang araw. Sa artikulong ito, gagamit kami ng isang halimbawa upang suriin ang pagpaparehistro ng user sa . Pagkatapos ay i-activate ang user sa pamamagitan ng pagkumpirma sa kanyang email address. At panghuli, ang pahintulot ng user sa . Ngunit ang mga aktibong user lang ang dapat pahintulutan.

Ang unang bagay na gagawin namin ay lumikha ng isang controller at isang view para sa pagpaparehistro.

Paglikha ng isang form sa pagpaparehistro

Pumunta sa direktoryo na may mga template ng mapagkukunan at lumikha ng auth subdirectory sa loob nito. Ngayon sa folder ng auth gagawa kami ng isang file register.blade.php na may sumusunod na code:

Pagpaparehistro

((--Error--)) @if ($errors->may()) ×
    @foreach($errors->all() bilang $error)
  • ((( $error )))
  • @endforeach
@endif (!! csrf_field() ! Email Пароль Повторите пароль Отправить !}

Hindi ko ipapaliwanag ang code sa itaas, malinaw ang lahat dito.

App/Http/Controllers/Auth/AuthController.php

I-override lang namin ang mga pamamaraan ng controller ng AuthController.php. Kaya, upang ipakita ang form ng pagpaparehistro, mayroong isang paraan ng getRegister. Hindi namin hinawakan ang pamamaraang ito.

Ngayon ay lumipat tayo sa mga ruta. Buksan ang file:

At tukuyin ang ruta sa aming pamamaraan:

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

Ngayon buksan natin ang aming application sa browser. Mahusay, nakikita namin ang form ng pagpaparehistro.

Pagrehistro ng user sa

Agad nating tukuyin ang ruta para sa pagpaparehistro ng user. Pumunta tayo sa file:

App/Http/Controllers/routes.php

At idagdag ang sumusunod na ruta:

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

Ngayon, gumawa tayo ng talahanayan upang mag-imbak ng mga user. Mayroon nang paglipat para sa talahanayang ito, ngunit hindi ito angkop para sa amin. Baguhin natin. Pumunta tayo sa file:

Database/migrations/2014_10_12_create_users_table.php

At baguhin natin ang code:

Sa aking kaso, ganito ang hitsura:

I-save ang bd.php .
Malaki! Mayroon kaming isang talahanayan sa database at isang koneksyon dito. Ngayon ay maaari ka nang magsimulang lumikha ng isang pahina kung saan iiwan ng mga user ang kanilang data.

3. Lumikha ng isang reg.php file na may mga nilalaman (lahat ng mga komento sa loob):



Pagpaparehistro


Pagpaparehistro


Ang iyong login:




Ang iyong password:








4. Gumawa ng file na maglalagay ng data sa database at i-save ang user. save_user.php (mga komento sa loob):

5. Ngayon ang aming mga gumagamit ay maaaring magparehistro! Susunod, kailangan mong lumikha ng isang "pinto" para sa mga nakarehistrong user na makapasok sa site. index.php (mga komento sa loob):




Home page


Home page


Ang iyong login:


Ang iyong password:






Magrehistro



OK tapos na ang lahat Ngayon! Ang aralin ay maaaring mayamot, ngunit lubhang kapaki-pakinabang. Ang ideya lamang ng pagpaparehistro ay ipinapakita dito, pagkatapos ay maaari mong pagbutihin ito: magdagdag ng seguridad, disenyo, mga patlang ng data, pag-load ng mga avatar, pag-log out sa iyong account (upang gawin ito, sirain lamang ang mga variable mula sa session gamit ang hindi nakatakdang function) at iba pa. Good luck!

Sinuri ko ang lahat, gumagana ito nang maayos!

Sa artikulong ito, matututunan mo kung paano gumawa ng registration at login form gamit ang HTML, JavaScript, PHP at MySql. Ang ganitong mga form ay ginagamit sa halos bawat website, anuman ang uri nito. Nilikha ang mga ito para sa isang forum, isang online na tindahan, mga social network (tulad ng Facebook, Twitter, Odnoklassniki) at marami pang ibang uri ng mga site.

Kung mayroon kang website sa iyong lokal na computer, inaasahan kong mayroon ka nang naka-install at tumatakbong lokal na server. Kung wala ito, walang gagana.

Paglikha ng talahanayan sa Database

Upang maipatupad ang pagpaparehistro ng gumagamit, una sa lahat kailangan namin ng isang Database. Kung mayroon ka na nito, mahusay, kung hindi, kailangan mong likhain ito. Sa artikulo, ipinapaliwanag ko nang detalyado kung paano ito gagawin.

At kaya, mayroon kaming isang Database (pinaikling DB), ngayon kailangan naming lumikha ng isang talahanayan mga gumagamit kung saan idaragdag namin ang aming mga nakarehistrong user.

Ipinaliwanag ko rin kung paano lumikha ng isang talahanayan sa isang database sa artikulo. Bago lumikha ng isang talahanayan, kailangan nating matukoy kung anong mga patlang ang nilalaman nito. Ang mga field na ito ay tumutugma sa mga field mula sa registration form.

Kaya, naisip namin, naisip kung anong mga patlang ang mayroon ang aming form at lumikha ng isang talahanayan mga gumagamit kasama ang mga field na ito:

  • id- Identifier. Patlang id Ang bawat talahanayan sa database ay dapat magkaroon nito.
  • pangalan- Upang i-save ang pangalan.
  • huling pangalan- Upang mapanatili ang apelyido.
  • email- Upang i-save ang postal address. Gagamitin namin ang e-mail bilang login, kaya ang field na ito ay dapat na natatangi, ibig sabihin, mayroong NATATANGING index.
  • email_status- Field upang ipahiwatig kung ang mail ay nakumpirma o hindi. Kung nakumpirma ang mail, magkakaroon ito ng value na 1, kung hindi, ang value ay 0.
  • password- Upang i-save ang password.


Kung gusto mong magkaroon ng ibang field ang iyong registration form, maaari mo ring idagdag ang mga ito dito.

Ayan, table namin mga gumagamit handa na. Lumipat tayo sa susunod na yugto.

Koneksyon sa Database

Nagawa namin ang database, ngayon kailangan naming kumonekta dito. Kami ay kumonekta gamit ang PHP extension MySQLi.

Sa folder ng aming site, lumikha ng isang file na may pangalan dbconnect.php, at isulat ang sumusunod na script dito:

Ang file na ito dbconnect.php ay kailangang konektado sa mga humahawak ng form.

Pansinin ang variable $address_site, dito ko ipinahiwatig ang pangalan ng aking test site na aking gagawin. Mangyaring ipahiwatig ang pangalan ng iyong site nang naaayon.

Istraktura ng site

Ngayon tingnan natin ang istruktura ng HTML ng aming site.

Ililipat namin ang header at footer ng site sa magkahiwalay na mga file, header.php At footer.php. Isasama namin sila sa lahat ng pahina. Lalo na sa pangunahing pahina (file index.php), sa page na may registration form (file form_register.php) at sa pahinang may form ng pahintulot (file form_auth.php).

I-block gamit ang aming mga link, pagpaparehistro At awtorisasyon, idagdag ang mga ito sa header ng site upang maipakita ang mga ito sa lahat ng pahina. Isang link ang papasok sa page na may registration form (file form_register.php) at ang isa pa sa page na may authorization form (file form_auth.php).

Mga nilalaman ng header.php file:

Pangalan ng aming site

Bilang resulta, ganito ang hitsura ng aming pangunahing pahina:


Siyempre, maaaring may ganap na kakaibang istraktura ang iyong site, ngunit hindi ito mahalaga para sa amin ngayon. Ang pangunahing bagay ay mayroong mga link (mga pindutan) para sa pagpaparehistro at awtorisasyon.

Ngayon ay lumipat tayo sa form ng pagpaparehistro. Tulad ng naiintindihan mo na, mayroon kami nito sa file form_register.php.

Pumunta sa Database (sa phpMyAdmin), buksan ang istraktura ng talahanayan mga gumagamit at tingnan kung anong mga field ang kailangan natin. Nangangahulugan ito na kailangan namin ng mga field para sa pagpasok ng una at apelyido, isang field para sa pagpasok ng postal address (Email) at isang field para sa pagpasok ng password. At para sa mga layuning pangseguridad, magdaragdag kami ng field para sa pagpasok ng captcha.

Sa server, bilang isang resulta ng pagproseso ng form ng pagpaparehistro, iba't ibang mga error ang maaaring mangyari dahil sa kung saan ang gumagamit ay hindi makakapagrehistro. Samakatuwid, upang maunawaan ng user kung bakit nabigo ang pagpaparehistro, kinakailangang magpakita ng mga mensahe tungkol sa mga error na ito.

Bago ipakita ang form, magdagdag ng block upang ipakita ang mga mensahe ng error mula sa session.

At isa pang bagay, kung awtorisado na ang user, at dahil sa kuryusidad ay direktang pumunta siya sa pahina ng pagpaparehistro sa pamamagitan ng pagsulat sa address bar ng browser site_address/form_register.php, pagkatapos sa kasong ito, sa halip na ang form ng pagpaparehistro, magpapakita kami ng isang header na nagsasaad na siya ay nakarehistro na.

Sa pangkalahatan, ang file code form_register.php nakuha namin ito:

Nakarehistro ka na

Sa browser, ganito ang hitsura ng page na may registration form:


Gamit ang kinakailangang attribute, ginawa naming mandatory ang lahat ng field.

Bigyang-pansin ang code ng registration form kung saan ipinapakita ang captcha:


Tinukoy namin ang path sa file sa halaga ng src attribute para sa imahe captcha.php, na bumubuo ng captcha na ito.

Tingnan natin ang file code captcha.php:

Ang code ay mahusay na nagkomento, kaya ako ay tumutok sa isang punto lamang.

Sa loob ng isang function imageTtfText(), ang path patungo sa font ay tinukoy verdana.ttf. Kaya para gumana ng tama ang captcha, dapat tayong gumawa ng folder mga font, at ilagay ang font file doon verdana.ttf. Maaari mong mahanap ito at i-download ito mula sa Internet, o kunin ito mula sa archive na may mga materyales ng artikulong ito.

Tapos na kami sa HTML structure, oras na para magpatuloy.

Sinusuri ang bisa ng email gamit ang jQuery

Ang anumang form ay kailangang suriin ang bisa ng inilagay na data, kapwa sa panig ng kliyente (gamit ang JavaScript, jQuery) at sa panig ng server.

Dapat nating bigyan ng espesyal na pansin ang field ng Email. Napakahalaga na valid ang inilagay na postal address.

Para sa input field na ito, itinakda namin ang uri ng email (type="email"), bahagyang nagbabala ito sa amin laban sa mga maling format. Ngunit hindi ito sapat, dahil sa pamamagitan ng inspektor ng code na ibinibigay sa atin ng browser, madali nating mababago ang halaga ng katangian uri Sa email sa text, at iyon nga, hindi na magiging valid ang aming tseke.


At sa kasong ito, dapat tayong gumawa ng mas maaasahang pagsusuri. Upang gawin ito, gagamitin namin ang library ng jQuery mula sa JavaScript.

Upang ikonekta ang jQuery library, sa file header.php sa pagitan ng mga tag , bago ang pansarang tag , idagdag ang linyang ito:

Kaagad pagkatapos ng linyang ito, idaragdag namin ang email validation code. Dito ay magdaragdag kami ng isang code upang suriin ang haba ng ipinasok na password. Dapat ay hindi bababa sa 6 na character ang haba nito.

Gamit ang script na ito, sinusuri namin ang inilagay na email address para sa bisa. Kung nagpasok ang user ng maling Email, nagpapakita kami ng mensahe ng error tungkol dito at hindi pinagana ang button na isumite ang form. Kung maayos ang lahat, aalisin namin ang error at i-activate ang button na isumite ang form.

At kaya, tapos na kami sa pagpapatunay ng form sa panig ng kliyente. Ngayon ay maaari na naming ipadala ito sa server, kung saan gagawa din kami ng ilang mga pagsusuri at magdagdag ng data sa database.

Pagpaparehistro ng user

Ipinapadala namin ang form sa file para sa pagproseso magparehistro.php, sa pamamagitan ng POST method. Ang pangalan ng handler file na ito ay tinukoy sa attribute value aksyon. At ang paraan ng pagpapadala ay tinukoy sa halaga ng katangian paraan.

Buksan ang file na ito magparehistro.php at ang unang bagay na kailangan nating gawin ay magsulat ng function ng paglulunsad ng session at ikonekta ang file na ginawa natin kanina dbconnect.php(Sa file na ito gumawa kami ng koneksyon sa database). At saka, agad nating ideklara ang mga cell error_messages At tagumpay_mensahe sa global session array. SA error_mesages itatala namin ang lahat ng mga mensahe ng error na nangyayari sa pagpoproseso ng form, at sa tagumpay_mensahe, magre-record kami ng mga masasayang mensahe.

Bago tayo magpatuloy, kailangan nating suriin kung naisumite na ang form. Maaaring tingnan ng isang attacker ang value ng attribute aksyon mula sa form, at alamin kung aling file ang nagpoproseso ng form na ito. At maaaring may ideya siyang direktang pumunta sa file na ito sa pamamagitan ng pag-type ng sumusunod na address sa address bar ng browser: http://site_address/register.php

Kaya kailangan nating suriin para sa isang cell sa pandaigdigang POST array na ang pangalan ay tumutugma sa pangalan ng aming "Register" na button mula sa form. Sa ganitong paraan, tinitingnan namin kung ang "Register" na buton ay na-click o hindi.

Kung susubukan ng isang umaatake na direktang pumunta sa file na ito, makakatanggap sila ng mensahe ng error. Hayaan akong ipaalala sa iyo na ang $address_site variable ay naglalaman ng pangalan ng site at ito ay idineklara sa file dbconnect.php.

Ang halaga ng captcha sa session ay idinagdag noong ito ay nabuo, sa file captcha.php. Bilang paalala, muli kong ipapakita sa iyo ang piraso ng code na ito mula sa file captcha.php, kung saan idinaragdag ang halaga ng captcha sa session:

Ngayon ay magpatuloy tayo sa mismong pag-verify. Nasa file magparehistro.php, sa loob ng if block, kung saan tinitingnan namin kung na-click ang "Register" na buton, o sa halip kung saan nakasaad ang komento "" // (1) Space para sa susunod na piraso ng code"nagsusulat kami:

//Suriin ang natanggap na captcha //Trim ang mga puwang mula sa simula at dulo ng linya $captcha = trim($_POST["captcha"]); if(isset($_POST["captcha"]) && !empty($captcha))( //Ihambing ang natanggap na value sa value mula sa session. if($_SESSION["rand"] != $captcha) && ($_SESSION ["rand"] != ""))( // Kung hindi tama ang captcha, ibabalik namin ang user sa pahina ng pagpaparehistro, at doon kami magpapakita ng mensahe ng error sa kanya na mali ang captcha niyang ipinasok . $error_message = "

Error! Maling captcha ang ipinasok mo

"; // I-save ang mensahe ng error sa session. $_SESSION["error_messages"] = $error_message; // Ibalik ang user sa header ng pahina ng pagpaparehistro("HTTP/1.1 301 Permanenteng Inilipat"); header("Lokasyon: " .$address_site ."/form_register.php"); //Ihinto ang script exit(); ) // (2) Ilagay para sa susunod na piraso ng code )else( //Kung ang captcha ay hindi naipasa o ito ay walang laman na exit ("

Error! Walang verification code, iyon ay, isang captcha code. Maaari kang pumunta sa pangunahing pahina.

"); }

Susunod, kailangan nating iproseso ang natanggap na data mula sa POST array. Una sa lahat, kailangan nating suriin ang mga nilalaman ng pandaigdigang POST array, iyon ay, kung mayroong mga cell doon na ang mga pangalan ay tumutugma sa mga pangalan ng mga input field mula sa aming form.

Kung umiiral ang cell, pagkatapos ay pinuputol namin ang mga puwang mula sa simula at dulo ng linya mula sa cell na ito, kung hindi, ire-redirect namin ang user pabalik sa pahina na may form ng pagpaparehistro.

Susunod, pagkatapos naming i-trim ang mga puwang, idinaragdag namin ang linya sa variable at suriin ang variable na ito para sa kawalan ng laman; kung ito ay walang laman, pagkatapos ay magpapatuloy kami, kung hindi, ire-redirect namin ang gumagamit pabalik sa pahina na may form ng pagpaparehistro.

Idikit ang code na ito sa tinukoy na lokasyon" // (2) Space para sa susunod na piraso ng code".

/* Suriin kung mayroong data na ipinadala mula sa form sa pandaigdigang array $_POST at balutin ang isinumiteng data sa mga regular na variable.*/ if(isset($_POST["first_name"]))( //Trim ang mga puwang mula sa simula at dulo ng string na $first_name = trim ($_POST["first_name"]); // Suriin ang variable para sa emptiness if(!empty($first_name))( // Para sa kaligtasan, i-convert ang mga espesyal na character sa HTML entity $first_name = htmlspecialchars($first_name, ENT_QUOTES) ; )else( // I-save ang mensahe ng error sa session. $_SESSION["error_messages"] .= "

Ilagay ang iyong pangalan

Nawawala ang field ng pangalan

"; //Ibalik ang user sa header ng pahina ng pagpaparehistro("HTTP/1.1 301 Permanenteng Inilipat"); header("Lokasyon: ".$address_site."/form_register.php"); //Ihinto ang script exit(); ) if( isset($_POST["apelyido"]))( //Puwang sa simula at dulo ng linya $last_name = trim($_POST["apelyido"]); if(!empty($last_name)) ( // Para sa seguridad , i-convert ang mga espesyal na character sa HTML entity $last_name = htmlspecialchars($last_name, ENT_QUOTES); )else( // I-save ang mensahe ng error sa session. $_SESSION["error_messages"] .= "

Pakilagay ang iyong apelyido

"; //Ibalik ang user sa header ng pahina ng pagpaparehistro("HTTP/1.1 301 Permanenteng Inilipat"); header("Lokasyon: ".$address_site."/form_register.php"); //Ihinto ang script exit(); ) )iba ( // I-save ang mensahe ng error sa session. $_SESSION["error_messages"] .= "

Nawawala ang field ng apelyido

"; //Ibalik ang user sa header ng pahina ng pagpaparehistro("HTTP/1.1 301 Permanenteng Inilipat"); header("Lokasyon: ".$address_site."/form_register.php"); //Ihinto ang script exit(); ) if( isset($_POST["email"]))( //Trim space mula sa simula at dulo ng linya $email = trim ($_POST["email"]); if(!empty($email)) ($email = htmlspecialchars ($email, ENT_QUOTES); // (3) Lokasyon ng code para sa pagsuri sa format ng email address at sa pagiging natatangi nito )else( // I-save ang mensahe ng error sa session. $_SESSION["error_messages"] .="

Ilagay ang iyong email

"; //Ibalik ang user sa header ng pahina ng pagpaparehistro("HTTP/1.1 301 Permanenteng Inilipat"); header("Lokasyon: ".$address_site."/form_register.php"); //Ihinto ang script exit(); ) )iba ( // I-save ang mensahe ng error sa session. $_SESSION["error_messages"] .= "

"; //Ibalik ang user sa header ng pahina ng pagpaparehistro("HTTP/1.1 301 Permanenteng Inilipat"); header("Lokasyon: ".$address_site."/form_register.php"); //Ihinto ang script exit(); ) if( isset($_POST["password"]))( //Trim space mula sa simula at dulo ng string $password = trim ($_POST["password"]); if(!empty($password)) ($password = htmlspecialchars ($password, ENT_QUOTES); //I-encrypt ang password $password = md5($password."top_secret"); )else( // I-save ang mensahe ng error sa session. $_SESSION["error_messages"] .="

Ipasok ang iyong password

"; //Ibalik ang user sa header ng pahina ng pagpaparehistro("HTTP/1.1 301 Permanenteng Inilipat"); header("Lokasyon: ".$address_site."/form_register.php"); //Ihinto ang script exit(); ) )iba ( // I-save ang mensahe ng error sa session. $_SESSION["error_messages"] .= "

"; //Ibalik ang user sa header ng pahina ng pagpaparehistro("HTTP/1.1 301 Permanenteng Inilipat"); header("Lokasyon: ".$address_site."/form_register.php"); //Ihinto ang script exit(); ) // (4) Lugar para sa code para sa pagdaragdag ng user sa database

Ang partikular na kahalagahan ay ang larangan email. Dapat nating suriin ang format ng natanggap na postal address at ang pagiging natatangi nito sa database. Ibig sabihin, mayroon bang user na may parehong email address na nakarehistro na?

Sa tinukoy na lokasyon" // (3) Code location para tingnan ang format ng postal address at ang uniqueness nito" idagdag ang sumusunod na code:

//Suriin ang format ng natanggap na email address gamit ang isang regular na expression $reg_email = "/^**@(+(*+)*\.)++/i"; //Kung ang format ng natanggap na email address ay hindi tumutugma sa regular na expression kung(!preg_match($reg_email, $email))( // I-save ang mensahe ng error sa session. $_SESSION["error_messages"] .= "

Naglagay ka ng maling email

"; //Ibalik ang user sa header ng pahina ng pagpaparehistro("HTTP/1.1 301 Permanenteng Inilipat"); header("Lokasyon: ".$address_site."/form_register.php"); //Ihinto ang script exit(); ) // Sinusuri namin kung ang naturang address ay nasa database na. $result_query = $mysqli->query("SELECT `email` FROM `users` WHERE `email`="".$email."""); / /Kung ang bilang ng natanggap ay eksaktong isang row, ibig sabihin ang user na may ganitong email address ay nakarehistro na if($result_query->num_rows == 1)( //Kung ang resulta ay hindi false if(($row = $result_query->fetch_assoc()) != false) ( // I-save ang mensahe ng error sa session. $_SESSION["error_messages"] .= "

Nakarehistro na ang isang user na may ganitong email address

"; //Ibalik ang user sa header ng pahina ng pagpaparehistro("HTTP/1.1 301 Permanenteng Inilipat"); header("Lokasyon: ".$address_site."/form_register.php"); )else( // I-save ang mensahe ng error sa session . $_SESSION["error_messages"] .="

Error sa query sa database

"; //Ibalik ang user sa header ng pahina ng pagpaparehistro("HTTP/1.1 301 Permanenteng Inilipat"); header("Lokasyon: ".$address_site."/form_register.php"); ) /* pagsasara ng seleksyon */ $ result_query-> close(); //Ihinto ang script exit(); ) /* pagsasara ng seleksyon */ $result_query->close();

At kaya, tapos na kami sa lahat ng mga pagsusuri, oras na para idagdag ang user sa database. Sa tinukoy na lokasyon" // (4) Lugar para sa code para sa pagdaragdag ng user sa database" idagdag ang sumusunod na code:

//Query para magdagdag ng user sa database $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)( // I-save ang mensahe ng error sa session. $_SESSION["error_messages"] .= "

Error sa kahilingang magdagdag ng user sa database

"; //Ibalik ang user sa header ng pahina ng pagpaparehistro("HTTP/1.1 301 Permanenteng Inilipat"); header("Lokasyon: ".$address_site."/form_register.php"); //Ihinto ang script exit(); )iba( $_SESSION["success_messages"] = "

Matagumpay na nakumpleto ang pagpaparehistro!!!
Ngayon ay maaari kang mag-log in gamit ang iyong username at password.

"; //Ipadala ang user sa header ng pahina ng awtorisasyon("HTTP/1.1 301 Permanenteng Inilipat"); header("Lokasyon: ".$address_site."/form_auth.php"); ) /* Pagkumpleto ng kahilingan */ $ result_query_insert-> close(); // Isara ang koneksyon sa database $mysqli->close();

Kung may naganap na error sa kahilingang magdagdag ng user sa database, nagdaragdag kami ng mensahe tungkol sa error na ito sa session at ibabalik ang user sa pahina ng pagpaparehistro.

Kung hindi, kung naging maayos ang lahat, nagdaragdag din kami ng mensahe sa session, ngunit sa pagkakataong ito ay mas kaaya-aya, ibig sabihin, sasabihin namin sa user na matagumpay ang pagpaparehistro. At nire-redirect namin ito sa page na may authorization form.

Ang script para sa pagsuri sa format ng email address at haba ng password ay nasa file header.php, kaya malalapat din ito sa mga field mula sa form na ito.

Sinimulan din ang session sa file header.php, kaya sa file form_auth.php Hindi na kailangang magsimula ng session, dahil magkakaroon tayo ng error.


Tulad ng nasabi ko na, gumagana din dito ang script para sa pagsuri sa format ng email address at haba ng password. Samakatuwid, kung ang gumagamit ay nagpasok ng maling email address o maikling password, agad siyang makakatanggap ng mensahe ng error. Isang buton pumasok magiging hindi aktibo.

Pagkatapos ayusin ang mga error, ang pindutan pumasok nagiging aktibo, at magagawa ng user na isumite ang form sa server, kung saan ito ipoproseso.

Pahintulot ng user

Upang i-attribute ang halaga aksyon ang kapansanan sa pahintulot ay may tinukoy na file auth.php, nangangahulugan ito na ipoproseso ang form sa file na ito.

At kaya, buksan ang file auth.php at sumulat ng code upang iproseso ang form ng pahintulot. Ang unang bagay na kailangan mong gawin ay magsimula ng isang session at ikonekta ang file dbconnect.php upang kumonekta sa database.

Kapag nag-click ka sa exit link mula sa site, dadalhin kami sa isang file logout.php, kung saan sinisira lang namin ang mga cell na may email address at password mula sa session. Pagkatapos nito, ibabalik namin ang gumagamit pabalik sa pahina kung saan na-click ang link labasan.

File code logout.php:

Iyon lang. Ngayon alam mo na kung paano ipatupad at iproseso ang mga form ng pagpaparehistro at awtorisasyon ng user sa iyong website. Ang mga form na ito ay matatagpuan sa halos bawat website, kaya dapat malaman ng bawat programmer kung paano gawin ang mga ito.

Natutunan din namin kung paano i-validate ang data ng input, kapwa sa panig ng kliyente (sa browser, gamit ang JavaScript, jQuery) at sa panig ng server (gamit ang PHP). Natutunan din namin kung paano magpatupad ng pamamaraan para sa pag-alis sa site.

Ang lahat ng mga script ay nasubok at gumagana. Maaari mong i-download ang archive gamit ang mga file ng maliit na site na ito mula sa link na ito.

Sa hinaharap susulat ako ng isang artikulo kung saan ilalarawan ko. At plano ko ring magsulat ng isang artikulo kung saan ako ay magpapaliwanag (nang hindi nagre-reload ng pahina). Kaya, upang manatiling alam tungkol sa pagpapalabas ng mga bagong artikulo, maaari kang mag-subscribe sa aking website.

Kung mayroon kang anumang mga katanungan, mangyaring makipag-ugnay sa akin, at kung mapansin mo ang anumang error sa artikulo, mangyaring ipaalam sa akin.

Lesson Plan (Bahagi 5):

  • Paglikha ng HTML structure para sa authorization form
  • Pinoproseso namin ang natanggap na data
  • Ipinapakita namin ang pagbati ng user sa header ng site
  • Nagustuhan mo ba ang artikulo?

    Matututunan natin kung paano gawin ang simpleng pagpapatunay ng user sa site. Ang site ay maaaring may mga pahina lamang para sa mga awtorisadong gumagamit, at ganap na gagana ang mga ito kung idaragdag namin ang aming bloke sa pagpapatotoo sa kanila. Upang malikha ito, kailangan mo ng MySQL database. Maaari itong magkaroon ng 5 column (minimum), o higit pa kung gusto mong magdagdag ng impormasyon tungkol sa mga user. Tawagan natin ang database na “Userauth”.

    Gawin natin ang mga sumusunod na field dito: ID para sa pagbibilang ng bilang ng mga user, UID para sa natatanging identification number ng user, Username para sa pangalan ng user, Email para sa kanyang email address at Password para sa password. Maaari mong gamitin ang iyong umiiral na database upang pahintulutan ang gumagamit, tulad ng sa kaso ng isang bagong database, lumikha ng sumusunod na talahanayan sa loob nito.

    MySQL Code

    GUMAWA NG TABLE `mga user` (`ID` int (11) NOT NULL AUTO_INCREMENT, `UID` int (11) NOT NULL, `Username` text NOT NULL, `Email` text NOT NULL, `Password` text NOT NULL, PRIMARY KEY (`ID`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

    Ngayon gawin natin ang file na "sql.php". Ito ay responsable para sa pagkonekta sa database. Ang code na ito, una, ay lumilikha ng mga variable para sa server at sa user kapag kumonekta siya sa server. Pangalawa, pipiliin nito ang database, sa kasong ito ay "USERAUTH". Ang file na ito ay dapat na kasama sa "log.php" at "reg.php" upang ma-access ang database.

    PHP code

    Susunod ay ang login page, hayaan itong tawaging “login.php”. Una, sinusuri nito ang ipinasok na data para sa mga error. Ang page ay may mga field para sa username, password, submit button at link sa pagpaparehistro. Kapag na-click ng user ang "Login" button, ang form ay ipoproseso ng code mula sa "log.php" file at pagkatapos ay mag-log in.

    PHP code

    Login Form

    Username
    Password
    Pagpaparehistro

    Pagkatapos ay sumulat kami ng isang script upang mag-log in sa system. Tawagin natin itong "log.php". Mayroon itong function na linisin ang input data mula sa mga SQL injection na maaaring makasira sa iyong script. Pangalawa, natatanggap nito ang data ng form at sinusuri ito para sa kawastuhan. Kung tama ang data ng pag-input, ipinapadala ng script ang user sa pahina ng awtorisadong mga user, kung hindi, nagtatakda ito ng mga error at ipinapadala ang user sa pahina ng pag-login.

    PHP code

    Gawa tayo ng registration page, tawagin itong "register.php". Ito ay katulad ng login page, mayroon lamang itong iilan pang mga field, at sa halip na isang link sa pagpaparehistro, mayroong isang link sa login.php kung sakaling ang gumagamit ay mayroon nang account.

    PHP code

    Form ng pagpaparehistro

    Username
    Email
    Password
    Ulitin ang password
    Mayroon akong account

    Ngayon ay gagawa kami ng script ng pagpaparehistro sa file na "reg.php". Isasama nito ang "sql.php" upang kumonekta sa database. Ang parehong function ay ginagamit tulad ng sa login script upang i-clear ang input field. Nakatakda ang mga variable para sa mga posibleng error. Ang susunod ay isang function upang lumikha ng isang natatanging identifier na hindi pa naibigay dati. Ang data mula sa form ng pagpaparehistro ay kinukuha at na-verify. Ang isang pagsusuri ay ginawa upang matiyak na ang email address ay nasa tamang format at ang password ay muling naipasok nang tama. Sinusuri ng script upang makita kung mayroong isang gumagamit na may parehong pangalan sa database at, kung gayon, nag-uulat ng isang error. Sa wakas, idinaragdag ng code ang user sa database.

    PHP code

    Kailangan mo ring gumawa ng script para mai-log out ang user sa system. Tinatapos nito ang session para sa user gamit ang ibinigay na natatanging ID at pangalan, at pagkatapos ay ire-redirect ang user sa login page.

    PHP code

    Sa wakas, ang "auth.php" na script ay maaaring gamitin upang gawing maa-access lamang ang mga pahina ng mga awtorisadong gumagamit. Sinusuri nito ang mga detalye sa pag-log in at, kung tama ang mga ito, pinapayagan ang user na mag-browse sa mga pahina, at kung hindi, hihilingin sa kanila na mag-log in. Bilang karagdagan, kung sinubukan ng isang tao na i-hack ang site sa pamamagitan ng paglikha ng isa sa mga session, ito ay maaantala, tulad ng sa pangkalahatang kaso.

    PHP code

    Ang isa sa mga kundisyon sa code sa itaas ay ang paksa ng tanong sa .

    Ang sumusunod na code ay kailangang ipasok sa pahina para sa mga awtorisadong gumagamit, ito ay tinatawag, halimbawa, "member.php", ngunit ang sa iyo ay maaaring tawaging kahit anong gusto mo.

    PHP code

    May pahintulot kang ma-access ang page na ito. Lumabas ( )

    Handa na ang pagpapatotoo ng user!

    Huling binago noong Abril 5, 2018 ni Vincy.

    Ang pag-log in at pagpaparehistro ng user ay isang pangunahing kinakailangan para sa anumang CMS application. Ito ang unang gawain habang nagsisimula ng isang proyekto. Ang application na may user login authentication ay nagbibigay ng seguridad sa pamamagitan ng pagpigil sa hindi kilalang pag-access. Mayroong iba't ibang mga paraan upang paganahin ang pagpapatunay sa aming application tulad ng pag-enable sa OAuth login o sa pamamagitan ng pagpapatupad ng Single Sign-on (SSO) at katulad na iba pang mga paraan. Sa isang nakaraang tutorial, nakita namin kung paano ipatupad at tungkol din.

    Kasama sa halimbawang ito ang parehong pag-login at ang pagpaparehistro. Gumamit ako ng MySQL database upang iimbak ang mga rehistradong miyembro. Ang pagpaparehistro ng user ay maglalaman ng input upang makuha ang mga detalye mula sa user. Sa pagsusumite ng form na ito, ang data ng form ay nai-post sa PHP at naka-imbak sa database. Ie-encrypt ang password ng user bago itago sa database. bago mag-post sa PHP code. Kapag ang user ay naka-log in gamit ang mga wastong kredensyal, ang user at siya ay papayagang magpatuloy pa.

    Form ng Pagpaparehistro ng User

    Ang code na ito ay para ipakita ang signup form sa user. Kapag isinumite ng user ang form kasama ang kanyang mga detalye, tatawagin ang function ng JavaScript upang patunayan ang input ng user. Pagkatapos ng matagumpay na pagpapatunay, babasahin ng PHP code ang naka-post na data ng form upang maisagawa ang insert ng database.