Bukas
Isara

Paglikha ng isang form sa HTML. Pagpapadala ng data ng form Itakda ang form ng pahintulot sa html

Sa artikulong ito matututunan mo paano gumawa ng registration at authorization 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 na . 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 halaga na 1, kung hindi, ang halaga 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:

Error sa koneksyon ng DB. Paglalarawan ng error: ".mysqli_connect_error()."

"; exit(); ) // Itakda ang connection encoding $mysqli->set_charset("utf8"); // Para sa kaginhawahan, magdagdag ng variable dito na maglalaman ng pangalan ng aming site $address_site = "http://testsite .lokal" ; ?>

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 pahinang 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 ilalagay sa pahina ng registration form(file form_register.php) at ang isa pa sa pahinang may form ng awtorisasyon(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 ang user ay awtorisado na, at dahil sa pag-usisa siya ay direktang pumunta 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:


Sa pamamagitan ng paggamit kinakailangang katangian, ginawa naming mandatoryo ang lahat ng field.

Bigyang-pansin ang registration form code 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 kasama ang mga materyales ng artikulong ito.

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

Sinusuri ang bisa ng email gamit ang jQuery

Kailangang suriin ng anumang form 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"), ito ay bahagyang nagbabala 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 kami ay magdagdag ng isang code upang suriin ang haba ng inilagay na password. Ang haba nito ay dapat na hindi bababa sa 6 na character.

Gamit ang script na ito, tinitingnan 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, dapat nating suriin naisumite ba 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.

Error! pangunahing pahina.

"); } ?>

Ang halaga ng captcha sa session ay idinagdag noong ito ay nabuo, sa file captcha.php. Bilang paalala, ipapakita ko sa iyo muli 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" button, o 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, idagdag namin ang linya sa variable at suriin ang variable na ito para sa kawalan ng laman, pagkatapos ay magpatuloy kami, kung hindi, ire-redirect namin ang gumagamit pabalik sa pahina na may form ng pagpaparehistro.

I-paste 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 $first_name = trim($_POST["first_name"]); //Suriin ang variable para sa kawalan kung(!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 = $mysqli->query("PUMILI `email` MULA sa `users` WHERE `email`="".$email."""); ay eksaktong isang row, na nangangahulugang ang user na may ganitong email address ay nakarehistro na if($result_query->num_rows == 1)( //Kung hindi false ang nakuhang resulta kung(($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 na $_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(); //Stop the script exit() /* closing the selection */ $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 namin 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 isang maling email address o maikling password, agad siyang makakatanggap ng isang 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.

//Ipahayag ang isang cell upang magdagdag ng mga error na maaaring mangyari kapag pinoproseso ang form. $_SESSION["error_messages"] = ""; //Magdeklara ng cell para sa pagdaragdag ng matagumpay na mga mensahe $_SESSION["success_messages"] = "";

/* Suriin kung ang form ay isinumite, iyon ay, kung ang Login button ay na-click. Kung oo, pagkatapos ay lumipat kami, kung hindi, pagkatapos ay magpapakita kami ng isang mensahe ng error sa gumagamit na nagpapahiwatig na na-access niya ang pahinang ito nang direkta. */ if(isset($_POST["btn_submit_auth"]) && !empty($_POST["btn_submit_auth"]))( //(1) Space para sa susunod na piraso ng code )else( exit("

Error! Direkta mong na-access ang page na ito, kaya walang data na ipoproseso. Maaari kang pumunta sa pangunahing pahina.

"); }

//Suriin ang natanggap na captcha if(isset($_POST["captcha"]))( //Trim ang mga puwang mula sa simula at dulo ng linya $captcha = trim ($_POST["captcha"]); if(! empty($captcha ))( //Ihambing ang natanggap na value sa value mula sa session. if(($_SESSION["rand"] != $captcha) && ($_SESSION["rand"] != "")) ( // Kung mali ang captcha , ibabalik namin ang user sa pahina ng awtorisasyon, at doon ay magpapakita kami ng mensahe ng error sa kanya na mali ang ipinasok niyang captcha $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 authorization page header("HTTP/1.1 301 Permanenteng Inilipat"); header("Lokasyon: " .$address_site ."/form_auth.php"); //Ihinto ang paglabas ng script( )else( $error_message = "

Error! Hindi dapat walang laman ang captcha entry field.

"; // I-save ang mensahe ng error sa session. $_SESSION["error_messages"] = $error_message; // Ibalik ang user sa authorization page header("HTTP/1.1 301 Permanenteng Inilipat"); header("Lokasyon: " .$address_site ."/form_auth.php"); //Stop the script exit(); //(2) Lugar para sa pagproseso ng email address //(3) Lugar para sa pagpoproseso ng password //(4) Lugar para sa pagbuo isang kahilingan sa database )else ( // Kung ang captcha ay hindi naipasa exit("

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

"); }

Kung naipasok ng user ang verification code nang tama, pagkatapos ay magpapatuloy kami, kung hindi, ibabalik namin siya sa pahina ng pahintulot.

Sinusuri ang mailing address

//Trim spaces mula sa simula at dulo ng linya $email = trim($_POST["email"]); if(isset($_POST["email"]))( if(!empty($email))( $email = htmlspecialchars($email, ENT_QUOTES); //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 sa mensahe ng error sa session. $_SESSION["error_messages"] .= "

Naglagay ka ng maling email

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

Ang field para sa pagpasok ng postal address (email) ay hindi dapat walang laman.

"; //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 pag-input ng email

"; //Ibalik ang user sa authorization page header("HTTP/1.1 301 Permanenteng Inilipat"); header("Lokasyon: ".$address_site."/form_auth.php"); //Ihinto ang script exit(); ) // (3) Lugar sa pagpoproseso ng password

Kung naglagay ang user ng email address sa maling format o walang laman ang value ng field ng email address, ibabalik namin siya sa page ng awtorisasyon kung saan nagpapakita kami ng mensahe tungkol dito.

Pag-verify ng password

Ang susunod na field na ipoproseso ay ang field ng password. Sa tinukoy na lugar" //(3) Lugar para sa pagproseso ng password", sumulat kami:

If(isset($_POST["password"]))( //Turiin ang mga puwang 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_auth.php"); //Ihinto ang script exit(); ) )iba ( // I-save ang mensahe ng error sa session. $_SESSION["error_messages"] .= "

Nawawala ang field ng password

"; //Ibalik ang user sa header ng pahina ng pagpaparehistro("HTTP/1.1 301 Permanenteng Inilipat"); header("Lokasyon: ".$address_site."/form_auth.php"); //Ihinto ang script exit(); )

Dito ginagamit namin ang function na md5() upang i-encrypt ang natanggap na password, dahil ang aming mga password ay nasa naka-encrypt na form sa database. Isang karagdagang lihim na salita sa pag-encrypt, sa aming kaso " sobrang sekreto" ay dapat ang ginamit noong nirerehistro ang user.

Ngayon ay kailangan mong gumawa ng isang query sa database upang pumili ng isang user na ang email address ay katumbas ng natanggap na email address at ang password ay katumbas ng natanggap na password.

//Query sa database batay sa pagpili ng user. $result_query_select = $mysqli->query("SELECT * FROM `users` WHERE email = "".$email."" AT password = "".$password."""); if(!$result_query_select)( // I-save ang mensahe ng error sa session. $_SESSION["error_messages"] .= "

Error sa query kapag pumipili ng user mula sa database

"; //Ibalik ang user sa header ng pahina ng pagpaparehistro("HTTP/1.1 301 Permanenteng Inilipat"); header("Lokasyon: ".$address_site."/form_auth.php"); //Ihinto ang script exit(); )else( //Suriin kung walang user na may ganoong data sa database, pagkatapos ay magpakita ng mensahe ng error kung($result_query_select->num_rows == 1)( // Kung ang ipinasok na data ay tumutugma sa data mula sa database, pagkatapos ay i-save ang login at password sa array ng mga session $_SESSION["email"] = $_SESSION["password"] = $password; //Ibalik ang user sa header ng pangunahing pahina("HTTP/1.1 301 Permanenteng Inilipat" ); ."/index.php"); )else( // I-save ang mensahe ng error sa session. $_SESSION["error_messages"] .= "

Maling login at/o password

"; //Ibalik ang user sa authorization page header("HTTP/1.1 301 Permanenteng Inilipat"); header("Lokasyon: ".$address_site."/form_auth.php"); //Ihinto ang script exit(); ) )

Lumabas mula sa site

At ang huling bagay na ipinapatupad namin ay pamamaraan para sa pag-alis sa site. Sa ngayon, sa header ay ipinapakita namin ang mga link sa pahina ng pahintulot at pahina ng pagpaparehistro.

Sa header ng site (file header.php), gamit ang session na tinitingnan namin kung awtorisado na ang user. Kung hindi, ipinapakita namin ang mga link sa pagpaparehistro at awtorisasyon, kung hindi man (kung siya ay awtorisado), pagkatapos ay sa halip na mga link sa pagpaparehistro at awtorisasyon ay nagpapakita kami ng isang link Lumabas.

Binagong piraso ng code mula sa file header.php:

Pagpaparehistro

Lumabas

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 sa pagpaparehistro at awtorisasyon user sa iyong website. Ang mga form na ito ay matatagpuan sa halos bawat website, kaya dapat malaman ng bawat programmer kung paano likhain 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). Natuto din kami 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):

  1. Paglikha ng HTML structure para sa authorization form
  2. Pinoproseso namin ang natanggap na data
  3. Ipinapakita namin ang pagbati ng user sa header ng site

Nagustuhan mo ba ang artikulo?

Ang mga HTML form ay mga kumplikadong elemento ng interface. Kabilang sa mga ito ang iba't ibang functional na elemento: mga input field At