Vytvorenie stránky založenej na členstve sa spočiatku javí ako náročná úloha. Ak ste to niekedy chceli urobiť sami, potom ste to vzdali, keď ste začali premýšľať, ako to poskladať pomocou svojich zručností PHP, potom je tento článok určený pre vás. Prevedieme vás každým aspektom vytvárania členskej lokality so zabezpečenou členskou oblasťou chránenou heslom.
Celý proces pozostáva z dvoch veľkých častí: registrácie používateľa a autentifikácie používateľa. V prvej časti sa budeme venovať vytváraniu registračného formulára a ukladaniu údajov do databázy MySQL. V druhej časti vytvoríme prihlasovací formulár a pomocou neho umožníme používateľom prístup do zabezpečenej oblasti.
Stiahnite si kód
Celý zdrojový kód pre registračný/prihlasovací systém si môžete stiahnuť z nižšie uvedeného odkazu:
Konfigurácia a nahrávanie
Súbor ReadMe obsahuje podrobné pokyny.
Otvor source\include\membersite_config.php súbor v textovom editore a aktualizujte konfiguráciu. (Prihlásenie do databázy, názov vašej webovej stránky, vaša e-mailová adresa atď.).
Nahrajte celý obsah adresára. Otestujte register.php odoslaním formulára.
Registračný formulár
Aby sme mohli vytvoriť používateľský účet, musíme od používateľa získať minimálne množstvo informácií. Potrebujeme jeho meno, e-mailovú adresu a požadované používateľské meno a heslo. Samozrejme, v tomto bode môžeme požiadať o ďalšie informácie, ale dlhý formulár je vždy na odvrátenie. Obmedzme sa teda len na tieto polia.
Tu je registračný formulár:
Takže máme textové polia pre meno, e-mail a heslo. Všimnite si, že používame pre lepšiu použiteľnosť.
Overenie formulára
V tomto bode je dobré vložiť nejaký overovací kód formulára, aby sme sa uistili, že máme všetky údaje potrebné na vytvorenie používateľského účtu. Musíme skontrolovať, či je vyplnené meno, e-mail a heslo a či je e-mail v správnom formáte.
Spracovanie odoslania formulára
Teraz musíme spracovať údaje formulára, ktoré sú odoslané.
Tu je postupnosť (pozri súbor fg_membersite.php v stiahnutom zdroji):
function RegisterUser() ( if(!isset($_POST["submitted"])) ( return false; ) $formvars = array(); if(!$this->ValidateRegistrationSubmission()) ( return false; ) $this- >CollectRegistrationSubmission($formvars); if(!$this->SaveToDatabase($formvars)) ( return false; ) if(!$this->SendUserConfirmationEmail($formvars)) ( return false; ) $this->SendAdminIntimationEmail($ formvars); vráti true; )
Najprv overíme odoslanie formulára. Potom zhromažďujeme a „dezinfikujeme“ údaje o odoslaní formulára (vždy to urobte pred odoslaním e-mailu, uložením do databázy atď.). Odoslaný formulár sa potom uloží do databázovej tabuľky. Používateľovi pošleme e-mail so žiadosťou o potvrdenie. Potom oznámime správcovi, že sa používateľ zaregistroval.
Ukladanie údajov do databázy
Teraz, keď sme zhromaždili všetky údaje, musíme ich uložiť do databázy.
Takto uložíme odoslaný formulár do databázy.
function SaveToDatabase(&$formvars) ( if(!$this->DBLogin()) ( $this->HandleError("Prihlásenie do databázy zlyhalo!"); return false; ) if(!$this->Ensuretable()) ( return false; ) if(!$this->IsFieldUnique($formvars,"email")) ( $this->HandleError("Tento e-mail je už zaregistrovaný"); return false; ) if(!$this->IsFieldUnique( $formvars,"username")) ( $this->HandleError("Toto používateľské meno sa už používa. Skúste iné používateľské meno"); return false; ) if(!$this->InsertIntoDB($formvars)) ( $this- >HandleError("Vloženie do databázy zlyhalo!"); return false; ) return true; )
Všimnite si, že ste nakonfigurovali prihlasovacie údaje do databázy v súbore membersite_config.php. Vo väčšine prípadov môžete ako hostiteľ databázy použiť „localhost“.
Po prihlásení sa presvedčíme, že tabuľka existuje. (Ak nie, skript vytvorí požadovanú tabuľku).
Potom sa uistíme, že používateľské meno a e-mail sú jedinečné. Ak nie je jedinečný, vrátime chybu späť používateľovi.
Štruktúra databázovej tabuľky
Toto je štruktúra tabuľky. Funkcia CreateTable() v súbore fg_membersite.php vytvorí tabuľku. Tu je kód:
function CreateTable() ( $qry = "Vytvoriť tabuľku $this->názov tabuľky (. "id_user INT NOT NULL AUTO_INCREMENT ," "meno VARCHAR(128) NOT NULL," "e-mail VARCHAR(64) NOT NULL," " "telefónne číslo VARCHAR(16) NOT NULL," "používateľské meno VARCHAR(16) NOT NULL," "heslo VARCHAR(32) NOT NULL," "potvrdiť kód VARCHAR(32)," "PRIMARY KEY (id_user)." ")"; if( !mysql_query($qry,$this->connection)) ( $this->HandleDBError("Chyba pri vytváraní tabuľky \ndotaz bol\n $qry"); return false; ) return true; )
Pole id_user bude obsahovať jedinečné ID používateľa a je tiež primárnym kľúčom tabuľky. Všimnite si, že povoľujeme 32 znakov pre pole hesla. Robíme to preto, že ako dodatočné bezpečnostné opatrenie uložíme heslo do databázy zašifrované pomocou MD5. Upozorňujeme, že pretože MD5 je jednosmerná metóda šifrovania, nebudeme môcť obnoviť heslo v prípade, že ho používateľ zabudne.
Vloženie registrácie do tabuľky
Tu je kód, ktorý používame na vkladanie údajov do databázy. Všetky naše údaje budeme mať k dispozícii v poli $formvars.
function InsertIntoDB(&$formvars) ( $confirmcode = $this->MakeConfirmationMd5($formvars["email"]); $insert_query = "vložiť do ".$this->tablename."(meno, email, užívateľské meno, heslo, potvrdiť kód) values ("" . $this->SanitizeForSQL($formvars["name"]) . "", "" . $this->SanitizeForSQL($formvars["e-mail"]) . "", "" $ this->SanitizeForSQL($formvars["používateľské meno"]) . "", "" . md5($formvars["heslo"]) . "", "" . $confirmcode . "")"; if(! mysql_query( $insert_query ,$this->connection)) ( $this->HandleDBError("Chyba pri vkladaní údajov do tabuľky\nquery:$insert_query"); return false; ) return true; )
Všimnite si, že na zašifrovanie hesla pred vložením do databázy používame PHP funkciu md5().
Jedinečný potvrdzovací kód tiež vytvárame z e-mailovej adresy používateľa.
Odosielanie emailov
Teraz, keď máme registráciu v našej databáze, pošleme používateľovi potvrdzujúci e-mail. Na dokončenie procesu registrácie musí používateľ kliknúť na odkaz v potvrdzovacom e-maile.
function SendUserConfirmationEmail(&$formvars) ( $mailer = nový PHPMailer(); $mailer->CharSet = "utf-8"; $mailer->AddAddress($formvars["email"],$formvars["name"]) ; $mailer->Subject = "Vaša registrácia s ".$this->sitename; $mailer->From = $this->GetFromAddress(); $confirmcode = urlencode($this->MakeConfirmationMd5($formvars["email" ])); $confirm_url = $this->GetAbsoluteURLFolder()."/confirmreg.php?code=".$confirmcode; $mailer->Body ="Dobrý deň ".$formvars["name"]."\r\ n\r\n". "Ďakujeme za Vašu registráciu pomocou ".$this->sitename."\r\n". "Kliknutím na odkaz nižšie potvrďte svoju registráciu.\r\n." "$confirm_url\r \n". "\r\n". "S pozdravom\r\n". "Správca webu\r\n". $this->sitename; if(!$mailer->Send()) ( $this-> HandleError("Odoslanie e-mailu s potvrdením registrácie zlyhalo."); return false; ) return true; )
Aktualizácie
9. januára 2012
Boli pridané funkcie Obnoviť heslo/Zmeniť heslo
Kód je teraz zdieľaný na GitHub.
Vitaj späť= $fgmembersite->UserFullName(); ?>!
Licencia
Kód je zdieľaný pod licenciou LGPL. Môžete ho voľne používať na komerčných alebo nekomerčných webových stránkach.
Žiadne súvisiace príspevky.
Komentáre k tomuto záznamu sú uzavreté.
Za posledných pár rokov prešiel webhosting dramatickou zmenou. Webhostingové služby zmenili spôsob, akým fungujú webové stránky. Existuje niekoľko druhov služieb, ale dnes budeme hovoriť o možnostiach, ktoré sú k dispozícii pre predajcov hostingu. Sú to Linux Reseller Hosting a Windows Reseller Hosting. Predtým, ako pochopíme základné rozdiely medzi nimi, poďme zistiť, čo je hosting predajcu.
Reseller Hosting
Zjednodušene povedané, reseller hosting je forma webhostingu, kde vlastník účtu môže využiť svoj vyhradený priestor na pevnom disku a pridelenú šírku pásma na účely ďalšieho predaja na webové stránky tretích strán. Niekedy si predajca môže prenajať dedikovaný server od hostiteľskej spoločnosti (Linux alebo Windows) a ďalej ho prenajať tretím stranám.
Väčšina používateľov webových stránok používa Linux alebo Windows. Súvisí to s dobou prevádzkyschopnosti. Obe platformy zaisťujú, že váš web je v 99 % prípadov.
1. Prispôsobenie
Jedným z hlavných rozdielov medzi hostingovým plánom predajcu Linuxu a plánom poskytovaným systémom Windows je prispôsobenie. Aj keď môžete experimentovať s oboma prehrávačmi niekoľkými spôsobmi, Linux je oveľa prispôsobiteľnejší ako Windows. Ten má viac funkcií ako jeho náprotivok, a preto mnohí vývojári a správcovia považujú Linux za veľmi priateľský.
2. Aplikácie
Rôzne hostingové služby predajcov majú rôzne aplikácie. Linux aj Windows majú svoju vlastnú škálu aplikácií, no tá druhá má výhodu, pokiaľ ide o počet a všestrannosť. Súvisí to s open source povahou Linuxu. Každý vývojár môže nahrať svoju aplikáciu na platformu Linux, čo z nej robí atraktívneho poskytovateľa hostingu pre milióny vlastníkov webových stránok.
Upozorňujeme však, že ak používate Linux na webhosting, ale zároveň používate OS Windows, niektoré aplikácie nemusia jednoducho fungovať.
3. Stabilita
Zatiaľ čo obe platformy sú stabilné, Linux Reseller Hosting je z týchto dvoch stabilnejší. Je to platforma s otvoreným zdrojovým kódom a môže pracovať v niekoľkých prostrediach. Túto platformu možno každú chvíľu upravovať a rozvíjať.
4. .NET kompatibilita
Nie je to tak, že Linux je lepší ako Windows vo všetkých možných smeroch. Pokiaľ ide o kompatibilitu .NET, Windows kradne pozornosť. Webové aplikácie možno ľahko vyvíjať na hostiteľskej platforme Windows.
5. Cenové výhody
Obe hostingové platformy sú cenovo dostupné. Ak však pociťujete nedostatok peňazí, mali by ste sa rozhodnúť pre Linux. Je zadarmo, a preto si ho zvolilo toľko vývojárov a systémových administrátorov po celom svete.
6. Jednoduché nastavenie
Systém Windows sa nastavuje jednoduchšie ako jeho náprotivok. Všetko povedané a urobené, systém Windows si po celé tie roky stále zachováva svoju užívateľskú prívetivosť.
7.Bezpečnosť
Rozhodnite sa pre hosting predajcu Linuxu, pretože je bezpečnejší ako Windows. To platí najmä pre ľudí, ktorí prevádzkujú svoje elektronické obchody.
Záver
Výber medzi týmito dvomabude závisieť od vašej požiadavky a nákladovej flexibility. Obe hostingové služby majú jedinečné výhody. Zatiaľ čo systém Windows sa ľahko nastavuje, Linux je nákladovo efektívny, bezpečný a všestrannejší.
V marci tohto roku som mal veľmi zlú skúsenosť s mediálnou spoločnosťou, ktorá mi odmietla zaplatiť a odpovedať na moje e-maily. Stále mi dlžia tisíce dolárov a pocit hnevu, ktorý mám, preniká každý deň. Ukázalo sa však, že nie som sám a stovky ďalších vlastníkov webových stránok sú na rovnakej lodi. Je to porovnateľné s digitálnou reklamou.
Úprimne povedané, tento blog mám už dlho a v minulosti som poskakoval po rôznych reklamných sieťach. Po odstránení reklamných jednotiek z tejto spoločnosti, ktorá ma zneistila, som bol späť na začiatku. Mal by som tiež poznamenať, že Produkt Google AdSense sa mi nikdy celkom nepáčil, len preto, že mi pripadal ako „spodok suda“ grafických reklám. Nie z hľadiska kvality, ale z hľadiska príjmu.
Z toho, čo som pochopil, chcete na svojej stránke inzerovať Google, ale chcete, aby to robili aj iné veľké spoločnosti a agentúry. Týmto spôsobom maximalizujete dopyt a výnosy.
Po mojej negatívnej skúsenosti som odporučil spoločnosť Newor Media. A ak mám byť úprimný, najprv ma nepredali hlavne preto, že som o nich nenašiel veľa informácií. Našiel som pár slušných recenzií na iných stránkach a po rozhovore s niekým som sa rozhodol, že to skúsim .Poviem, že sú SUPER nápomocní. Každá sieť, s ktorou som kedy pracoval, bola so mnou dosť krátka, pokiaľ ide o odpovede a rozbehnutie. Odpovedali na každú otázku a bol to skutočne povzbudzujúci proces.
Reklamy som spúšťal niekoľko mesiacov a zárobky sú približne v súlade s tým, čo som zarábal s inou spoločnosťou. Takže naozaj nemôžem povedať, či sú o toľko lepšie ako ostatné, ale kde vynikajú je bod, ktorý chcem naozaj povedať. Komunikácia s nimi sa nepodobá žiadnej inej sieti, s ktorou som kedy pracoval. Tu je prípad, keď sú skutočne odlišné:
Prvú platbu mi posunuli načas cez Paypal. Ale pretože nie som v USA (a to sa stáva každému, myslím si), že mi Paypal vybral poplatok. Poslal som o tom svojmu zástupcovi e-mail s otázkou, či existuje spôsob, ako sa tomu v budúcnosti vyhnúť.
Povedali, že sa nemôžu vyhnúť poplatku, ale že by VRÁTANE VŠETKÝCH POPLATKOV.... VRÁTANE NAJNOVŠEJ PLATBY! Nielen to, ale úhrada bola prijatá do 10 MINÚT! Kedy sa vám niekedy podarilo podať takúto žiadosť bez toho, aby ste ju museli preposlať „finančnému oddeleniu“, aby ste na ňu nikdy neodpovedali.
Pointa je, že milujem túto spoločnosť. Možno by som mohol zarobiť viac niekde inde, nie som si istý, ale majú so mnou doživotného vydavateľa. Nie som veľká stránka a nevytváram veľa príjmov, ale cítim sa ako Veľmi dôležitý klient, keď s nimi hovorím. Je to skutočne čerstvý vzduch v odvetví, ktoré je zrelé na podvody a nereagovanie.
Mikropočítače, ktoré v roku 2012 vytvorila nadácia Raspberry Pi Foundation, boli mimoriadne úspešné v podnecovaní kreativity u malých detí a táto spoločnosť so sídlom v Spojenom kráľovstve začala ponúkať spúšťacie programy na učenie sa kódovania ako pi-top an Kano. Teraz existuje nový startup, ktorý využíva elektroniku Pi a zariadenie je známe ako Pip, ručná konzola, ktorá ponúka dotykovú obrazovku, viacero portov, ovládacie tlačidlá a reproduktory. Myšlienkou tohto zariadenia je zaujať mladších jednotlivcov pomocou herného zariadenia, ktoré je retro, ale zároveň ponúka zážitok z učenia sa kódu prostredníctvom webovej platformy.
Úžasná softvérová platforma, ktorú ponúka Pip, ponúkne možnosť začať kódovať v Pythone, HTML/CSS, JavaScript, Lua a PHP. Zariadenie ponúka návody krok za krokom, aby deti začali s kódovaním, a umožňuje im dokonca rozblikať LED diódy. Aj keď je Pip stále prototypom, určite bude obrovským hitom v tomto odvetví a zapojí deti, ktoré majú záujem o kódovanie, a poskytne im vzdelanie a zdroje potrebné na to, aby začali s kódovaním v mladom veku.
Budúcnosť kódovania
Kódovanie má veľkú budúcnosť a aj keď deti nebudú používať kódovanie ako svoju kariéru, môžu mať prospech z toho, že sa naučia kódovať pomocou tohto nového zariadenia, ktoré to uľahčuje ako kedykoľvek predtým. S Pip sa dokonca aj najmladší nadšenci kódovania naučia rôzne jazyky a budú na dobrej ceste k vytváraniu vlastných kódov, vlastných hier, vlastných aplikácií a podobne. Je to budúcnosť elektronickej éry a Pip umožňuje zvládnuť základné stavebné kamene kódovania.Informatika sa stala dôležitou súčasťou vzdelávania a so zariadeniami, ako je nový Pip, môžu deti začať zdokonaľovať svoje vzdelanie doma a zároveň sa zabaviť. Kódovanie ďaleko presahuje jednoduché vytváranie webových stránok alebo softvéru. Môže sa použiť na zvýšenie bezpečnosti v meste, na pomoc pri výskume v oblasti medicíny a oveľa viac. Keďže teraz žijeme vo svete, v ktorom dominuje softvér, kódovanie je budúcnosť a pre všetky deti je dôležité, aby aspoň základne rozumeli tomu, ako to funguje, aj keď tieto zručnosti nikdy nevyužijú ako svoju kariéru. Z hľadiska budúcnosti bude kódovanie kritickou súčasťou každodenného života. Bude to jazyk sveta a neznalosť počítačov alebo ich fungovania môže predstavovať výzvy, ktoré je rovnako ťažké prekonať ako negramotnosť.
Kódovanie tiež prinesie veľké zmeny v hernom svete, najmä pokiaľ ide o online hranie, vrátane prístupu online kasín. Ak chcete vidieť, ako už kódovanie zlepšilo herný svet, pozrite sa na niekoľko najlepšie hodnotených kasínových stránok, ktoré sa spoliehajú na kódovanie. Nahliadnite a pozrite sa, ako môže kódovanie prezentovať realistické prostredie online.
Ako Pip zapája deti
Pokiaľ ide o možnosť naučiť sa kódovať, deti majú veľa možností. Existuje množstvo zariadení a hardvérových vecí, ktoré je možné zakúpiť, ale Pip má k ich zariadeniu iný prístup. Prenosnosť zariadenia a dotyková obrazovka ponúkajú výhodu iným kódovacím zariadeniam, ktoré sú na trhu. Pip bude plne kompatibilný s elektronickými komponentmi okrem systému Raspberry Pi HAT. Zariadenie používa štandardné jazyky a má základné nástroje a je perfektným zariadením pre každého začínajúceho programátora. Cieľom je odstrániť akékoľvek bariéry medzi nápadom a tvorbou a sprístupniť nástroje okamžite na použitie. Jednou z ďalších veľkých výhod Pipu je, že používa SD kartu, takže ho možno použiť aj ako stolný počítač, keď je pripojený k monitoru a myši.Zariadenie Pip by pomohlo deťom a zainteresovaným nováčikom v oblasti kódovania s nadšením pri učení a precvičovaní kódovania. Tým, že ponúka kombináciu dokončovania úloh a majstrovania pri riešení problémov, zariadenie určite zaujme mladšiu generáciu. Zariadenie potom umožňuje týmto mladým programátorom prejsť na pokročilejšie úrovne kódovania v rôznych jazykoch, ako je JavaScript a HTML/CSS. Keďže zariadenie kopíruje hernú konzolu, okamžite upúta pozornosť detí a zapojí ich do poznávania kódovania v mladom veku. Dodáva sa aj s niektorými predinštalovanými hrami na udržanie pozornosti, ako napríklad Pac-Man a Minecraft.
Inovácie, ktoré prídu
Budúca inovácia do značnej miery závisí od aktuálnej schopnosti dieťaťa kódovať a od jeho celkového chápania procesu. Keď sa deti učia kódovať v ranom veku pomocou zariadení, ako je nový Pip, získajú zručnosti a znalosti na vytváranie úžasných vecí v budúcnosti. Mohlo by to byť predstavenie nových hier alebo aplikácií alebo dokonca nápadov, ktoré môžu ožiť, aby pomohli pri lekárskom výskume a liečbe. Možností je nekonečne veľa. Keďže naša budúcnosť bude riadená softvérom a počítačmi, začať mladý je najlepší spôsob, ako ísť, a preto je nový Pip zameraný na mladý dav. Ponukou konzolového zariadenia, ktoré dokáže hrať hry a zároveň učiť kódovacie zručnosti, sú mladí členovia spoločnosti na dobrej ceste stať sa v budúcnosti tvorcami softvéru, ktorý zmení celý náš život. Toto je len začiatok, ale je to niečo, čo sa milióny detí na celom svete začínajú učiť a ovládať. S používaním zariadení ako Pip sú základy kódovania pokryté a deti sa rýchlo naučia rôzne kódovacie jazyky, ktoré môžu viesť úžasnými cestami, keď vstúpia do dospelosti.Návod pre úplných začiatočníkov! Bez ohľadu na to, kam na internete idete, existuje základ, ktorý nájdete takmer všade – registrácia používateľov. Či už potrebujete, aby sa vaši používatelia zaregistrovali kvôli bezpečnosti alebo len kvôli pridanej funkcii, nie je dôvod to neurobiť pomocou tohto jednoduchého návodu. V tomto návode si prejdeme základy správy používateľov a skončíme s jednoduchou členskou oblasťou, ktorú môžete implementovať na svojej vlastnej webovej stránke.
Ak potrebujete ďalšiu pomoc alebo potrebujete skratku, pozrite si škálu poskytovateľov služieb PHP na Envato Studio. Títo skúsení vývojári vám môžu pomôcť s čímkoľvek, od rýchlej opravy chýb až po vývoj celej aplikácie od začiatku. Stačí si teda prezrieť poskytovateľov, prečítať si recenzie a hodnotenia a vybrať si toho pravého pre vás.
Úvod
V tomto návode prejdeme každým krokom vytvárania systému správy používateľov spolu so systémom súkromných správ medzi používateľmi. Urobíme to pomocou PHP s databázou MySQL na ukladanie všetkých informácií o používateľovi. Tento tutoriál je zameraný na úplných začiatočníkov v PHP, takže nie sú potrebné žiadne predchádzajúce znalosti - v skutočnosti sa môžete trochu nudiť, ak ste skúsený používateľ PHP!
Tento tutoriál je určený ako základný úvod do Sessions a do používania databáz v PHP. Aj keď sa vám konečný výsledok tohto návodu nemusí hneď zdať užitočný, zručnosti, ktoré získate z tohto návodu, vám umožnia pokračovať vo vytváraní vlastného systému členstva; vyhovujúce vašim vlastným potrebám.
Pred začatím tohto návodu sa uistite, že máte po ruke nasledujúce informácie:
- Názov hostiteľa databázy- toto je server, na ktorom je hosťovaná vaša databáza, vo väčšine situácií to bude jednoducho „localhost“.
- Názov databázy, Užívateľské meno databázy, Heslo databázy- pred spustením tohto tutoriálu by ste si mali vytvoriť databázu MySQL, ak máte možnosť, alebo máte po ruke informácie na pripojenie k existujúcej databáze. Tieto informácie sú potrebné počas celého tutoriálu.
Ak tieto informácie nemáte, váš poskytovateľ hostingu by vám ich mal vedieť poskytnúť.
Teraz, keď máme formality z cesty, začnime s tutoriálom!
Krok 1 - Počiatočná konfigurácia
Nastavenie databázy
Ako je uvedené v Úvode, potrebujete databázu, aby ste mohli pokračovať cez tento bod tutoriálu. Na začiatok si v tejto databáze vytvoríme tabuľku na uloženie informácií o našich používateľoch.
Tabuľka, ktorú potrebujeme, bude uchovávať naše používateľské informácie; pre naše účely použijeme jednoduchú tabuľku, ale bolo by ľahké uložiť viac informácií do ďalších stĺpcov, ak to potrebujete. V našom systéme potrebujeme nasledujúce štyri stĺpce:
- ID používateľa (Primárny kľúč)
- Používateľské meno
- heslo
- Emailová adresa
Z hľadiska databázy, a Primárny kľúč je pole, ktoré jednoznačne identifikuje riadok. V tomto prípade bude naším primárnym kľúčom UserID. Keďže chceme, aby sa to zvýšilo vždy, keď sa používateľ zaregistruje, použijeme špeciálnu voľbu MySQL - auto_increment .
SQL dotaz na vytvorenie našej tabuľky je zahrnutý nižšie a zvyčajne sa spustí na karte "SQL" v phpMyAdmin.
CREATE TABLE `users` (`UserID` INT(25) NOT NULL AUTO_INCREMENT PRIMARY KEY , `Username` VARCHAR(65) NOT NULL , `Heslo` VARCHAR(32) NOT NULL , `EmailAddress` VARCHAR(255) NOT);
Vytvorenie základného súboru
Aby sme zjednodušili vytváranie nášho projektu, vytvoríme základný súbor, ktorý môžeme zahrnúť do každého súboru, ktorý vytvoríme. Tento súbor bude obsahovať informácie o pripojení k databáze spolu s určitými konfiguračnými premennými, ktoré nám pomôžu na ceste.
Začnite vytvorením nového súboru: base.php a zadajte doň nasledujúci kód:
Poďme sa pozrieť na niekoľko z týchto riadkov? Je tu niekoľko funkcií, ktoré sme použili a ešte sme ich nevysvetlili, takže si ich rýchlo prezrime a pochopme ich význam – ak už rozumiete základom PHP, možno budete chcieť toto vysvetlenie preskočiť.
Session_start();
Táto funkcia spustí reláciu pre nového používateľa a neskôr v tomto návode uložíme informácie v tejto relácii, aby sme mohli rozpoznať používateľov, ktorí sa už prihlásili. Ak už bola relácia vytvorená, táto funkcia to rozpozná a prenesie túto reláciu na ďalšiu stránku.
Mysql_connect($dbhost, $dbuser, $dbpass) or die("Chyba MySQL: " . mysql_error()); mysql_select_db($dbname) or die("Chyba MySQL: " . mysql_error());
Každá z týchto funkcií vykonáva samostatnú, ale prepojenú úlohu. Funkcia mysql_connect pripojí náš skript k databázovému serveru pomocou informácií, ktoré sme mu poskytli vyššie, a funkcia mysql_select_db potom vyberie, ktorú databázu použijeme so skriptom. Ak sa niektorá z funkcií nepodarí dokončiť, funkcia matrice automaticky zasiahne a zastaví spracovanie skriptu - všetkým používateľom zostane správa, že došlo k chybe MySQL.
Krok 2 – Späť na frontend
Čo musíme urobiť ako prvé?
Najdôležitejšou položkou na našej stránke je prvý riadok PHP; tento riadok bude obsahovať súbor, ktorý sme vytvorili vyššie (base.php), a v podstate nám umožní prístup k čomukoľvek z tohto súboru v našom aktuálnom súbore. Urobíme to s nasledujúcim riadkom kódu PHP. Vytvorte súbor s názvom index.php a umiestnite tento kód na začiatok.
Spustite stránku HTML
Prvá vec, ktorú urobíme pre náš frontend, je vytvoriť stránku, na ktorej môžu používatelia zadať svoje údaje na prihlásenie, alebo ak sú už prihlásení na stránke, môžu si vybrať, čo chcú robiť. V tomto návode predpokladám, že používatelia majú základné znalosti o fungovaní HTML/CSS, a preto nebudem tento kód podrobne vysvetľovať; v súčasnosti budú tieto prvky zbavené štýlu, ale budeme to môcť zmeniť neskôr, keď vytvoríme našu šablónu so štýlmi CSS.
Pomocou súboru, ktorý sme práve vytvorili (index.php), zadajte nasledujúci HTML kód pod riadok PHP, ktorý sme už vytvorili.
Čo im ukážeme?
Pred výstupom zvyšku stránky si musíme položiť niekoľko otázok:
- Je už používateľ prihlásený?
- Áno- Musíme im ukázať stránku s možnosťami, ktoré si môžu vybrať.
- Nie
- Áno- musíme skontrolovať ich údaje a ak sú správne, prihlásime ich na stránku.
- Nie- pokračujeme ďalšou otázkou.
Tieto otázky sú v skutočnosti rovnaké otázky, ktoré sa chystáme implementovať do nášho kódu PHP. Urobíme to vo forme príkazov if. Bez toho, aby sme čokoľvek zadávali do ktoréhokoľvek z vašich nových súborov, pozrime sa najprv na logiku, ktorú použijeme.
Vyzerá to zmätočne, však? Rozdeľme to na menšie časti a prejdime si ich jednu po druhej.
If(!empty($_SESSION["LoggedIn"]) && !empty($_SESSION["Username"])) ( // umožniť používateľovi prístup na hlavnú stránku )
Keď sa používateľ prihlási na našu webovú stránku, uložíme jeho informácie v relácii – kedykoľvek potom môžeme k týmto informáciám pristupovať v špeciálnom globálnom poli PHP – $_SESSION . Na kontrolu, či je premenná prázdna, používame funkciu empty s operátorom ! pred ním. Preto hovoríme:
Ak premenná $_SESSION["LoggedIn"] nie je prázdna a $_SESSION["Username"] nie je prázdna, vykonajte túto časť kódu.
Ďalší riadok funguje rovnakým spôsobom, len tentoraz s použitím globálneho poľa $_POST. Toto pole obsahuje všetky údaje odoslané z prihlasovacieho formulára, ktorý vytvoríme neskôr v tomto návode. Posledný riadok sa vykoná iba vtedy, ak nie je splnený ani jeden z predchádzajúcich príkazov; v tomto prípade zobrazíme užívateľovi prihlasovací formulár.
Takže, keď už rozumieme logike, vložme medzi tieto sekcie nejaký obsah. Vo svojom súbore index.php nižšie zadajte, čo už máte.
Členská oblasť
=$_SESSION["EmailAddress"]?>
.
Úspech"; echo" Teraz vás presmerujeme do členskej oblasti.
"; echo" ";) inak (echo"Chyba
"; echo"Ľutujeme, váš účet sa nepodarilo nájsť. Prosím kliknite sem a skúste to znova.
";)) inak (?>Prihlásenie užívateľa
Ďakujeme za návštevu! Prosím prihláste sa nižšie alebo kliknite sem a zaregistrujte sa.
Dúfajme, že vás prvý a posledný blok kódu príliš nezmätie. Teraz sa naozaj musíme zaseknúť je to, kvôli čomu ste všetci prišli na tento tutoriál - kód PHP. Teraz prejdeme cez druhú sekciu jeden riadok po druhom a vysvetlím, na čo je tu každý bit kódu určený.
$username = mysql_real_escape_string($_POST["používateľské meno"]); $password = md5(mysql_real_escape_string($_POST["heslo"]));
Existujú dve funkcie, ktoré je potrebné vysvetliť. Po prvé, mysql_real_escape_string - veľmi užitočná funkcia na čistenie vstupu do databázy. Nie je to bezpečné opatrenie, ale ochráni sa tak pred väčšinou škodlivých hackerov tým, že odstráni nežiaduce časti všetkého, čo bolo vložené do nášho prihlasovacieho formulára. Po druhé, md5. Tu by nebolo možné zachádzať do podrobností, ale táto funkcia jednoducho zašifruje všetko, čo sa jej odovzdá – v tomto prípade heslo používateľa – aby sa zabránilo zvedavým očiam, aby to prečítali.
$checklogin = mysql_query("SELECT * FROM users WHERE Username = "".$username."" AND Password = "".$password."""); if(mysql_num_rows($checklogin) == 1) ( $row = mysql_fetch_array($checklogin); $email = $row["EmailAddress"]; $_SESSION["Username"] = $username; $_SESSION["EmailAddress"] = $email; $_SESSION["Prihlásené"] = 1;
Tu máme jadro nášho prihlasovacieho kódu; najprv spustíme dotaz na našu databázu. V tomto dopyte hľadáme všetko, čo sa týka člena, ktorého používateľské meno a heslo sa zhodujú s hodnotami $username a $password, ktoré používateľ zadal. V ďalšom riadku máme príkaz if, v ktorom kontrolujeme, koľko výsledkov sme dostali - ak žiadne výsledky nie sú, táto sekcia sa nespracuje. Ak však existuje výsledok, vieme, že používateľ existuje, a preto ho prihlásime.
Nasledujúce dva riadky slúžia na získanie e-mailovej adresy používateľa. Tieto informácie už máme z dotazu, ktorý sme už spustili, takže k týmto informáciám môžeme ľahko pristupovať. Najprv získame pole údajov, ktoré boli získané z databázy - v tomto prípade používame funkciu PHP mysql_fetch_array. Potom som priradil hodnotu poľa EmailAddress do premennej, aby sme ju mohli neskôr použiť.
Teraz nastavíme reláciu. V relácii ukladáme používateľské meno a e-mailovú adresu používateľa spolu so špeciálnou hodnotou, aby sme vedeli, že bol prihlásený pomocou tohto formulára. Po tom, čo je toto všetko povedané a urobené, bude presmerovaný do členskej oblasti pomocou META REFRESH v kóde.
Ako teda momentálne vyzerá náš projekt pre používateľa?
Skvelé! Teraz je čas posunúť sa ďalej, aby ste sa uistili, že ľudia sa skutočne dostanú na vašu stránku.
Nechajte ľudí prihlásiť sa
Mať prihlasovací formulár na vašej stránke je v poriadku, ale teraz musíme umožniť používateľom, aby ho mohli používať – musíme vytvoriť prihlasovací formulár. Vytvorte súbor s názvom register.php a vložte doň nasledujúci kód.
Ľutujeme, toto používateľské meno je už zabraté. Vráťte sa späť a skúste to znova.
"; ) else ( $registerquery = mysql_query("INSERT INTO users (Username, Password, EmailAddress) VALUES("".$username."), ".$password.", ".$email."") " ); if($registerquery) ( echo "Úspech
"; echo"Váš účet bol úspešne vytvorený. Prosím kliknite sem pre prihlásenie.
";) inak (echo"Chyba
"; echo"Ľutujeme, vaša registrácia zlyhala. Vráťte sa späť a skúste to znova.
";))) inak (?>Registrovať
Pre registráciu zadajte svoje údaje nižšie.