Godless auth registrace php

10.05.2015 Romchik

Dobrý den. V tomto článku použijeme příklad k analýze registrace uživatele v . Poté uživatele aktivujte potvrzením jeho e-mailové adresy. A konečně autorizace uživatele v . Ale pouze aktivní uživatelé by měli být autorizováni.

První věc, kterou uděláme, je vytvoření ovladače a pohledu pro registraci.

Vytvoření registračního formuláře

Přejděte do adresáře se šablonami zdrojů a vytvořte v něm podadresář auth. Nyní ve složce auth vytvoříme soubor register.blade.php s následujícím kódem:

Registrace

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

Výše uvedený kód nebudu vysvětlovat, zde je vše jasné.

App/Http/Controllers/Auth/AuthController.php

Přepíšeme pouze metody řadiče AuthController.php. Pro zobrazení registračního formuláře tedy existuje metoda getRegister. Této metody se nedotýkáme.

Nyní přejdeme k trasám. Otevřete soubor:

A definujte cestu k naší metodě:

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

Nyní otevřeme naši aplikaci v prohlížeči. Skvělé, vidíme registrační formulář.

Registrace uživatele v

Okamžitě definujeme cestu pro registraci uživatele. Pojďme k souboru:

App/Http/Controllers/routes.php

A přidejte následující trasu:

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

Nyní vytvoříme tabulku pro ukládání uživatelů. Migrace této tabulky již existuje, ale není pro nás vhodná. Pojďme to změnit. Pojďme k souboru:

Database/migrations/2014_10_12_create_users_table.php

A změňme kód:

V mém případě to vypadá takto:

Uložit bd.php .
Skvělý! V databázi máme tabulku a připojení k ní. Nyní můžete začít vytvářet stránku, na které uživatelé zanechají svá data.

3. Vytvořte soubor reg.php s obsahem (všechny komentáře uvnitř):



Registrace


Registrace


Vaše přihlašovací jméno:




Vaše heslo:








4. Vytvořte soubor, který zadá data do databáze a uloží uživatele. save_user.php (komentáře uvnitř):

5. Nyní se naši uživatelé mohou registrovat! Dále musíte vytvořit „dveře“ pro již registrované uživatele pro vstup na web. index.php (komentáře uvnitř):




Domovská stránka


Domovská stránka


Vaše přihlašovací jméno:


Vaše heslo:






Registrovat



Dobře, teď je po všem! Lekce je možná nudná, ale velmi užitečná. Zde je zobrazena pouze myšlenka registrace, poté ji můžete vylepšit: přidat zabezpečení, design, datová pole, načítání avatarů, odhlášení z účtu (k tomu jednoduše zničte proměnné z relace pomocí funkce unset) a již brzy. Hodně štěstí!

Všechno jsem zkontroloval, funguje to správně!

V tomto článku se dozvíte, jak vytvořit registrační a přihlašovací formulář pomocí HTML, JavaScript, PHP a MySql. Takové formuláře se používají téměř na každém webu bez ohledu na jeho typ. Jsou vytvořeny pro fórum, internetový obchod, sociální sítě (jako je Facebook, Twitter, Odnoklassniki) a mnoho dalších typů stránek.

Pokud máte webovou stránku na svém místním počítači, doufám, že již máte nainstalovaný a spuštěný místní server. Bez toho nebude nic fungovat.

Vytvoření tabulky v databázi

Abychom mohli implementovat registraci uživatelů, potřebujeme nejprve databázi. Pokud už to máte, tak skvělé, jinak si to musíte vytvořit. V článku podrobně vysvětluji, jak na to.

A tak máme databázi (zkráceně DB), nyní musíme vytvořit tabulku uživatelů do kterého přidáme naše registrované uživatele.

V článku jsem také vysvětlil, jak vytvořit tabulku v databázi. Před vytvořením tabulky si musíme určit, jaká pole bude obsahovat. Tato pole budou odpovídat polím z registračního formuláře.

Tak jsme si řekli, představili si, jaká pole bude mít náš formulář, a vytvořili jsme tabulku uživatelů s těmito poli:

  • id- Identifikátor. Pole id Každá tabulka v databázi by ho měla mít.
  • jméno- Chcete-li uložit jméno.
  • příjmení- Pro zachování příjmení.
  • e-mailem- Chcete-li uložit poštovní adresu. Jako přihlašovací jméno použijeme e-mail, takže toto pole musí být jedinečné, to znamená mít UNIKÁTNÍ index.
  • stav_e-mailu- Pole pro označení, zda je e-mail potvrzený nebo ne. Pokud je mail potvrzen, bude mít hodnotu 1, jinak je hodnota 0.
  • Heslo- Chcete-li uložit heslo.


Pokud chcete, aby váš registrační formulář obsahoval další pole, můžete je také přidat zde.

To je ono, náš stůl uživatelů připraven. Pojďme k další fázi.

Připojení k databázi

Vytvořili jsme databázi, nyní se k ní potřebujeme připojit. Připojíme se pomocí PHP rozšíření MySQLi.

Ve složce našeho webu vytvořte soubor s názvem dbconnect.php a napište do něj následující skript:

Tento soubor dbconnect.php bude nutné připojit k obslužným rutinám formulářů.

Všimněte si proměnné $address_site, zde jsem uvedl název mého testovacího webu, na kterém budu pracovat. Uveďte prosím odpovídajícím způsobem název svého webu.

Struktura webu

Nyní se podíváme na HTML strukturu našeho webu.

Přesuneme záhlaví a zápatí webu do samostatných souborů, hlavička.php A patička.php. Uvedeme je na všech stránkách. A to na hlavní stránce (soubor index.php), na stránku s registračním formulářem (soubor formulář_registr.php) a na stránku s autorizačním formulářem (soubor form_auth.php).

Blokujte pomocí našich odkazů, Registrace A oprávnění, přidejte je do záhlaví webu, aby se zobrazily na všech stránkách. Jeden odkaz vstoupí na stránku s registračním formulářem (soubor formulář_registr.php) a druhý na stránku s autorizačním formulářem (soubor form_auth.php).

Obsah souboru header.php:

Název našeho webu

V důsledku toho naše hlavní stránka vypadá takto:


Vaše stránky mohou mít samozřejmě úplně jinou strukturu, ale to pro nás nyní není důležité. Hlavní věc je, že existují odkazy (tlačítka) pro registraci a autorizaci.

Nyní přejdeme k registračnímu formuláři. Jak jste již pochopili, máme to v evidenci formulář_registr.php.

Přejděte do Databáze (v phpMyAdmin), otevřete strukturu tabulky uživatelů a podívejte se, jaké pole potřebujeme. To znamená, že potřebujeme pole pro zadání jména a příjmení, pole pro zadání poštovní adresy (Email) a pole pro zadání hesla. A z bezpečnostních důvodů přidáme pole pro zadání captcha.

Na serveru může v důsledku zpracování registračního formuláře docházet k různým chybám, kvůli kterým se uživatel nebude moci zaregistrovat. Proto, aby uživatel pochopil, proč se registrace nezdaří, je nutné zobrazovat zprávy o těchto chybách.

Před zobrazením formuláře přidejte blok pro zobrazení chybových zpráv z relace.

A ještě jedna věc, pokud je uživatel již autorizován a ze zvědavosti přejde na registrační stránku přímo napsáním do adresního řádku prohlížeče site_address/form_register.php, pak v tomto případě místo registračního formuláře zobrazíme hlavičku, že je již registrován.

Obecně platí, že kód souboru formulář_registr.php máme toto:

Již jste zaregistrováni

V prohlížeči vypadá stránka s registračním formulářem takto:


Pomocí požadovaného atributu jsme učinili všechna pole povinná.

Věnujte pozornost kódu registračního formuláře, kde se zobrazuje captcha:


Cestu k souboru jsme zadali v hodnotě atributu src pro obrázek captcha.php, který generuje tento captcha.

Podívejme se na kód souboru captcha.php:

Kód je dobře komentovaný, takže se zaměřím pouze na jeden bod.

Uvnitř funkce imageTtfText(), je určena cesta k písmu verdana.ttf. Aby tedy captcha fungovala správně, musíme vytvořit složku fonty a umístěte tam soubor písma verdana.ttf. Můžete jej najít a stáhnout z internetu, nebo si jej převzít z archivu s materiály tohoto článku.

Se strukturou HTML jsme skončili, je čas jít dál.

Kontrola platnosti emailu pomocí jQuery

Jakýkoli formulář potřebuje zkontrolovat platnost zadaných údajů, a to jak na straně klienta (pomocí JavaScriptu, jQuery), tak na straně serveru.

Zvláštní pozornost musíme věnovat poli Email. Je velmi důležité, aby byla zadaná poštovní adresa platná.

U tohoto vstupního pole nastavujeme typ emailu (type="email"), to nás mírně varuje před nesprávným formátem. To ale nestačí, protože prostřednictvím inspektoru kódu, který nám prohlížeč poskytuje, můžeme snadno změnit hodnotu atributu typ S e-mailem na text, a to je vše, náš šek již nebude platný.


A v tomto případě musíme provést spolehlivější kontrolu. K tomu nám poslouží knihovna jQuery z JavaScriptu.

Chcete-li připojit knihovnu jQuery, v souboru hlavička.php mezi tagy , před závěrečnou značkou , přidejte tento řádek:

Ihned za tento řádek přidáme ověřovací kód e-mailu. Zde přidáme kód pro kontrolu délky zadaného hesla. Jeho délka musí být alespoň 6 znaků.

Pomocí tohoto skriptu zkontrolujeme platnost zadané emailové adresy. Pokud uživatel zadal nesprávný e-mail, zobrazíme o tom chybovou zprávu a deaktivujeme tlačítko pro odeslání formuláře. Pokud je vše v pořádku, pak chybu odstraníme a aktivujeme tlačítko odeslání formuláře.

Tím máme hotovou validaci formuláře na straně klienta. Nyní jej můžeme odeslat na server, kde také provedeme pár kontrol a přidáme data do databáze.

Registrace uživatele

Formulář odesíláme do souboru ke zpracování register.php, prostřednictvím metody POST. Název tohoto souboru manipulátoru je uveden v hodnotě atributu akce. A způsob odeslání je uveden v hodnotě atributu metoda.

Otevřete tento soubor register.php a první věc, kterou musíme udělat, je napsat funkci spuštění relace a připojit soubor, který jsme vytvořili dříve dbconnect.php(V tomto souboru jsme provedli připojení k databázi). A také okamžitě deklarujme buňky chybové_zprávy A úspěšné_zprávy v poli globálních relací. V error_mesages zaznamenáme všechny chybové zprávy, které se vyskytnou během zpracování formuláře, a v úspěšné_zprávy, budeme zaznamenávat radostné zprávy.

Než budeme pokračovat, musíme zkontrolovat, zda byl formulář vůbec odeslán. Útočník se může podívat na hodnotu atributu akce z formuláře a zjistěte, který soubor tento formulář zpracovává. A může mít nápad přejít přímo na tento soubor zadáním následující adresy do adresního řádku prohlížeče: http://adresa_webu/register.php

Potřebujeme tedy vyhledat buňku v globálním poli POST, jejíž název odpovídá názvu našeho tlačítka „Registrovat“ z formuláře. Tímto způsobem zkontrolujeme, zda bylo kliknuto na tlačítko "Registrovat" nebo ne.

Pokud se útočník pokusí přejít přímo k tomuto souboru, zobrazí se mu chybová zpráva. Dovolte mi připomenout, že proměnná $address_site obsahuje název webu a byl deklarován v souboru dbconnect.php.

Hodnota captcha v relaci byla přidána při jejím vygenerování do souboru captcha.php. Pro připomenutí vám znovu ukážu tento kus kódu ze souboru captcha.php, kde je k relaci přidána hodnota captcha:

Nyní přistoupíme k samotnému ověření. V souboru register.php, uvnitř bloku if, kde zkontrolujeme, zda bylo kliknuto na tlačítko "Registrovat", nebo spíše tam, kde je uveden komentář "" // (1) Prostor pro další část kódu"píšeme:

//Zkontrolujte přijaté captcha //Ořízněte mezery od začátku a konce řádku $captcha = trim($_POST["captcha"]); if(isset($_POST["captcha"]) && !empty($captcha))( //Porovnejte přijatou hodnotu s hodnotou z relace. if(($_SESSION["rand"] != $captcha) && ($_SESSION ["rand"] != ""))( // Pokud není captcha správné, vrátíme uživatele na registrační stránku a tam mu zobrazíme chybovou zprávu, že zadal nesprávný captcha $error_message = "

Chyba! Zadali jste nesprávný obrázek captcha

"; // Uložte chybovou zprávu do relace. $_SESSION["error_messages"] = $error_message; // Vraťte uživatele na registrační stránku header("HTTP/1.1 301 Moved Permanently"); header("Location: " .$address_site ."/form_register.php"); //Zastavení skriptu exit(); ) // (2) Místo pro další část kódu )else( //Pokud není předán captcha nebo je prázdný, exit ("

Chyba! Neexistuje žádný ověřovací kód, tedy captcha kód. Můžete přejít na hlavní stránku.

"); }

Dále musíme zpracovat přijatá data z pole POST. Nejprve musíme zkontrolovat obsah globálního pole POST, tedy zda tam jsou buňky, jejichž názvy odpovídají názvům vstupních polí z našeho formuláře.

Pokud buňka existuje, pak ořízneme mezery od začátku a konce řádku z této buňky, jinak uživatele přesměrujeme zpět na stránku s registračním formulářem.

Dále po oříznutí mezer přidáme řádek do proměnné a zkontrolujeme prázdnotu této proměnné, pokud není prázdná, pokračujeme dále, jinak uživatele přesměrujeme zpět na stránku s registračním formulářem.

Vložte tento kód do určeného umístění" // (2) Místo pro další část kódu".

/* Zkontrolujte, zda jsou data odeslaná z formuláře v globálním poli $_POST a zabalte odeslaná data do běžných proměnných.*/ if(isset($_POST["first_name"]))( //Ořízněte mezery od začátku a konec řetězce $first_name = trim($_POST["first_name"]); //Zkontrolujte, zda je proměnná prázdná if(!empty($first_name))( // Pro jistotu převeďte speciální znaky na HTML entity $first_name = htmlspecialchars($first_name, ENT_QUOTES) ; )else( // Uložte chybovou zprávu do relace. $_SESSION["error_messages"] .= "

Zadejte své jméno

Chybí pole pro jméno

"; //Vrátí uživatele na registrační stránku header("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_register.php"); //Zastavení skriptu exit(); ) if( isset($_POST["last_name"]))( //Oříznout mezery od začátku a konce řádku $last_name = trim($_POST["last_name"]); if(!empty($last_name)) ( // Pro zabezpečení převeďte speciální znaky na HTML entity $last_name = htmlspecialchars($last_name, ENT_QUOTES); )else( // Uložte chybovou zprávu do relace. $_SESSION["error_messages"] .= "

Prosím zadejte své příjmení

"; //Vrátí uživatele na registrační stránku header("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_register.php"); //Zastavení skriptu exit(); ) )else ( // Uložte chybovou zprávu do relace. $_SESSION["error_messages"] .= "

Chybí pole příjmení

"; //Vrátí uživatele na registrační stránku header("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_register.php"); //Zastavení skriptu exit(); ) if( isset($_POST["e-mail"]))( //Oříznout mezery od začátku a konce řádku $email = trim($_POST["e-mail"]); if(!empty($email)) ( $email = htmlspecialchars ($email, ENT_QUOTES); // (3) Umístění kódu pro kontrolu formátu e-mailové adresy a její jedinečnosti )else( // Uložte chybovou zprávu do relace. $_SESSION["error_messages"] .= "

Vložte svůj e-mail

"; //Vrátí uživatele na registrační stránku header("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_register.php"); //Zastavení skriptu exit(); ) )else ( // Uložte chybovou zprávu do relace. $_SESSION["error_messages"] .= "

"; //Vrátí uživatele na registrační stránku header("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_register.php"); //Zastavení skriptu exit(); ) if( isset($_POST["heslo"]))( //Oříznout mezery od začátku a konce řetězce $password = trim($_POST["heslo"]); if(!empty($password)) ( $password = htmlspecialchars ($password, ENT_QUOTES); //Zašifrujte heslo $password = md5($password."top_secret"); )else( // Uložte chybovou zprávu do relace. $_SESSION["error_messages"] .= "

Zadejte heslo

"; //Vrátí uživatele na registrační stránku header("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_register.php"); //Zastavení skriptu exit(); ) )else ( // Uložte chybovou zprávu do relace. $_SESSION["error_messages"] .= "

"; //Vrátí uživatele na registrační stránku header("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_register.php"); //Zastavení skriptu exit(); ) // (4) Místo pro kód pro přidání uživatele do databáze

Zvláštní význam má pole e-mailem. Musíme zkontrolovat formát přijaté poštovní adresy a její jedinečnost v databázi. To znamená, je již registrován nějaký uživatel se stejnou e-mailovou adresou?

Na určeném místě" // (3) Umístění kódu pro kontrolu formátu poštovní adresy a její jedinečnosti“ přidejte následující kód:

//Zkontrolujte formát přijaté e-mailové adresy pomocí regulárního výrazu $reg_email = "/^**@(+(*+)*\.)++/i"; //Pokud formát přijaté e-mailové adresy neodpovídá regulárnímu výrazu if(!preg_match($reg_email, $email))( // Uložte chybovou zprávu do relace. $_SESSION["error_messages"] .= "

Zadali jste nesprávný email

"; //Vrátí uživatele na registrační stránku header("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_register.php"); //Zastavení skriptu exit(); ) // Zkontrolujeme, zda je taková adresa již v databázi. $result_query = $mysqli->query("SELECT `email` FROM `users` WHERE `email`="".$email."""); / /Pokud je počet přijatých přesně jeden řádek, což znamená, že uživatel s touto e-mailovou adresou je již registrován if($result_query->num_rows == 1)( //Pokud výsledný výsledek není nepravdivý if(($row = $result_query->fetch_assoc()) != false) ( // Uložte chybovou zprávu do relace. $_SESSION["error_messages"] .= "

Uživatel s touto e-mailovou adresou je již zaregistrován

"; //Vrátí uživatele na registrační stránku header("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_register.php"); )else( // Uložte chybovou zprávu do relace . $_SESSION["error_messages"] .= "

Chyba v dotazu na databázi

"; //Vrátí uživatele na stránku registrace header("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_register.php"); ) /* uzavření výběru */ $ result_query-> close(); //Zastavení skriptu exit(); ) /* uzavření výběru */ $result_query->close();

A tak jsme se všemi kontrolami hotovi, je čas přidat uživatele do databáze. Na určeném místě" // (4) Místo pro kód pro přidání uživatele do databáze“ přidejte následující kód:

//Dotaz na přidání uživatele do databáze $result_query_insert = $mysqli->query("INSERT INTO `users` (first_name, last_name, email, password) VALUES ("".$first_name."", "".$last_name ." ", ".$email.", ".$heslo."")"); if(!$result_query_insert)( // Uložte chybovou zprávu do relace. $_SESSION["error_messages"] .= "

Chyba v požadavku na přidání uživatele do databáze

"; //Vrátí uživatele na registrační stránku header("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_register.php"); //Zastavení skriptu exit(); )else( $_SESSION["success_messages"] = "

Registrace úspěšně dokončena!!!
Nyní se můžete přihlásit pomocí svého uživatelského jména a hesla.

"; //Odeslat uživatele na autorizační stránku header("HTTP/1.1 301 Moved Permanently"); header("Location: ".$address_site."/form_auth.php"); ) /* Dokončení požadavku */ $ result_query_insert-> close(); //Uzavření připojení k databázi $mysqli->close();

Pokud došlo k chybě v požadavku na přidání uživatele do databáze, přidáme do relace zprávu o této chybě a vrátíme uživatele na registrační stránku.

V opačném případě, pokud vše proběhlo v pořádku, přidáme k relaci také zprávu, ale tentokrát je to příjemnější, konkrétně uživateli sdělíme, že registrace proběhla úspěšně. A přesměrujeme ho na stránku s autorizačním formulářem.

Skript pro kontrolu formátu e-mailové adresy a délky hesla je v souboru hlavička.php, tak to bude platit i pro pole z tohoto formuláře.

Relace je také spuštěna v souboru hlavička.php, tedy v souboru form_auth.php Není třeba spouštět relaci, protože se zobrazí chyba.


Jak jsem již řekl, funguje zde i skript pro kontrolu formátu emailové adresy a délky hesla. Pokud tedy uživatel zadá nesprávnou e-mailovou adresu nebo krátké heslo, okamžitě se mu zobrazí chybová zpráva. Tlačítko vejít do se stane neaktivní.

Po opravě chyb tlačítko vejít do se stane aktivní a uživatel bude moci odeslat formulář na server, kde bude zpracován.

Autorizace uživatele

Přiřadit hodnotu akce autorizační handicap má specifikovaný soubor auth.php, to znamená, že formulář bude zpracován v tomto souboru.

A tak otevřete soubor auth.php a napište kód pro zpracování autorizačního formuláře. První věc, kterou musíte udělat, je spustit relaci a připojit soubor dbconnect.php pro připojení k databázi.

Když kliknete na výstupní odkaz z webu, přejdeme do souboru logout.php, kde jednoduše zničíme buňky s emailovou adresou a heslem z relace. Poté vrátíme uživatele zpět na stránku, na které byl odkaz kliknut výstup.

Kód souboru logout.php:

To je vše. Nyní víte, jak implementovat a zpracovávat registrační a autorizační formuláře uživatelů na vašem webu. Tyto formuláře se nacházejí téměř na každém webu, takže každý programátor by měl vědět, jak je vytvořit.

Naučili jsme se také validovat vstupní data, a to jak na straně klienta (v prohlížeči, pomocí JavaScriptu, jQuery), tak na straně serveru (pomocí PHP). Také jsme se naučili, jak implementovat postup pro opuštění webu.

Všechny skripty byly testovány a fungují. Archiv se soubory tohoto malého webu si můžete stáhnout z tohoto odkazu.

V budoucnu napíšu článek, kde budu popisovat. A také plánuji napsat článek, kde vysvětlím (bez opětovného načítání stránky). Takže, abyste byli informováni o vydání nových článků, můžete se přihlásit k odběru mých webových stránek.

Pokud máte nějaké dotazy, kontaktujte mě, a pokud si všimnete nějaké chyby v článku, dejte mi vědět.

Plán lekce (část 5):

  • Vytvoření struktury HTML pro autorizační formulář
  • Přijatá data zpracováváme
  • V záhlaví webu zobrazíme pozdrav uživatele
  • Líbil se vám článek?

    Naučíme se, jak provést jednoduché ověření uživatele na webu. Stránky mohou mít stránky pouze pro oprávněné uživatele a budou plně fungovat, pokud na ně přidáme náš autentizační blok. K jeho vytvoření potřebujete databázi MySQL. Může mít 5 sloupců (minimálně), nebo více, pokud chcete přidat informace o uživatelích. Nazvěme databázi „Userauth“.

    Vytvořme si v něm tato pole: ID pro počítání uživatelů, UID pro jedinečné identifikační číslo uživatele, Uživatelské jméno pro jméno uživatele, Email pro jeho emailovou adresu a Heslo pro heslo. K autorizaci uživatele můžete použít svou stávající databázi, stačí v ní, jako v případě nové databáze, vytvořit následující tabulku.

    Kód MySQL

    CREATE TABLE `users` (`ID` int (11) NOT NULL AUTO_INCREMENT, `UID` int (11) NOT NULL, `Username` text NOT NULL, `Email` text NOT NULL, `Pasword` text NOT NULL, PRIMARY KEY (`ID`)) ENGINE=MYISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

    Nyní vytvoříme soubor "sql.php". Je zodpovědný za připojení k databázi. Tento kód za prvé vytváří proměnné pro server a uživatele, když se připojí k serveru. Za druhé, vybere databázi, v tomto případě "USERAUTH". Tento soubor musí být součástí "log.php" a "reg.php" pro přístup k databázi.

    PHP kód

    Další je přihlašovací stránka, nechť se jmenuje “login.php”. Nejprve zkontroluje, zda zadaná data neobsahují chyby. Stránka obsahuje pole pro uživatelské jméno, heslo, tlačítko Odeslat a registrační odkaz. Když uživatel klikne na tlačítko "Přihlásit", bude formulář zpracován kódem ze souboru "log.php" a následně přihlášen.

    PHP kód

    Přihlašovací formulář

    Uživatelské jméno
    Heslo
    Registrace

    Poté napíšeme skript pro přihlášení do systému. Říkejme tomu "log.php". Má funkci pro vyčištění vstupních dat z injekcí SQL, které mohou zničit váš skript. Za druhé obdrží data formuláře a zkontroluje jejich správnost. Pokud jsou vstupní údaje správné, skript odešle uživatele na stránku oprávněných uživatelů, pokud ne, nastaví chyby a odešle uživatele na přihlašovací stránku.

    PHP kód

    Udělejme registrační stránku, nazvěme ji "register.php". Je podobná přihlašovací stránce, jen má o pár polí více a místo registračního odkazu je zde odkaz na login.php v případě, že uživatel již účet má.

    PHP kód

    Registrační formulář

    Uživatelské jméno
    E-mailem
    Heslo
    Zopakovat heslo
    Mám účet

    Nyní vytvoříme registrační skript v souboru "reg.php". Bude obsahovat "sql.php" pro připojení k databázi. Pro vymazání vstupního pole se používá stejná funkce jako v přihlašovacím skriptu. Pro případné chyby jsou nastaveny proměnné. Další je funkce pro vytvoření jedinečného identifikátoru, který nikdy předtím nebyl poskytnut. Data z registračního formuláře jsou následně extrahována a ověřena. Je provedena kontrola, zda je e-mailová adresa ve správném formátu a zda je znovu správně zadáno heslo. Skript následně zkontroluje, zda se v databázi nenachází uživatel se stejným jménem, ​​a pokud ano, ohlásí chybu. Nakonec kód přidá uživatele do databáze.

    PHP kód

    Musíte také vytvořit skript pro odhlášení uživatele ze systému. Ukončí relaci uživatele s daným jedinečným ID a jménem a poté uživatele přesměruje na přihlašovací stránku.

    PHP kód

    A konečně, skript "auth.php" lze použít ke zpřístupnění stránek pouze oprávněným uživatelům. Zkontroluje přihlašovací údaje a pokud jsou správné, umožní uživateli procházet stránky, a pokud ne, vyzve ho k přihlášení. Pokud se navíc někdo pokusí web hacknout vytvořením jedné z relací, bude přerušena, jako v obecném případě.

    PHP kód

    Jedna z podmínek ve výše uvedeném kódu je předmětem otázky v .

    Následující kód je potřeba vložit do stránky pro oprávněné uživatele, jmenuje se například “member.php”, ale ten váš se může jmenovat jakkoli.

    PHP kód

    Máte oprávnění k přístupu na tuto stránku. Jít ven ( )

    Ověření uživatele je připraveno!

    Naposledy upraveno 5. dubna 2018 uživatelem Vincy.

    Přihlášení a registrace uživatele je základním požadavkem pro jakoukoli CMS aplikaci. Toto je počáteční práce při zahájení projektu. Aplikace s autentizací přihlášení uživatele zajišťuje bezpečnost tím, že zabraňuje anonymnímu přístupu. Existují různé způsoby, jak povolit ověřování v naší aplikaci, například povolením přihlášení OAuth nebo implementací jednotného přihlášení (SSO) a podobnými jinými způsoby. V předchozím tutoriálu jsme viděli, jak implementovat a také o.

    Tento příklad zahrnuje funkce přihlášení i registrace. K ukládání registrovaných členů jsem použil databázi MySQL. Registrace uživatele bude obsahovat vstup pro získání podrobností od uživatele. Po odeslání tohoto formuláře jsou data formuláře odeslána do PHP a uložena v databázi. Uživatelské heslo bude před uložením do databáze zašifrováno. před odesláním do kódu PHP. Když je uživatel přihlášen s platnými přihlašovacími údaji, bude uživateli i jemu umožněno pokračovat dále.

    Registrační formulář uživatele

    Tento kód má uživateli zobrazit přihlašovací formulář. Když uživatel odešle formulář se svými údaji, bude zavolána funkce JavaScript pro ověření uživatelského vstupu. Po úspěšném ověření kód PHP načte odeslaná data formuláře a provede vložení databáze.