Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Interesante
  • Formulari i regjistrimit php mysql. Krijimi i një sistemi të thjeshtë regjistrimi të përdoruesve në PHP dhe MySQL

Formulari i regjistrimit php mysql. Krijimi i një sistemi të thjeshtë regjistrimi të përdoruesve në PHP dhe MySQL

Reg.ru: domenet dhe pritja

Regjistruesi dhe ofruesi më i madh i pritjes në Rusi.

Më shumë se 2 milion emra domenesh në shërbim.

Promovim, postë domeni, zgjidhje biznesi.

Më shumë se 700 mijë klientë në mbarë botën kanë bërë tashmë zgjedhjen e tyre.

*Mausi mbi të për të ndaluar lëvizjen.

Kthehu përpara

Krijimi i një sistemi të thjeshtë regjistrimi të përdoruesve në PHP dhe MySQL

Krijimi i një sistemi regjistrimi është shumë punë. Ju duhet të shkruani kodin që vërteton adresat e emailit, dërgon një email që konfirmon regjistrimin dhe gjithashtu vërteton fushat e tjera të formularit dhe shumë më tepër.

Dhe edhe pasi t'i shkruani të gjitha këto, përdoruesit do të hezitojnë të regjistrohen, sepse... kjo kërkon disa përpjekje nga ana e tyre.

Në këtë tutorial, ne do të krijojmë një sistem regjistrimi shumë të thjeshtë që nuk kërkon ose ruan fare fjalëkalime! Rezultati do të jetë i lehtë për t'u modifikuar dhe shtuar në një sajt ekzistues PHP. Dëshironi të zbuloni se si funksionon? Lexo me poshte.



Ja se si do të funksionojë sistemi ynë super i thjeshtë:

Ne do të kombinojmë formularin e autorizimit dhe regjistrimin. Ky formular do të ketë një fushë për të futur adresën tuaj të emailit dhe një buton regjistrimi;
- Kur plotësoni fushën me një adresë emaili, duke klikuar në butonin e regjistrimit do të krijohet një regjistrim për një përdorues të ri, por vetëm nëse adresa e postës elektronike e futur nuk gjendet në bazën e të dhënave.

Pas kësaj, krijohet një grup unik i rastësishëm i karaktereve (token), i cili dërgohet në emailin e specifikuar nga përdoruesi në formën e një lidhjeje që do të jetë e rëndësishme për 10 minuta;
- Lidhja e çon përdoruesin në faqen tonë të internetit. Sistemi përcakton praninë e një token dhe autorizon përdoruesin;

Përparësitë e kësaj qasjeje:

Nuk ka nevojë të ruani fjalëkalime ose të vërtetoni fushat;
- Nuk ka nevojë të rikuperoni fjalëkalimin tuaj, pyetjet e sigurisë, etj.;
- Që nga momenti kur një përdorues regjistrohet/logohet, mund të jeni gjithmonë të sigurt se ky përdorues do të jetë në zonën tuaj të aksesit (që adresa e emailit është e vërtetë);
- Procesi tepër i thjeshtë i regjistrimit;

Të metat:

Siguria e llogarisë së përdoruesit. Nëse dikush ka qasje në postën e përdoruesit, ai mund të identifikohet.
- Emaili nuk është i sigurt dhe mund të përgjohet. Mbani në mend se kjo pyetje është gjithashtu e rëndësishme në rastin kur fjalëkalimi është harruar dhe duhet të rikthehet, ose në çdo sistem autorizimi që nuk përdor HTTPS për transferimin e të dhënave (hyrje/fjalëkalim);
- Ndërsa konfiguroni siç duhet serverin tuaj të postës, ekziston mundësia që mesazhet me lidhje autorizimi të përfundojnë në postë të padëshiruar;

Duke krahasuar avantazhet dhe disavantazhet e sistemit tonë, mund të themi se sistemi ka përdorshmëri të lartë (komoditet maksimal për përdoruesin përfundimtar) dhe, në të njëjtën kohë, ka një tregues të ulët sigurie.

Prandaj sugjerohet përdorimi i tij për regjistrime në forume dhe shërbime që nuk funksionojnë me informacione të rëndësishme.

Si të përdorni këtë sistem

Në rast se thjesht duhet të përdorni një sistem për të autorizuar përdoruesit në faqen tuaj dhe nuk dëshironi ta bëni këtë mësim në copa, ja çfarë duhet të bëni:

Ju duhet të shkarkoni burimet bashkangjitur mësimit
- Gjeni skedarin tables.sql në arkiv. Importojeni atë në bazën tuaj të të dhënave duke përdorur opsionin e importit në phpMyAdmin. Mënyra alternative: hapeni këtë skedar përmes një redaktuesi teksti, kopjoni pyetjen SQL dhe ekzekutoni atë;
- Hapni include/main.php dhe plotësoni cilësimet për t'u lidhur me bazën tuaj të të dhënave (specifikoni përdoruesin dhe fjalëkalimin për t'u lidhur me bazën e të dhënave, si dhe hostin dhe emrin e bazës së të dhënave). Në të njëjtin skedar, duhet të specifikoni edhe emailin, i cili do të përdoret si adresa origjinale për mesazhet e dërguara nga sistemi. Disa host bllokojnë emailet dalëse, përveç rastit kur formulari përmban një adresë të vërtetë emaili, e cila është krijuar nga paneli i kontrollit të hostit, prandaj jepni një adresë reale;
- Ngarko të gjithë skedarët dhe asetet index.php, protected.php dhe përfshin dosjet nëpërmjet FTP në hostin tuaj;
- Shtoni kodin më poshtë në secilën faqe PHP ku dëshironi të shfaqni formularin e hyrjes;

Require_once "përfshin/main.php"; $përdorues = Përdorues i ri(); if(!$user->loggedIn())( ridrejtoj("index.php"); )
- Gati!

Për ata që janë të interesuar se si funksionon gjithçka, lexoni më poshtë!

Hapi i parë është të shkruani kodin HTM për formularin e autorizimit. Ky kod ndodhet në skedarin index.php. Ky skedar përmban gjithashtu kodin PHP që trajton të dhënat e formularit dhe funksione të tjera të dobishme të sistemit të hyrjes. Mund të mësoni më shumë rreth kësaj në seksionin më poshtë kushtuar rishikimit të kodit PHP.

indeks.php

Tutorial: Sistemi super i thjeshtë i regjistrimit me PHP & MySQL Identifikohu ose Regjistrohu

Shkruani adresën tuaj të emailit më lart dhe ne do ta dërgojmë
ju një lidhje identifikimi.

Hyr/Regjistrohu

Në seksionin e kokës (midis etiketave dhe) kam përfshirë stilet kryesore (ato nuk janë të mbuluara në këtë tutorial, kështu që mund t'i shikoni vetë. Asetet e dosjeve/css/style.css). Përpara etiketës mbyllëse, përfshiva bibliotekën jQuery dhe skedarin script.js, të cilat do t'i shkruajmë dhe analizojmë më poshtë.


JavaScript

jQuery gjurmon gjendjen e butonit "Regjistrohu/Hyrja" duke përdorur funksionin e.preventDefault() dhe dërgon kërkesa AJAX. Në varësi të përgjigjes së serverit, ai shfaq një ose një mesazh tjetër dhe përcakton veprimet e mëtejshme/

asetet/js/script.js

$(function())( var forma = $("#login-register"); form.on("submit", funksion(e)( if(form.is(".loading, .loggedIn"))(kthim false ;) var email = form.find("input").val(), messageHolder = form.find("span"); e.preventDefault(); $.post(this.action, (email: email), funksioni (m)( if(m.gabim)(form.addClass("gabim"); messageHolder.tekst(m.mesazh); ) else(form.removeClass("gabim").addClass("loggedIn"); mbajtësi i mesazhit . tekst(m.mesazh); ) )); )); $(dokument).ajaxStart(funksion())(form.addClass("po ngarkohet"); )); $(dokument).ajaxComplete(funksion()) (forma. removeClass ("loading"); )); ));

u shtua në formular për të shfaqur gjendjen aktuale të kërkesës AJAX (kjo u bë e mundur falë metodave ajaxStart()) Dhe ajaxComplete (), të cilin mund ta gjeni në fund të skedarit).

Kjo klasë shfaq një skedar GIF të animuar rrotullues (si për të na lënë të kuptohet se kërkesa është duke u përpunuar), dhe gjithashtu vepron si një flamur për të parandaluar që formulari të dorëzohet përsëri (kur butoni i regjistrimit është klikuar tashmë një herë). Klasa .loggedIn është një tjetër flamur - vendoset kur është dërguar emaili. Ky flamur bllokon menjëherë çdo veprim të mëtejshëm me formularin.

Skema e bazës së të dhënave

Sistemi ynë tepër i thjeshtë i regjistrimit përdor 2 tabela MySQL (kodi SQL është në skedarin tables.sql). I pari ruan të dhëna për llogaritë e përdoruesve. E dyta ruan informacione rreth numrit të përpjekjeve për hyrje.


Skema e tabelës së përdoruesit.

Sistemi nuk përdor fjalëkalime, siç mund të shihet në diagram. Në të mund të shihni kolonën e shenjave me shenja ngjitur me kolonën e vlefshmërisë token. Shenja instalohet sapo përdoruesi lidhet me sistemin dhe vendos emailin e tij për të dërguar një mesazh (më shumë për këtë në bllokun tjetër). Kolona token_validity vendos kohën 10 minuta më vonë, pas së cilës shenja nuk është më e vlefshme.


Skema e tabelës që numëron numrin e përpjekjeve për autorizim.

Në të dyja tabelat, adresa IP ruhet në formë të përpunuar, duke përdorur funksionin ip2long në një fushë të tipit numër të plotë.

Tani mund të shkruajmë disa kode PHP. Funksionaliteti kryesor i sistemit i është caktuar klasës User.class.php, të cilën mund ta shihni më poshtë.

Kjo klasë përdor në mënyrë aktive idorm (docs), këto biblioteka janë mjetet minimale të nevojshme për të punuar me bazat e të dhënave. Ai trajton aksesin në bazën e të dhënave, gjenerimin e shenjave dhe vërtetimin e shenjave. Ai siguron një ndërfaqe të thjeshtë që e bën të lehtë lidhjen e një sistemi regjistrimi me faqen tuaj nëse përdor PHP.

User.class.php

Përdoruesi i klasës( // Rasti privat i ORM-së private $orm; /** * Gjeni një përdorues sipas shenjës. Vetëm argumentet e vlefshme pranohen për shqyrtim. Shenja gjenerohet vetëm për 10 minuta nga momenti kur u krijua * @param string $token Ky është ai që po kërkojmë token * @return Përdoruesi Ktheni vlerën e funksionit të Përdoruesit */ funksionin statik publik findByToken($token)( // gjeni tokenin në bazën e të dhënave dhe sigurohuni që vula kohore e saktë është vendosur $rezultat = ORM::for_table("reg_users") ->where ("token", $token) ->where_raw("token_validity > NOW()") ->find_one(); if(!$result)( return false; ) kthe përdoruesin e ri($result); ) /** * Autorizoni ose regjistroni një përdorues * @param string $email Adresa e emailit të përdoruesit * @return Përdoruesi */ funksioni statik publik loginOrRegjistrohu($email)( // Nëse një përdorues i tillë tashmë ekziston, ktheni vlerën e funksionit të Përdoruesit nga adresa e specifikuar e emailit e ruajtur në bazën e të dhënave nëse(Përdoruesi::ekziston($email))( ktheni përdoruesin e ri($email); ) // Përndryshe, krijoni një përdorues të ri në bazën e të dhënave dhe ktheni vlerën e funksionit User::create nga emaili i specifikuar kthye User::create($email ); ) /** * Krijoni një përdorues të ri dhe ruajeni në bazën e të dhënave * @param string $email. Adresa e emailit të përdoruesit * @return Përdoruesi */ funksioni statik privat krijoni($email)( // Shkruani një përdorues të ri dhe ktheni rezultatin e funksionit të Përdoruesit nga këto vlera $result = ORM::for_table("reg_users")- >create(); $result->email = $email; $result->save(); ktheni përdoruesin e ri($result); ) /** * Kontrolloni nëse një përdorues i tillë ekziston në bazën e të dhënave dhe ktheni vlerën Boolean të variabli * @param string $email. Adresa e emailit të përdoruesit * @return boolean */ funksioni statik publik ekziston ($email)( // A ekziston përdoruesi në bazën e të dhënave? $result = ORM::for_table("reg_users") ->where("email", $email ) ->count(); kthe $rezultat == 1;) /** * Krijo një objekt të ri përdoruesi * @param shembull $param ORM , id, email ose 0 * @return Përdoruesi */ funksioni publik __construct($param = null) ( if($param instanceof ORM)( // Kontrolli ORM kaloi $this->orm = $param; ) ndryshe if(is_string($param))( // Kontrolli i emailit kaloi $this->orm = ORM:: for_table ("reg_users") ->where("email", $param) ->find_one(); ) other( $id = 0; if(is_numeric($param))( // vlera e variablës $param është i kalohet identifikuesit të përdoruesit $id = $param; ) else if(isset($_SESSION["loginid"]))( // Përndryshe, shiko seancën $id = $_SESSION["loginid"]; ) $this->orm = ORM::for_table( "reg_users") ->where("id", $id) ->find_one(); ) ) /** * Gjeneroni një token të ri autorizimi SHA1, e shkruan atë në bazën e të dhënave dhe kthen vlerën e tij * vargu @return */ funksioni publik generateToken( )( // Gjeneroni një shenjë për një përdorues të autorizuar dhe ruani atë në bazën e të dhënave $token = sha1($this->email.time().rand(0, 1000000)); // Ruaje shenjën në bazën e të dhënave // ​​Dhe shënoje si të vlefshme vetëm për 10 minutat e ardhshme $this->orm->set("token", $token); $this->orm->set_expr("vlefshmëria_token", "ADDTIME(TANI(),"0:10")"); $this->orm->save(); ktheje $token; ) /** * Autorizoni përdoruesin * @return void */ funksionin publik login())( // Shënoni përdoruesin si të regjistruar në $_SESSION["loginid"] = $this->orm->id; // Përditësoni vlera e fushës së bazës së të dhënave last_login $this->orm->set_expr("last_login", "NOW()"); $this->orm->save(); ) /** * Shkatërroni seancën dhe dilni nga përdoruesi * @return void */ dalje e funksionit publik () ( $_SESSION = grup (); i pacaktuar ($_SESSION); ) /** * Kontrollo nëse përdoruesi është i identifikuar * @return boolean */ funksioni publik logedIn())( return isset($this->orm->id) && $_SESSION["loginid"] == $this->orm->id; ) /** * Kontrollon nëse përdoruesi është administrator * @return boolean */ public funksioni isAdmin())( return $this->rank() = = "administrator"; ) /** * Gjeni llojin e përdoruesit, mund të jetë ose administrator ose i rregullt * @return string */ renditja e funksionit publik())( nëse ($this->orm->rank == 1)( return "administrator" "; ) return "regular"; ) /** * Metoda që ju lejon të merrni informacionin privat të përdoruesit si * vetitë e objektit User * @ vargu i parametrit $key Emri i pronës që merr akses * @return i përzier */ funksioni publik __get($key)( if(isset($this->orm->$key))( return $this->orm-> $kyç; ) kthen null; ) )

Shenjat gjenerohen duke përdorur algoritmin SHA1 dhe ruhen në bazën e të dhënave. Unë jam duke përdorur funksionet e kohës së MySQL për të vendosur një kufi kohor 10-minutësh për vlefshmërinë e një token.

Kur një token vërtetohet, ne i tregojmë drejtpërdrejt mbajtësit se po shqyrtojmë vetëm shenjat që nuk kanë skaduar ende, të ruajtura në kolonën token_validity.

Ju lutemi vini re se unë jam duke përdorur metodën magjike __marr biblioteka e dokumenteve në fund të skedarit për të përgjuar aksesin në vetitë e objektit Përdorues.

Falë kësaj, bëhet e mundur qasja në informacionin e ruajtur në bazën e të dhënave falë vetive $user->email, $user->token, etj. Në fragmentin tjetër të kodit, do të shohim se si t'i përdorim këto klasa si shembull .


Faqe e mbrojtur

Një skedar tjetër që ruan funksione të dobishme dhe të nevojshme është skedari functions.php. Ekzistojnë disa të ashtuquajtura funksione ndihmëse - ndihmëse që ju lejojnë të krijoni kode më të pastër dhe më të lexueshëm në skedarë të tjerë.

funksionet.php

Funksioni send_email($from, $to, $subject, $message)( // Ndihmës që dërgon email $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Lloji i përmbajtjes: tekst /plain; charset=utf-8" . "\r\n"; $headers .= "Nga: ".$from . "\r\n"; kthese postën($to, $subject, $message, $headers ); ) funksioni get_page_url())( // Përcaktoni URL-në e skedarit PHP $url = "http".(empty($_SERVER["HTTPS"])?"":"s")."://" .$_SERVER ["SERVER_NAME"]; if(isset($_SERVER["REQUEST_URI"]) && $_SERVER["REQUEST_URI"] != "")( $url.= $_SERVER["REQUEST_URI"]; ) tjetër( $url. = $_SERVER["PATH_INFO"]; ) kthe $url; ) funksion rate_limit($ip, $limit_hour = 20, $limit_10_min = 10)( // Numri i përpjekjeve për hyrje në orën e fundit në këtë adresë IP $ count_hour = ORM: :for_table("reg_login_attempt") ->where("ip", sprintf("%u", ip2long($ip))) ->where_raw("ts > SUBTIME(NOW(),"1:00 ")") ->count(); // Numri i përpjekjeve për hyrje në 10 minutat e fundit në këtë adresë IP $count_10_min = ORM::for_table("reg_login_attempt") ->where("ip", sprintf("%u ", ip2long($ ip))) ->where_raw("ts > SUBTIME(NOW(),"0:10")") ->count(); if($count_hour > $limit_hour || $count_10_min > $limit_10_min)( hedh një përjashtim të ri ("Shumë përpjekje për hyrje!"); ) ) funksion rate_limit_tick($ip, $email)( // Krijo një rekord të ri në tabelë që numëron numrin e përpjekjeve për hyrje $login_attempt = ORM::for_table("reg_login_attempt")->create(); $login_attempt->email = $email; $login_attempt->ip = sprintf("%u", ip2long($ip )); $login_attempt->save(); ) ridrejtimi i funksionit($url)( header("Vendndodhja: $url"); dalje; )

Funksione norma_kufi Dhe norma_kufi_tiku monitoroni numrin e përpjekjeve për autorizim gjatë periudhës kohore të kaluar që nga përpjekja e parë. Përpjekja për hyrje regjistrohet në bazën e të dhënave në kolonën reg_login_attempt. Këto funksione thirren kur të dhënat e formularit përpunohen dhe dorëzohen siç mund ta shihni nga pjesa e mëposhtme e kodit.

Kodi më poshtë është marrë nga skedari index.php dhe trajton paraqitjen e formularit. Ai kthen një përgjigje JSON, e cila nga ana tjetër përpunohet nga jQuery në skedarin assets/js/script.js që kemi parë më herët.

indeks.php

Provoni( if(!empty($_POST) && isset($_SERVER["HTTP_X_REQUESTED_WITH"]))( // Nxjerr një kokë të kokës JSON ("Lloji i përmbajtjes: aplikacion/json"); // A është e vlefshme kjo adresë emaili nëse (!isset($_POST["email"]) || !filter_var($_POST["email"], FILTER_VALIDATE_EMAIL))( hidhni një përjashtim të ri ("Ju lutemi shkruani një email të vlefshëm"); ) // Kontrolloni. përdoruesi i lejuar të identifikohet, a e ka tejkaluar numrin e lidhjeve të lejuara? (skedari functions.php për më shumë informacion) rate_limit($_SERVER["REMOTE_ADDR"]); // Regjistro këtë përpjekje për hyrje rate_limit_tick($_SERVER["REMOTE_ADDR"] , $ _POST["email"]); // Dërgoni një email te përdoruesi $message = ""; $email = $_POST["email"]; $subject = "Lidhja juaj e hyrjes"; if(!Përdoruesi:: ekziston ($email) )( $subject = "Faleminderit për Regjistrimin!"; $message = "Faleminderit që u regjistrove në faqen tonë!\n\n"; ) // Përpjekje për të autorizuar ose regjistruar një përdorues $user = Përdorues ::loginOrRegister($_POST[ "email"]);$message.= "Ju mund të identifikoheni nga kjo URL:\n"; $message.= get_page_url()."?tkn=".$user->generateToken()."\n\n"; $message.= "Lidhja do të skadojë automatikisht pas 10 minutash."; $rezultat = dërgoni_email($fromEmail, $_POST["email"], $subject, $message); if(!$result)( hedh një Përjashtim të ri ("Ka pasur një gabim gjatë dërgimit të emailit tuaj. Ju lutemi provoni përsëri."); ) die(json_encode(array("message" => "Faleminderit! Ne\" kemi dërguar një lidhje në kutinë tuaj hyrëse. Kontrolloni gjithashtu dosjen e postës së padëshiruar."))); ) ) catch(Exception $e)( die(json_encode(array("error"=>1, "message" => $e->getMessage() )))))

Pas hyrjes/regjistrimit të suksesshëm, kodi i mësipërm do t'i dërgojë përdoruesit një lidhje identifikimi. Shenja bëhet e disponueshme sepse kalohet si variabël në lidhjen e gjeneruar nga metoda $_MERRNI me shënues tkn

indeks.php

If(isset($_GET["tkn"]))( // A është kjo shenjë e vlefshme për autorizim? $user = Përdoruesi::findByToken($_GET["tkn"]); if($user)( // Po , është. Ridrejto te një faqe e mbrojtur $user->login();redirect("protected.php"); ) // Jo, token nuk është i vlefshëm. Ridrejto te një faqe me një formular autorizimi/regjistrimi ridrejtim("indeks. php ");)

$user->login()

do të krijojë variablat e nevojshme për seancën, në mënyrë që përdoruesi, duke parë faqet e mëvonshme të faqes, të mbetet i autorizuar gjatë gjithë kohës.

Përpunimi i funksionit për të dalë nga sistemi është rregulluar në mënyrë të ngjashme.

indeks.php

If(isset($_GET["logout"]))($user = përdorues i ri(); if($user->loggedIn())($user->logout(); ) ridrejtim("index.php") ;)

Në fund të kodit, unë përsëri vendosa një ridrejtim në index.php, pra parametri ?logout=1 Transmetimi përmes URL-së nuk kërkohet.

Skedari ynë index.php kërkon shtesë. mbrojtje - ne nuk duam që personat që kanë hyrë në sistem të shohin përsëri formularin e regjistrimit. Për këto qëllime, ne përdorim metodën $user->logedIn().

indeks.php

$përdorues = Përdorues i ri(); if($user->loggedIn())( ridrejtoj("protected.php"); )

Më në fund, këtu është një pjesë e kodit që ju lejon të mbroni faqet e faqes tuaj dhe ta bëni atë të aksesueshme vetëm pas autorizimit.

të mbrojtura.php

// Për të mbrojtur çdo faqe në faqen tuaj, përfshini një skedar main.php // dhe krijoni një objekt të ri Përdoruesi. Ja sa e lehtë është! request_once "përfshin/main.php"; $përdorues = Përdorues i ri(); if(!$user->loggedIn())( ridrejtim("index.php"); )

Pas këtij kontrolli, mund të jeni i sigurt se përdoruesi është autorizuar me sukses. Ju gjithashtu mund të përdorni informacionin e ruajtur në bazën e të dhënave duke përdorur vetitë e objektit $përdorues. Për të shfaqur emailin dhe statusin e përdoruesit, përdorni këtë kod:

Echo "Email-i juaj: ".$user->email; echo "Ranku juaj: ".$user->rank();

Metoda gradë () përdoret këtu sepse baza e të dhënave zakonisht ruan numrat (0 për një përdorues të rregullt, 1 për një administrator) dhe ne duhet t'i konvertojmë këto të dhëna në statuset të cilave u përkasin, gjë që na ndihmon kjo metodë.

Për ta bërë një përdorues të rregullt një administrator, thjesht modifikoni hyrjen e përdoruesit përmes phpMyAdmin (ose çdo programi tjetër që ju lejon të menaxhoni bazat e të dhënave). Statusi i administratorit nuk jep asnjë privilegj; në këtë shembull, faqja do të shfaqë që ju jeni një administrator - dhe kjo është ajo.

Por çfarë të bëni me këtë lihet në diskrecionin tuaj; ju mund të shkruani dhe kompozoni vetë kodin që përcakton disa privilegje dhe aftësi për administratorët.

Janë bërë!

Ne kemi mbaruar me këtë formë tepër super kuazi të thjeshtë! Mund ta përdorni në faqet tuaja PHP, është mjaft e thjeshtë. Ju gjithashtu mund ta modifikoni atë për veten tuaj dhe ta bëni ashtu siç dëshironi.

Materiali u përgatit nga Denis Malyshok posaçërisht për faqen e internetit

P.S. Dëshironi të ecni më tej në zotërimin e PHP dhe OOP? Kushtojini vëmendje mësimeve premium në aspekte të ndryshme të ndërtimit të faqes në internet, duke përfshirë programimin në PHP, si dhe një kurs falas për krijimin e sistemit tuaj CMS në PHP nga e para duke përdorur OOP:

Ju pëlqeu materiali dhe dëshironi të më falënderoni?
Thjesht ndajeni me miqtë dhe kolegët tuaj!


Unë sjell në vëmendjen tuaj një skript shumë të thjeshtë dhe funksional për regjistrim dhe autorizim në sit, i cili përbëhet nga 3 skedarë PHP me lidhjen e 2 skripteve java, me ndihmën e të cilave shfaqen gabimet në vetë formularin pa ringarkuar faqen.

Skripti është testuar me sukses në versionet PHP 5.3.3 dhe PHP 5.6.3.

Çfarë mund të bëjë dhe ka skenari

  • Regjistro përdorues të rinj;
  • Autorizoni përdoruesit dhe regjistroni skedarët e skedarëve për një periudhë të caktuar (nuk ka nevojë të identifikoheni çdo herë);
  • Trego dhe fsheh informacione të caktuara për përdoruesit e autorizuar dhe të paautorizuar, përkatësisht;
  • Ka një PANEL ADMIN ku mund të modifikoni të gjitha të dhënat dhe të fshini përdoruesit.

Panelet DEMO dhe Admin janë gjithashtu atje

HAPI 1.
Nëse përdorni skriptin lokal të regjistrimit dhe autorizimit duke përdorur DENWER, atëherë nuk keni nevojë të bëni ndryshime në skedarë për t'u lidhur me bazën e të dhënave.
Përndryshe, hapni skedarët: stayt.php, classes/Auth.class.php dhe adminka/connect.php, dhe në krye zëvendësoni të dhënat për lidhjen me bazën e të dhënave me tuajat.

HAPI 2.
Shkoni (nëse përdorni DENWER) në adresën: http://localhost/Tools/phpmyadmin/, nëse jeni në host, atëherë klikoni Bazat e të dhënave dhe krijoni një bazë të dhënash të re me emrin: regjistr dhe krahasim: utf8_general_ci.
Sigurisht, mund të vendosni emrin tuaj, por më pas sigurohuni që ta zëvendësoni në skedarë për t'u lidhur me bazën e të dhënave (shih hapin 1).

HAPI 3.
Klikoni në bazën e të dhënave të regjistrit të krijuar dhe më pas në skedën e sipërme SQL dhe në dritaren hyrëse që shfaqet, ngjitni këtë kod dhe klikoni OK. KRIJO TABELE NËSE NUK EKZISTON `my_users` (`id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) NOT NULL, `emrat` varchar(15) NOT NULL, `fjalëkalimi` varchar(255) JO NULL, `kripë` varchar(100) JO NULL, ÇELËSI KRYESOR (`id`)) MOTORI=MyISAM SEKTORI I PARAKTUAR=utf8; Të gjitha! Shkoni në adresën tuaj në shfletues, provoni dhe eksperimentoni.

Paneli i administratorit

Pasi të keni përfunduar të paktën një regjistrim, mund të shkoni në seksionin ADMIN.
Hyni në PANELI ADMIN:

http://your_site.ru/adminka/

Mos harroni ta siguroni këtë dosje dhe gjithashtu mund ta riemërtoni.
Kur të hapni panelin e administratorit, klikoni butonin KËRKO dhe do t'ju shfaqen të gjithë përdoruesit e regjistruar, ku kur klikoni në një numër specifik ID, do të shihni të dhënat e përdoruesit për modifikim.

Ju gjithashtu mund të gjeni shpejt një përdorues me postën e tij elektronike; për ta bërë këtë, thjesht shkruani një e-mail të njohur në fushën KËRKO dhe klikoni mbi butonin.
Unë nuk rekomandoj përdorimin e butonit ADD, pasi përdoruesi shtohet në sistem pa një fjalëkalim. Dhe nuk e kam idenë pse ata madje ia dolën.

Kjo është e gjitha, nëse nuk funksionon ose nuk është e qartë, bëni pyetje.

Në të njëjtën kohë mund të provoni

Udhëzimet

Filloni të krijoni një formular regjistrimi me etiketën, midis së cilës duhet të vendosni etiketa shtesë që lejojnë përdoruesit të fusin të dhënat e tyre në formular.

Hapni skedarin html dhe filloni të vendosni kodin. Etiketa përgjegjëse për krijimin e formularit është "forma". Ne e shkruajmë etiketën së bashku me atributet “form veprim=”obrabotka.php” metoda=”post” emri”forma1””. Le të fillojmë krijimin e elementeve të formës. Pothuajse të gjithë elementët janë bërë duke përdorur etiketën dhe atributin e tij "tip", i cili është përgjegjës për llojin e të dhënave, për shembull teksti, fjalëkalimi, etj. Ne gjithmonë vendosim emrin "emri" për cilindo nga atributet.

Shkruani: "br" Shkruani emrin tuaj: "br"

"input type="text" name="fio""

"br" Fut fjalëkalimin: "br"

"Lloji i hyrjes = "fjalëkalimi" emri "kalim""

"br"Fut E-mail:l"br"

"input type="text" name="email"".

Tjetra, ne krijojmë një element të zgjedhjes së butonit të radios. Një buton radioje është një element i formës që, kur klikoni mbi të me kursorin, butonat e tjerë të radios fiken. Le të shpjegojmë me një shembull të formës sonë. Kur porosisni një kurs, zgjedhja do të përbëhet nga CD ose DVD, kështu që ju duhet të zgjidhni një. Elementi i atributit "lloj" - "radio" është përgjegjës për krijimin e një butoni të tillë. Ne do të specifikojmë të njëjtin emër për llojin e medias, kështu që do të specifikojmë atributin "vlerë" në mënyrë që mbajtësi të mund të përcaktojë me saktësi vlerën e ndryshores. Ne shkruajmë kodin: "br"Zgjidhni opsionin e mediumit të ruajtjes: "br"

"input type="radio" name="disc" value="cd"" CD "br"!}

"input type="radio" name="disc" value="dvd"" DVD "br"!}

Nëse teksti i shtohet atributi "vlerë", atëherë formulari do të shfaqë menjëherë vlerën që i kemi caktuar këtij atributi. Për shembull, në mënyrë që forma e emrit të plotë të përmbajë tashmë një lloj emri (vlera = "emri").

Futni një element tjetër dhe vendosni llojin në "checkbox" për t'i lejuar përdoruesit të kontrollojnë më shumë se një opsion në formular. Për shembull:
(Më kontaktoni kur të dërgohet)
(Abonohuni në )

Krijoni një buton "Dërgo" duke shtypur etiketën dhe shkruani të barabartë me "submit", vlera e vendosur në "Dërgo". Për më tepër, në një etiketë tjetër, bëni një buton "Rivendos", duke vendosur përkatësisht llojin "Rivendos" dhe vlerën në "Rivendos". Për shembull, si kjo:


Butoni Submit është për dërgimin e të dhënave dhe butoni Reset është për pastrimin e formularit nëse kërkohet.

Futni një etiketë mbyllëse për të plotësuar formularin. Ruani faqen.

Burimet:

  • Uebfaqja e Konsorciumit W3C
  • formulari i porosisë së produktit për faqen e internetit

Formulari i regjistrimit është një modul i integruar i panelit Joomla. Ju nuk keni nevojë të jeni ekspert në programimin në internet për ta shtuar atë. Megjithatë, nëse vendosni ta ndryshoni, mund ta zbatoni duke përdorur komponentin e Ndërtuesit të Komunitetit ose manualisht. Thjesht duhet të redaktoni elementët e nevojshëm duke studiuar bazat e ndërtimit të faqes në internet.

Udhëzimet

Shkoni te paneli i administratorit të Joomla dhe hapni cilësimet e moduleve të integruara. Shkoni te skedari "Advanced" dhe klikoni në butonin "Krijo". Do të shfaqet dritarja "Menaxheri i moduleve", në të cilën duhet të zgjidhni dhe aktivizoni formularin e regjistrimit. Specifikoni titullin e dëshiruar për titullin dhe kontrolloni kutinë pranë rreshtit "Trego titullin".

Hapni seksionin "Teksti fillestar" në modulin e formularit të regjistrimit dhe modifikoni tekstin standard për vizitorët nëse nuk ju përshtatet. Në artikullin "Hyrja", ju mund të zgjidhni se si do të thirret përdoruesi në sit: nën emrin ose hyrjen tuaj. Klikoni butonin "Ruaj" që ndryshimet të hyjnë në fuqi.

Ngarko komponentin e Ndërtuesit të Komunitetit në faqen tuaj. Për ta bërë këtë, shkoni te seksioni "Ngarko skedarin e paketës" dhe klikoni në butonin "Shfleto". Pasi të zgjidhni dokumentet e kërkuara, klikoni në butonin "Shkarko dhe Instalo". Shkoni te paneli i administratorit dhe ekzekutoni komponentin e instaluar.

Hapni skedën "Regjistrimi" dhe bëni të gjitha ndryshimet e nevojshme në formularin e regjistrimit. Ky aplikacion është shumë i përshtatshëm për t'u përdorur, por nëse dëshironi të ndryshoni vetëm një ose dy fusha, do të jetë më i përshtatshëm për ta modifikuar manualisht.

Krijoni një kopje rezervë të skedarëve që do të modifikoni për të bërë rregullime në formularin e regjistrimit. Kjo do t'ju lejojë të ktheni të gjitha veprimet dhe të rivendosni funksionalitetin e sajtit në rast të dështimit. Përcaktoni se cilat fusha dëshironi të modifikoni ose shtoni. Për shembull, ju dëshironi të shtoni një fushë "Qyteti" në formularin e regjistrimit.

Hapni skedarin default.php, i cili ndodhet në komponentët/com_user/views/register/tmpl. Shtoni një ekran "Qytetet" duke futur kodin e duhur HTML në formularin e regjistrimit. Për ta bërë këtë, mund të kopjoni çdo artikull tjetër dhe ta modifikoni atë për qytetin. Bëni këto ndryshime në tabelën jos_users. Hapni skedarin user.php, i cili ndodhet në libraries/joomla/database/table. Shtoni një ndryshore të re në të. Ruani cilësimet dhe rinisni faqen.

Burimet:

  • Si të ndryshoni modulin në joomla
Këshillë 7: Si të bëni një regjistrim të përkohshëm pa pronar

Kolonët e rinj të lumtur nuk janë gjithmonë në gjendje të përmbushin kërkesat e ligjit për regjistrimin në vendbanimin (bëjnë një regjistrim të përkohshëm) brenda periudhës së caktuar prej 90 ditësh. Ndonjëherë arsyeja për këtë mund të jetë ngurrimi ose pamundësia e pronarit të banesës për t'u paraqitur në organizatën përkatëse për të kryer veprimet e regjistrimit.

Sigurisht, nëse pronari nuk ka shprehur dëshirën për të legalizuar qëndrimin tuaj të përkohshëm në ambientet e tij të banimit, atëherë nuk do të mund të regjistroheni. Përjashtim bën kur regjistroni fëmijën tuaj të mitur në vendin tuaj të regjistrimit. Në këtë rast, nuk ka nevojë të merret pëlqimi i pronarit.

Por nëse problemi me regjistrimin e përkohshëm është vetëm mungesa e dëshirës së pronarit për të vizituar me ju punonjësit përgjegjës për pranimin e dokumenteve për regjistrim, atëherë rregulloret parashikojnë mundësinë për të marrë regjistrim të përkohshëm pa praninë e pronarit.

Nëse baza për të hyrë është një marrëveshje qiraje, atëherë mund të dërgoni një marrëveshje noteriale me postë me dokumentet e mbetura të bashkangjitura (kopja e pasaportës, aplikimi i plotësuar). Në një situatë të tillë, personat përgjegjës për pranimin e dokumenteve nuk kanë detyrimin për të vërtetuar një kopje të kësaj marrëveshjeje dhe pronari i lokalit nuk nënshkruan kërkesën.

Nëse është e mundur të dorëzohet vetëm marrëveshja në formë të thjeshtë me shkrim, atëherë personat përgjegjës duhet të vërtetojnë nënshkrimin e pronarit dhe personit të regjistruar në aplikim. Në këtë situatë, prania e pronarit nuk mund të shmanget.

Certifikata e regjistrimit në vendin e banimit mund të merret edhe me postë.

Megjithëse prania e pronarit gjatë marrjes së regjistrimit të përkohshëm nuk kërkohet, nuk duhet të shpresoni se ai nuk do të mësojë për banorët e rinj. Pasi të kenë përfunduar veprimet e regjistrimit, autoritetet e FMS do t'i dërgojnë atij një njoftim për personin e regjistruar në hapësirën e tij të banimit.

Këshillë 8: Si të plotësoni formularin 3-NDFL për shitjen e një makine

Nëse keni shitur një makinë që keni në pronësi për më shumë se tre vjet, nuk keni pse të lexoni më tej: duke filluar nga viti 2011, të drejtat tuaja për një zbritje të tatimit në pronë njihen automatikisht. Kjo do të thotë që ju nuk keni nevojë të bëni një deklaratë. Por nëse e keni në pronësi për një periudhë më të shkurtër kohe, do t'ju duhet të plotësoni letrat e nevojshme. Mënyra më e lehtë për ta bërë këtë është përdorimi i programit Deklarata.

Do t'ju duhet

  • - kompjuter;
  • - Hyrje në internet;
  • - Programi "Deklarata" nga GNIIVS i Shërbimit Federal të Taksave të Federatës Ruse;
  • - marrëveshjen e blerjes dhe shitjes së veturës;
  • - dokumente që konfirmojnë të ardhurat tuaja të tjera dhe pagesën e tatimit mbi të ardhurat personale për të për vitin e kaluar.

Udhëzimet

Ju mund të shkarkoni versionin më të fundit të programit në faqen e internetit të Qendrës kryesore të Kërkimit të Shërbimit Federal të Taksave (GNIVC FTS) të Rusisë. Ajo përhapet

Përshëndetje! Tani do të përpiqemi të zbatojmë regjistrimin më të thjeshtë në sit duke përdorur PHP + MySQL. Për ta bërë këtë, Apache duhet të instalohet në kompjuterin tuaj. Parimi i funksionimit të skenarit tonë është paraqitur më poshtë.

1. Le të fillojmë duke krijuar një tabelë të përdoruesve në bazën e të dhënave. Ai do të përmbajë të dhënat e përdoruesit (identifikimi dhe fjalëkalimi). Le të shkojmë te phpmyadmin (nëse po krijoni një bazë të dhënash në kompjuterin tuaj http://localhost/phpmyadmin/). Ne krijojmë një tabelë të përdoruesve, ajo do të ketë 3 fusha.

Unë e krijoj atë në bazën e të dhënave mysql, ju mund ta krijoni në një bazë të dhënash tjetër. Më pas vendosni vlerat si në figurë:

2. Kërkohet një lidhje me këtë tabelë. Le të krijojmë një skedar bd.php. Përmbajtja e tij:

Në rastin tim duket kështu:

Ruaj bd.php.
E madhe! 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!

Format HTML janë elementë komplekse të ndërfaqes. Ato përfshijnë elemente të ndryshme funksionale: fushat e hyrjes, listat, këshillat e veglave, etj. I gjithë kodi i formularit gjendet brenda .

Shumica e informacioneve të formularit të internetit përcillen duke përdorur . Për të futur një rresht teksti, përdoret elementi; për rreshta të shumëfishtë, përdoret elementi. Elementi krijon një listë rënëse.

Elementi krijon etiketa për fushat e formave. Ka dy mënyra për të grupuar etiketat dhe fushat. Nëse fusha është brenda një elementi, atëherë atributi for nuk ka nevojë të specifikohet.

Mbiemri Mbiemri Mbiemri

Fushat e formularit mund të ndahen në blloqe logjike duke përdorur elementin. Çdo seksioni mund t'i jepet një emër duke përdorur elementin.

Informacioni i kontaktit Emri Email
Oriz. 1. Grupimi i fushave të formularit

Për ta bërë formularin më të kuptueshëm për përdoruesit, teksti shtohet në fushat e formularit për të dhënë një shembull të të dhënave hyrëse. Ky lloj teksti quhet tekst wildcard dhe krijohet duke përdorur atributin vendmbajtës.

Fushat e kërkuara duhet gjithashtu të theksohen. Përpara HTML5, simboli yll * përdorej pranë emrit të fushës. Specifikimi i ri prezanton një atribut të posaçëm të kërkuar, i cili ju lejon të shënoni një fushë të kërkuar në nivelin e shënjimit. Ky atribut udhëzon shfletuesin (duke supozuar se mbështet HTML5) të mos dërgojë të dhëna pasi përdoruesi të klikojë dërgoni derisa të plotësohen fushat e specifikuara.

Për të ndryshuar pamjen e një fushe teksti kur merrni fokus, përdorni pseudo-klasën e fokusit. Për shembull, mund ta bëni sfondin e fushës aktuale më të errët ose të shtoni një kufi me ngjyrë për ta bërë atë të dallohet nga pjesa tjetër:

Hyrja: fokus ( sfond: #eaeaea; )

Një tjetër atribut i dobishëm HTML5 është atributi i fokusimit automatik. Kjo ju lejon të vendosni automatikisht fokusin në fushën e dëshiruar fillestare për elementët dhe (vetëm një element të çdo forme).

Shembull i krijimit të një formulari regjistrimi

Shënimi HTML

Emri i regjistrimit Gjinia mashkull femër E-mail Shteti Zgjidh shtetin e banimit Rusia Ukrainë Bjellorusia Dërgo

shënim
action="form.php" - lidhje me skedarin e trajtuesit të formularit. Krijoni një skedar në kodimin UTF-8, ngarkoni atë në server dhe zëvendësoni action="form.php" me shtegun drejt skedarit në serverin tuaj.


Oriz. 2. Pamja e parazgjedhur e formularit

Siç mund ta shihni nga figura, çdo element i formës ka stile të paracaktuara të shfletuesit. Le të pastrojmë stilet dhe të stilojmë elementët e formës.

Form-wrap ( gjerësia: 550px; sfondi: #ffd500; kufiri-radius: 20px; ) .form-wrap *(transition: .1s linear) .profile (gjerësia: 240px; float: majtas; rreshtimi i tekstit: në qendër; mbushje : 30 px; ) forma ( sfondi: i bardhë; lundrues: majtas; gjerësia: llogaritur (100% - 240 px); mbushje: 30 px; rreze kufiri: 0 20 px 20 px 0; ngjyra: #7b7b7b; ) .form-mbështjell: pas, forma div:after (përmbajtja: ""; shfaqja: tabela; e qartë: të dyja; ) forma div ( margjina e poshtme: 15 px; pozicioni: relative; ) h1 (madhësia e shkronjave: 24 px; pesha e shkronjave: 400; pozicioni: relative ; margin-lart: 50px;) h1:after (përmbajtja: "\f138"; madhësia e shkronjave: 40px; font-familja: FontAwesome; pozicioni: absolute; lart: 50px; majtas: 50%; transformimi: translateX(-50 %);) /************************ stilimi i elementeve të formës ****************** * **/ etiketa, hapësira (ekrani: bllok; madhësia e shkronjave: 14 px; margjina e poshtme: 8 px; ) hyrja, hyrja ( gjerësia e kufirit: 0; skica: asnjë; diferenca: 0; gjerësia: 100%; mbushja: 10px 15px; sfond: #e6e6e6; ) hyrje:fokus, hyrje:fokus (box-hije: inset 0 0 0 2px rgba(0,0,0,.2); ) .radio etiketa ( pozicioni: relative; mbushje-majtas: 50 px; kursori: treguesi; gjerësia: 50%; notimi: majtas; lartësia e linjës: 40 px; ) .hyrja e radios ( pozicioni: absolute; opaciteti: 0; ) .radio -kontrolli ( pozicioni: absolute; lart: 0; majtas: 0; lartësia: 40 px; gjerësia: 40 px; sfondi: #e6e6e6; rreze-kufi: 50%; rreshtimi i tekstit: në qendër; ) .male:para (përmbajtja: " \f222"; font-familja: FontAwesome; pesha e shkronjave: bold; ) .female:para (përmbajtja: "\f221"; font-familje: FontAwesome; pesha e shkronjave: bold; ) .etiketa radio: hyrja hover ~ . radio-kontroll, .hyrja radio: fokus ~ .radio-kontroll ( kuti-hije: futur 0 0 0 2px rgba(0,0,0,.2); ) .hyrja radio: e kontrolluar ~ .radio-kontroll ( ngjyra: e kuqe; ) zgjidhni ( gjerësia: 100%; kursori: treguesi; mbushja: 10 pikselë 15 px; skica: 0; kufiri: 0; sfondi: #e6e6e6; ngjyra: #7b7b7b; -kit-uebfaqja: asnjë; /* hiqni zgjedhjen e uebkit -shfletuesit */ -moz-appearance: asnjë; /*zgjidhni në Mozilla Firefox*/ ) zgjidhni::-ms-expand (ekrani: asnjë; /*zgjidhni në IE*/) .select-arrow (pozita: absolute ; sipër: 38px; djathtas: 15 px; gjerësia: 0; lartësia: 0; tregues-ngjarje: asnjë; /*aktivizoni shfaqjen e listës kur klikoni në shigjetën*/ border-style: solid; gjerësia e kufirit: 8px 5px 0 5px; border-color: #7b7b7b transparent transparent transparent; ) butoni ( mbushja: 10 pikselë; gjerësia e kufirit: 0; ekrani: bllok; gjerësia: 120 px; margjina: 25 pikselë automatike 0; sfondi: #60e6c5; ngjyra: e bardhë; madhësia e shkronjave: 14 px; skica: asnjë; transformimi i tekstit : shkronja të mëdha; ) /************************ shtoni përshtatshmërinë në formë ****************** ** **/ @media (max-width: 600px) ( .form-wrap (margin: 20px auto; max-width: 550px; width:100%;) .profile, form (float: asnjë; gjerësia: 100% ;) h1 (margin-lart: automatik; mbushje-fund: 50px;) forma (rrezja e kufirit: 0 0 20px 20px;) )

Skedari Form.php

shënim
Në variablin $subject, specifikoni tekstin që do të shfaqet si titull i letrës;
Your_name - këtu mund të specifikoni emrin që do të shfaqet në fushën "nga kush është shkronja";
zëvendësoni your_site_url me adresën e sajtit me formularin e regjistrimit;
zëvendësoni your_email me adresën tuaj të emailit;
$headers .= "Bcc: your_mail". "\r\n"; dërgon BCC në adresën tuaj të emailit.

Artikujt më të mirë mbi këtë temë