Presný registračný formulár php. Skripty PHP na spracovanie formulárov HTML. Vytvorenie databázy
Naposledy upravené 23. júla 2019, Vincy.
Registrácia alebo registrácia používateľa je neoddeliteľnou súčasťou mnohých webových aplikácií a pre úspech aplikácie je rozhodujúce správne nastavenie. Je to začiatočný bod interakcie používateľov s vašou aplikáciou.
Malo by to byť čo najjednoduchšie s najlepšími UI / UX. Implementácia funkcií registrácie používateľov pomocou PHP je jednoduchá úloha a ja vás prevediem krokmi s príkladom v tomto článku.
Čo je vo vnútri?
Ako funguje tento príklad registrácie používateľov PHP?
Tento príkladový kód je možné rozdeliť na 3 časti.
- Získanie informácií o používateľovi prostredníctvom formulára HTML.
- Potvrdzovanie informácií odoslaných používateľom pri odoslaní formulára.
- Spracovanie databázy na uloženie registrovaného používateľa do databázy po overení.
Tretí krok sa vykoná po overení, že používateľ už nebol pridaný. Toto overenie jedinečnosti údajov sa vykoná na základe ich e-mailu a používateľského mena, ktoré zadali.
Počas registrácie spravidla zhromažďujeme informácie o používateľoch, ktorí sú pripravení na registráciu pomocou našej aplikácie. Niektoré z nich budú povinné a niektoré budú voliteľné.
Táto funkcionalita teda môže obsahovať aj overovaciu časť na zaistenie prázdnoty a formátu užívateľských údajov. Overenie je možné vykonať na strane klienta alebo servera.
Overenie na strane servera je vždy lepšie. Môžete si zvoliť, že ho budete mať na strane klienta, a to aj pre ľahšie použitie používateľov. Ale mať na strane servera nie je voliteľné a minimálna požiadavka.
Štruktúra súborov
Formulár HTML, ktorý umožňuje používateľovi zaregistrovať sa
V tomto príklade registračný formulár obsahuje polia Používateľské meno, Meno (zobrazované meno), Heslo a E-mail. Má tiež pole Potvrdiť heslo, ktoré umožňuje používateľovi znovu zadať heslo na potvrdenie. Tieto dve heslá budú porovnané neskôr v čase a.
Odoslaním tohto formulára sa od používateľa očakáva, že vyjadrí súhlas s obchodnými podmienkami. Za účelom zaistenia je teda pred tlačidlo Registrovať pridané políčko.
A štýly sú,
Body (rodina fontov: Arial; farba: # 333; veľkosť písma: 0,95em;) .form-head (farba: # 191919; váha písma: normálne; váha písma: 400; okraj: 0; zarovnanie textu) : center; size-font: 1.8em;). error-message (padding: 7px 10px; background: # fff1f2; border: # ffd5da 1px solid; color: # d6001c; border-radius: 4px; margin: 30px 0px 10px 0px ) #ffffff; medzery medzi okrajmi: počiatočné; okraj: 15px auto; zalomenie slova: zalomenie slova; rozloženie tabuľky: auto; výška riadku: 1,8em; farba: # 333; polomer okraja: 4px; polstrovanie: 20px 40px ; width: 380px; border: 1px solid; border-color: # e5e6e9 # dfe0e4 # d0d1d5;) .demo-table .label (color: # 888888;) .demo-table .field-column (padding: 15px 0px;) .demo-vstupný box (výplň: 13px; okraj: #CCC 1px pevný; polomer okraja: 4px; šírka: 100%;) .btnRegister (výplň: 13px; farba pozadia: # 5d9cec; farba: # f5f7fa; kurzor: ukazovateľ; polomer hranice: 4px; šírka: 100%; orámovanie: # 5791da 1px pevný; veľkosť písma: 1.1em; ) .text odpovede (max-šírka: 380px; veľkosť písma: 1,5em; zarovnanie textu: stred; pozadie: # fff3de; výplň: 42px; okraj: 3px; okraj: # f5e9d4 1px pevný; rodina fontov) : arial; výška riadku: 34px; okraj: 15px automaticky;). termíny (spodný okraj: 5px;)
Ako overiť informácie o používateľovi pri odoslaní formulára
V tomto príklade je pridaný overovací skript formulára na strane servera na overenie registračných údajov používateľa. Tento overovací skript PHP sa vyvolá pri odoslaní registračného formulára.
Tento skript validuje všetky polia formulára, aby skontroloval prázdnotu pre každé pole. Potom pomocou funkcie PHP filter_var () overí formát e-mailu používateľa.
Pretože registrácia zahŕňa funkciu potvrdenia hesla, porovnanie hesiel sa uskutoční v tejto časti tohto príkladu.
Nakoniec overovací skript skontroluje, či používateľ akceptuje podmienky, začiarknutím príslušného políčka vo formulári.
Po dokončení celej validácie vrátením logickej hodnoty true bude prebiehať skutočný proces registrácie.
Funkcia validateMember () ($ valid = true; $ errorMessage = array (); foreach ($ _POST ako $ key => $ value) (ak (prázdny ($ _ POST [$ key]))) ($ valid = false;) ) if ($ valid == true) (if ($ _POST ["heslo"]! = $ _POST ["confirm_password"]) ($ errorMessage = "Heslá by mali byť rovnaké."; $ valid = false;) if (! isset ($ error_message)) (if (! filter_var ($ _ POST ["userEmail"], FILTER_VALIDATE_EMAIL)) ($ errorMessage = "neplatná e-mailová adresa."; $ valid = false;)) if (! isset ($ error_message) ) (if (! isset ($ _ POST ["terms"])) ($ errorMessage = "Prijať podmienky."; $ valid = false;))) else ($ errorMessage = "Všetky polia sú povinné."; ) if ($ valid == false) (návrat $ errorMessage;) návrat;)
PHP MySQL kód na prístup do databázy na uloženie registrovaného užívateľa
Overenie formulára používateľa na strane servera
Toto je vstupný bod PHP na spracovanie celého skriptu na strane servera na overenie formy a na spracovanie databázových operácií na základe výsledku overenia.
validateMember ($ používateľské meno, $ displayName, $ heslo, $ email); if (prázdny ($ errorMessage)) ($ memberCount = $ member-> isMemberExists ($ username, $ email); if ($ memberCount == 0) ($ insertId = $ member-> insertMemberRecord ($ username, $ displayName, $ heslo, $ email); if (! empty ($ insertId)) (header ("Location: thankyou.php");)) else ($ errorMessage = "Používateľ už existuje.";)))?>
Skontrolujte, či používateľ už existuje
Funkcia isMemberExists () sa používa na kontrolu jedinečnosti údajov používateľa na základe jeho e-mailu a používateľského mena. Pokiaľ zadané užívateľské meno alebo e-mail existuje v databáze používateľov, registračný proces sa zastaví vrátením a potvrdením.
Toto potvrdenie upozorní, že „používateľ už existuje“. Kód je,
Funkcia isMemberExists ($ username, $ email) ($ query = "select * FROM registered_users WHERE user_name =? OR email =?"; $ ParamType = "ss"; $ paramArray = array ($ username, $ email); $ memberCount = $ this-> ds-> numRows ($ query, $ paramType, $ paramArray); return $ memberCount;)
Vložte údaje členov do databázy
Ak vráti 0, znamená to, že so zadaným e-mailom alebo používateľským menom takíto používatelia neexistujú. A tak sa registračné údaje vložia do databázy. Nasledujúci kód zobrazuje metódu vkladania členov.
Funkcia insertMemberRecord ($ username, $ displayName, $ password, $ email) ($ passwordHash = md5 ($ password); $ query = "INSERT INTO registered_users (user_name, display_name, password, email) VALUES (?,?,?,? ) "; $ paramType =" ssss "; $ paramArray = pole ($ username, $ displayName, $ passwordHash, $ email); $ insertId = $ this-> ds-> insert ($ query, $ paramType, $ paramArray); vrátiť $ insertId;)
DataSource.php
Toto je generická trieda zdroja údajov v PHP na vykonávanie databázových operácií. Zahŕňa funkcie na pripojenie databázy a vykonávanie rôznych dotazov na získanie výsledku databázy, počtu riadkov, vykonania vloženia a ďalších.
Táto trieda zdrojov údajov je všeobecná a je udržiavaná čo najjednoduchšie. Je efektívny a používam ho vo svojich väčšine mikroprojektov a cvičení. Môžete si ho zadarmo stiahnuť a použiť.
Dôležitá vec je nikdy nezabudnite použiť pripravené výkazy... Pomáha vám chrániť sa pred útokmi SQL Injection a je to prvý krok z hľadiska implementácie zabezpečenia do webovej aplikácie.
conn = $ this-> getConnection (); ) / ** * Ak je potrebný objekt pripojenia, použite túto metódu a získajte k nej prístup. * V opačnom prípade použite na vloženie / aktualizáciu / atď. Nasledujúce metódy. * * @return \ mysqli * / public function getConnection () ($ conn = new \ mysqli (self :: HOST, self :: USERNAME, self :: PASSWORD, self :: DATABASENAME); if (mysqli_connect_errno ()) (trigger_error ("Problém s pripojením k databáze.");) $ Conn-> set_charset ("utf8"); návrat $ conn;) / ** * Získanie výsledkov z databázy * @param string $ query * @param string $ paramType * @ param pole $ paramArray * @return array * / public function select ($ query, $ paramType = "", $ paramArray = array ()) ($ stmt = $ this-> conn-> prepare ($ query); if (! empty ($ paramType) &&! empty ($ paramArray)) ($ this-> bindQueryParams ($ sql, $ paramType, $ paramArray);) $ stmt-> execute (); $ result = $ stmt-> get_result (); if ($ result-> num_rows> 0) (while ($ row = $ result-> fetch_assoc ()) ($ resultset = $ row;)) if (! empty ($ resultset)) (return $ resultset;)) / ** * Na vloženie * @param reťazec $ dotaz * @param reťazec $ paramType * @param pole $ paramArray * @return int * / verejná funkcia vložiť ($ dopyt, $ paramType, $ p aramArray) (tlačiť $ dopyt; $ stmt = $ this-> conn-> prepare ($ query); $ this-> bindQueryParams ($ stmt, $ paramType, $ paramArray); $ stmt-> execute (); $ insertId = $ stmt-> insert_id; vrátiť $ insertId; ) / ** * Na vykonanie dotazu * @param string $ query * @param string $ paramType * @param array $ paramArray * / public function execute ($ query, $ paramType = "", $ paramArray = array ()) ($ stmt = $ this-> conn-> prepare ($ query); if (! empty ($ paramType) &&! empty ($ paramArray)) ($ this-> bindQueryParams ($ stmt, $ paramType = "", $ paramArray = array ());) $ stmt-> execute ();) / ** * 1. Pripraví väzbu parametrov * 2. Zviaže prameters k príkazu sql * @param string $ stmt * @param string $ paramType * @param array $ paramArray * / verejná funkcia bindQueryParams ($ stmt, $ paramType, $ paramArray = array ()) ($ paramValueReference = & $ paramType; for ($ i = 0; $ i< count($paramArray); $i ++) { $paramValueReference = & $paramArray[$i]; } call_user_func_array(array($stmt, "bind_param"), $paramValueReference); } /** * To get database results * @param string $query * @param string $paramType * @param array $paramArray * @return array */ public function numRows($query, $paramType="", $paramArray=array()) { $stmt = $this->conn-> pripraviť ($ dopyt); if (! empty ($ paramType) &&! empty ($ paramArray)) ($ this-> bindQueryParams ($ stmt, $ paramType, $ paramArray);) $ stmt-> execute (); $ stmt-> store_result (); $ recordCount = $ stmt-> num_rows; vrátiť $ recordCount; ))
Skript databázy
Tento databázový skript obsahuje príkaz create pre tabuľku registered_users. Importujte tento skript do svojho vývojového prostredia a spustite tento kód.
Štruktúra tabuľky pre tabuľku `registrovaní_uživatelia` - VYTVORIŤ TABUĽKU, AK NIE JE `varchar (255) NOT NULL,` heslo` varchar (25) NOT NULL, `email` varchar (55) NOT NULL,` gender` varchar (20) NOT NULL, PRIMARY KEY (`id`));
Ak overenie registračného formulára zlyhá, chybové hlásenie sa používateľovi zobrazí nižšie uvedeným spôsobom.
Komentáre k „Registračnému formuláru používateľa PHP (registrácia) s databázou MySQL“
Ahoj Vincy, pri spustení kódu registra sa vyskytujú nasledujúce chyby, pomôžte mi.
INSERT INTO registered_users (user_name, display_name, password, email) VALUES (?,?,?,?)
Varovanie: call_user_func_array () očakáva, že parameter 1 bude platné spätné volanie, prvý člen poľa nie je platný názov triedy alebo objekt v C: \ xampp \ htdocs \ PHP \ JAMII-CASH \ DataSource.php na riadku 136
Fatal error: Uncaught Error: Call to a member function execute () on boolean in C: \ xampp \ htdocs \ PHP \ JAMII-CASH \ DataSource.php: 99 Stack trace: # 0 C: \ xampp \ htdocs \ PHP \ JAMII -CASH \ Member.php (83): Phppot \ DataSource-> insert ('INSERT INTO reg ...', 'ssss', Array) # 1 C: \ xampp \ htdocs \ PHP \ JAMII-CASH \ index.php (20): Phppot \ Member-> insertMemberRecord ('chuki10', 'Ray', '202020', ' [chránené e-mailom]... “) # 2 (hlavný) uvedený v C: \ xampp \ htdocs \ PHP \ JAMII-CASH \ DataSource.php na riadku 99
Rád sem zverejním svoje vedomosti a techniky používané v PHP a MySQL. Ako všetci viete, PHP a MySQL sú najbežnejšie používaným otvoreným zdrojom pre webové stránky. Dnešný milión webov a aplikácií používa tento bezplatný softvér. Osobne mám pocit, že by to mohla byť ďalšia úroveň pre front-endových vývojárov, ktorí pomocou PHP a MySQL môžu vývojári HTML urobiť web dynamickejším. Poďme diskutovať o tom, ako vytvoriť základný registračný formulár v PHP s databázou. Je to jednoduché a veľmi užitočné pre základnú dynamickú registráciu používateľov na webových stránkach. Každá kreatíva môže implementovať svoju základnú štruktúru na svoje webové stránky. Teraz postupujte podľa týchto jednoduchých krokov a zistíte, že sa váš prvý dynamický funkčný registračný formulár so vstupom do databázy na každom formulári plní.
KROK 1: Vytvorenie databázy na vkladanie hodnôt
Prejsť na MySQL, vytvoriť databázu študent; Qurey OK, ovplyvnený 1 riadok (0,00 s) mysql> použitie študenta Databáza zmenená mysql> vytvorenie tabuľky študenta (id int, meno varchar (40), email varchar (80), heslo varchar (40)); Dotaz v poriadku, ovplyvnené 0 riadkov (0,05 s)KROK 2: Front-end kód, vytvorte štruktúru HTML registračného formulára
Vytvorte nový súbor registration.html, ktorý vytvoríme v PHP neskôr, štruktúra bude:KROK 3: Pre pripojenie k databáze pomocou MySQL
Vytvorte súbor connect.php pre základné pripojenie k databáze, použite predvolený kód uvedený nižšieKROK 4: Nakoniec vytvorte stránku registration.php, aby ste získali hodnotu všetkých polí zobrazených na stránke HTML
Tu môže vývojár front-endu napísať nejaký vlastný kód v PHP. Prečítajte si kód a pochopte túto základnú štruktúru po riadkoch, zistíte, že je to veľmi jednoduché.Záver
Postupom podľa postupu uvedeného vyššie je možné vytvoriť základný registračný formulár. Takže veľa šťastia pre váš prvý kód PHP Získajte kódVeľa z týchto webov má registračný formulár, pomocou ktorého sa môžu vaši používatelia zaregistrovať, a môžu tak využívať výhody určitého privilégia v rámci webu. V tomto článku uvidíme, ako vytvoriť registračný formulár v PHP a MySQL.
Použijeme jednoduché značky a tiež použijeme tabuľkovú značku na vytvorenie webovej stránky Sign-Up.html. Začnime:
Zoznam 1: sign-up.html
Postava 1:
Popis webovej stránky sing-in.html:
Ako vidíte na obrázku 1, existuje registračný formulár, ktorý vyžaduje od používateľa niekoľko údajov. Toto sú bežné údaje, ktoré ľubovoľná webová stránka žiada od svojich používateľov alebo návštevníkov o vytvorenie a identifikáciu a heslo. Značku tabuľky sme použili, pretože na to, aby sme zobrazili polia formulára na webovej stránke v usporiadanom tvare, ako ich vidíte na obrázku 1. Vyzerá to tak jednoducho, pretože sme na ne ešte nepoužili štýl CSS, poďme teda použiť štýly CSS a prepojiť Súbor štýlu CSS s webovou stránkou sing-up.html.
Zoznam 2: style.css
/ * Súbor CSS pre webovú stránku registrácie * / # body-color (background-color: # 6699CC;) # Sign-Up (background-image: url ("sign-up.png"); veľkosť pozadia: 500px 500px ; background-repeat: no-repeat; background-attachment: fixed; background-position: center; margin-top: 150px; margin-bottom: 150px; margin-right: 150px; margin-left: 450px; padding: 9px 35px; ) # tlačidlo (polomer okraja: 10px; šírka: 100px; výška: 40px; pozadie: # FF00FF; váha písma: tučné; veľkosť písma: 20px;)
Zoznam 3: Prepojte stránku style.css s webovou stránkou sign-up.html
Obrázok 2:
Popis súboru style.css:
V externom súbore CSS sme použili niektoré štýly, ktoré by pre vás mohli vyzerať ako nové. Pretože sme použili obrázok na pozadí a umiestnili sme ho do stredu webovej stránky. Ktoré sa ľahko používa pomocou značky html div. Pretože sme použili tri značky div tagu. #button, # sing-up a # body-color a použili sme na ne všetky štýly CSS. Teraz môžete vidieť obrázok 2, ako veľmi vyzerá nádherne a atraktívne. Môžete na ňom použiť mnoho ďalších štýlov CSS, ako napríklad štýly 2D a 3D CSS. Bude to vyzerať krajšie ako teraz.
Po týchto jednoduchých prácach teraz vytvoríme databázu a tabuľku na ukladanie všetkých údajov do databázy nových používateľov. Než začneme vytvárať tabuľku, mali by sme vedieť, čo od používateľa požadujeme. Keď sme navrhli formulár, vytvoríme tabuľku podľa registračného formulára, ktorý vidíte na obrázkoch 1 a 2.
Zoznam 3: Dopyt na tabuľku v MySQL
CREATE TABLE WebsiteUsers (userID int (9) NOT NULL auto_increment, fullname VARCHAR (50) NOT NULL, userName VARCHAR (40) NOT NULL, email VARCHAR (40) NOT NULL, pass VARCHAR (40) NOT NULL, PRIMARY KEY (userID) );
Popis záznamu 3:
Jedna vec, ktorú by ste mali vedieť, že ak nemáte MySQL na použitie tohto dotazu, mali by ste sa riadiť mojím predchádzajúcim článkom o. z tohto odkazu budete schopní porozumieť inštalácii a požiadavkám. A ako to môžeme využiť.
V dotaze na výpis 3 sme použili všetky tie veci, ktoré potrebujeme pre registračný formulár. Pretože existujú premenné e-mail, celé meno, heslo a meno používateľa. Tieto premenné ukladajú údaje používateľa, ktoré sám zadá do registračného formulára na obrázku 2.
Po týchto všetkých prácach budeme pracovať s programovaním PHP, čo je programovací jazyk na strane servera. Preto je potrebné vytvoriť spojenie s databázou.
Výpis 4: Pripojenie k databáze
Popis záznamu 4:
Vytvorili sme spojenie medzi databázou a našimi webovými stránkami. Ak ale neviete, či to funguje, alebo nie, v poslednej kontrolnej položke 5 pre ňu použijete ešte jednu vec.
Zoznam 5: kontrola pripojenia k databáze
Výpis popisu 5:
V zozname 5 som sa vám pokúsil ukázať, že môžete skontrolovať a potvrdiť spojenie medzi databázou a PHP. A ešte jedna vec, že nebudeme používať kód výpisu 5 na našej samostatnej webovej stránke. Pretože je to len kvôli tomu, aby ste pochopili, ako môžete skontrolovať pripojenie MySQL.
Teraz napíšeme programátorskú aplikáciu PHP, aby sme najskôr skontrolovali dostupnosť používateľa a potom ho uložili, ak je novým používateľom na webovej stránke.
Výpis 6: connectivity-sign-up.php
Popis connectivity-sign-up.php
V tejto aplikácii PHP som najjednoduchším spôsobom vytvoril registračnú aplikáciu pre webové stránky. Ako vidíte najskôr, vytvoríme spojenie ako výpis 4. A potom sme použili dve funkcie, prvou funkciou je SignUP (), ktorá je volaná príkazom if z poslednej aplikácie, kde jej prvá potvrdzuje stlačenie prihlásenia tlačidlo. Ak je stlačené, zavolá funkciu SingUp a táto funkcia použije dopyt SELECT na načítanie údajov a ich porovnanie s userName a e-mailom, ktorý je momentálne zadaný používateľom. Ak je meno používateľa a e-mail v databáze už prítomné, bude ľúto, že ste už zaregistrovaní
Ak je používateľ nový ako jeho aktuálne meno používateľa a e-mailový identifikátor sa nenachádza v databáze, príkaz If zavolá NewUser (), kde uloží všetky informácie o novom používateľovi. A užívateľ sa stane súčasťou webovej stránky.
Obrázok 3
Na obrázku 3 užívateľ zadáva údaje na registráciu, ak je podľa záznamov v databáze starým používateľom tejto webovej stránky. Takže na webovej stránke sa zobrazí správa, že používateľ je už registrovaný, ak je nový používateľ, takže sa na webovej stránke bude zobrazovať správa, že registrácia používateľa je dokončená.
Obrázok 4:
Keď sme zadali údaje do registračného formulára (obrázok 4), podľa databázy, ktoré používateľské meno a e-mail sme zadali do registračného formulára, aby sme zistili, či už je v databáze. Mali by sme teda vyskúšať nové používateľské meno a e-mailovú adresu na registráciu s novým ID a heslom.
Obrázok 5
Na obrázku 5 nás potvrdzuje, ktoré meno používateľa a ID e-mailu zadali. Oba sa nenachádzajú v záznamoch databázy. Teraz je teda vytvorené nové ID a heslo a používateľ je schopný použiť svoje nové ID a heslo na prihlásenie nabudúce.
Záver:
V tomto článku sme sa naučili najjednoduchší spôsob, ako vytvoriť registračnú webovú stránku. Dozvedeli sme sa tiež, že ako pracuje s databázou, ak používame PHP a MySQL. Snažil som sa vám dať základné vedomosti o funkcii registrácie webových stránok. Ako to funguje na zadnej strane a ako môžeme zmeniť jej vzhľad na prednej strane. V prípade akýchkoľvek otázok neváhajte a komentujte.
Jednou z najväčších silných stránok PHP je to, ako narába s formami HTML. Hlavné je, že každý prvok formulára je automaticky sprístupnený vašim programom PHP. Viac informácií o používaní formulárov v PHP nájdete v tejto časti. Tu je príklad formulára HTML:
Príklad č. 1 Základný formulár HTML
Na tomto formulári nie je nič zvláštne. Toto je bežný formulár HTML bez akýchkoľvek špeciálnych značiek. Keď používateľ vyplní formulár a klikne na tlačidlo odoslať, zavolá sa stránka action.php. Tento súbor môže obsahovať niečo ako:
Príklad č. 2 Zobrazenie údajov formulára
Ahoj,
.
Vyrokov.
Príklad výstupu tohto programu:
Ahoj Sergey. Máte 30 rokov.
Ak neberiete do úvahy kúsky kódu s htmlspecialchars () a (int), princíp fungovania tohto kódu by mal byť jednoduchý a priamy. htmlspecialchars () Zaisťuje, aby boli „špeciálne“ znaky HTML správne kódované, aby sa na vašu stránku nevložil škodlivý HTML alebo Javascript. Vekové pole, o ktorom vieme, že to musí byť číslo, môžeme jednoducho previesť celé číslo, ktoré nás automaticky zachránia pred nechcenými znakmi. PHP to dokáže aj automaticky pomocou rozšírenia filtra. Premenné $ _POST ["name"] a $ _POST ["age"] sú pre vás automaticky nastavené pomocou PHP. Predtým sme používali superglobál $ _SERVER, ale tu používame aj superglobál $ _POST, ktorý obsahuje všetky údaje POST. Všimni si spôsob odoslania(metóda) nášho formulára je POST. Keby sme použili metódu ZÍSKAJTE potom by informácie o našom formulári boli v superglobále $ _GET. Ak je zdroj údajov irelevantný, môžete použiť premennú $ _REQUEST. Táto premenná obsahuje zmes údajov GET, POST a COOKIE.
Pred 16 rokmi
Podľa špecifikácie HTTP by ste mali použiť metódu POST, keď používate formulár na zmenu stavu obsahu na konci servera. Napríklad, ak má stránka formulár, ktorý používateľom umožňuje pridávať vlastné komentáre, napríklad tento Ak tu kliknete na tlačidlo „Načítať znova“ alebo „Obnoviť“ na stránke, na ktorú ste sa dostali prostredníctvom POST, je to takmer vždy chyba - nemali by ste uverejňovať rovnaký komentár dvakrát - čo je prečo tieto stránky nie sú záložkami alebo v pamäti.
Metódu GET by ste mali použiť, keď je váš formulár dobrý, dostať niečo zo servera a vlastne nič nemeniť. Napríklad formulár pre vyhľadávací modul by mal používať GET, pretože prehľadávanie webových stránok by nemalo meniť nič, na čom by klientovi mohlo záležať, a ukladanie alebo ukladanie výsledkov dotazu do vyhľadávacieho modulu je rovnako užitočné ako ukladanie do záložiek alebo ukladanie do vyrovnávacej pamäte. statická stránka HTML.
pred 2 rokmi
Mali by ste objasniť:
POST nie je bezpečnejší ako GET.
Dôvody pre voľbu GET vs POST zahŕňajú rôzne faktory, ako napríklad zámer žiadosti („odosielate“ informácie?), Veľkosť žiadosti (existujú obmedzenia týkajúce sa dĺžky adresy URL a parametre GET sa odosielajú do URL) a ako ľahko chcete, aby sa akcia dala zdieľať - napríklad Vyhľadávania Google sú ZÍSKAVAŤ, pretože uľahčuje kopírovanie a zdieľanie vyhľadávacieho dopytu s niekým iným jednoducho zdieľaním adresy URL.
Bezpečnosť je tu iba úvahou, pretože GET je ľahšie zdieľateľný ako POST. Príklad: Nechcete, aby vám GET posielal heslo, pretože používateľ môže zdieľať výslednú adresu URL a neúmyselne vystaviť svoje heslo.
GET a POST sú však rovnako ľahko zachytiteľné dobre umiestnenou škodlivou osobou, ak nepoužívate protokol TLS / SSL na ochranu samotného sieťového pripojenia.
Všetky formuláre odosielané cez HTTP (zvyčajne port 80) sú nezabezpečené a dnes (2017) nie je veľa dobrých dôvodov na to, aby verejný web nepoužíval HTTPS (čo je v podstate HTTP + Transport Layer Security).
Ako bonus, ak používate protokol TLS, minimalizujete riziko, že vaši používatelia dostanú do vašej prevádzky kód (AD), ktorý ste tam nedostali.
Reg.ru: domény a hosting
Najväčší registrátor a poskytovateľ hostingu v Rusku.
V prevádzke viac ako 2 milióny doménových mien.
Propagácia, pošta pre doménu, obchodné riešenia.
Viac ako 700 tisíc zákazníkov po celom svete si už vybralo.
* Posunutím kurzora pozastavíte rolovanie.
Naspäť vpred
Vytvorenie jednoduchého systému registrácie používateľov v PHP a MySQL
Vytvorenie registračného systému je veľa práce. Musíte napísať kód, ktorý overí e-mailové adresy, pošle e-mail s potvrdením, overí ostatné polia formulára a oveľa viac.
A aj potom, čo toto všetko napíšete, sa používatelia budú zdráhať registrovať, tk. vyžaduje si to určité úsilie z ich strany.
V tomto tutoriáli vytvoríme veľmi jednoduchý registračný systém, ktorý nevyžaduje alebo vôbec neukladá heslá! Výsledok bude možné ľahko upraviť a pridať na existujúcu stránku PHP. Chcete zistiť, ako to funguje? Prečítajte si nižšie.
Takto bude fungovať náš super jednoduchý systém:
Spojíme prihlasovací formulár a registráciu. Tento formulár bude mať pole na zadanie e-mailovej adresy a registračné tlačidlo;
- Pri vypĺňaní poľa e-mailovou adresou sa kliknutím na tlačidlo registrácie vytvorí záznam o novom používateľovi, ale iba vtedy, ak sa zadaná e-mailová adresa nenašla v databáze.
Potom sa vytvorí určitá náhodná jedinečná sada symbolov (token), ktorá sa odošle na e-mail špecifikovaný používateľom vo forme odkazu, ktorý bude relevantný po dobu 10 minút;
- Používateľ nasleduje odkaz na našu webovú stránku. Systém určuje prítomnosť tokenu a autorizuje používateľa;
Výhody tohto prístupu:
Nie je potrebné ukladať heslá a overovať pole;
- Nie je potrebné obnovenie hesla, bezpečnostné otázky atď .;
- Od okamihu, keď je používateľ registrovaný / autorizovaný, môžete si byť vždy istí, že sa tento užívateľ bude nachádzať vo vašej zóne prístupu (či je e-mailová adresa pravdivá);
- neuveriteľne jednoduchý proces registrácie;
Nevýhody:
Zabezpečenie používateľského účtu. Ak má niekto prístup k pošte používateľa, môže sa prihlásiť.
- E-mail nie je bezpečný a môže byť zachytený. Pamätajte, že táto otázka je relevantná aj v prípade, že ste zabudli heslo a je potrebné ho obnoviť, alebo v akomkoľvek autorizačnom systéme, ktorý nepoužíva na prenos dát HTTPS (prihlasovacie meno / heslo);
- Pokiaľ nakonfigurujete poštový server podľa potreby, je pravdepodobné, že správy s odkazmi na autorizáciu skončia v spamu;
Pri porovnaní výhod a nevýhod nášho systému môžeme povedať, že systém má vysokú použiteľnosť (najpohodlnejšiu pre koncového používateľa) a zároveň má nízky indikátor zabezpečenia.
Navrhuje sa teda použiť ho na registrácie na fórach a v službách, ktoré nepracujú s dôležitými informáciami.
Ako používať tento systém
V prípade, že stačí systém použiť na autorizáciu používateľov na vašom webe a nechcete túto lekciu rozoberať, postupujte takto:
Musíte si stiahnuť zdroje pripojené k lekcii
- Nájdite súbor v archíve stoly.sql Importujte ho do svojej databázy pomocou možnosti importu v phpMyAdmin. Alternatívny spôsob: otvorte tento súbor pomocou textového editora, skopírujte dotaz SQL a spustite ho;
- Otvorené obsahuje / main.php a vyplňte nastavenia pre pripojenie k vašej databáze (uveďte používateľa a heslo pre pripojenie k databáze, ako aj hostiteľa a názov databázy) V rovnakom súbore musíte tiež určiť e-mail, ktorý sa použije ako pôvodná adresa pre správy odosielané systémom. Niektorí hostitelia blokujú odchádzajúce e-maily, kým vo formulári, ktorý bol vytvorený z ovládacieho panela hostiteľa, nezadáte skutočnú e-mailovú adresu, takže zadajte skutočnú adresu;
- Stiahnite si všetky súbory index.php, chránený.php a aktíva a zahŕňajú priečinky cez FTP na vášho hostiteľa;
- Pridajte kód nižšie na každú stránku PHP, na ktorej chcete zobraziť autorizačný formulár;
Vyžadovať_once „includes / main.php“; $ user = new User (); if (! $ user- & gtloggedIn ()) (redirect ("index.php");)
- Hotovo!
Pre tých, ktorých zaujíma, ako to celé funguje - čítajte ďalej!
Prvým krokom je napísanie HTM kódu autorizačného formulára. Tento kód sa nachádza v súbore index.php... Tento súbor obsahuje aj kód PHP, ktorý spracúva údaje z formulárov a ďalšie užitočné funkcie autorizačného systému. Viac sa o tom dozviete v sekcii Kontrola kódu PHP nižšie.
index.php
V záhlaví (medzi značkami
a) Zahrnul som hlavné štýly (týmto tutoriálu sa nimi nerozumejú, takže ich môžete vidieť sami. Priečinok assets / css / style.css). Pred uzatváracou značkou