Istentelen hitelesítés regisztráció php

2015.10.05. Romchik

Jó nap. Ebben a cikkben egy példa segítségével elemezzük a felhasználói regisztrációt a következő helyen: . Ezután aktiválja a felhasználót az e-mail címének megerősítésével. És végül a felhasználói jogosultság a . De csak az aktív felhasználókat kell engedélyezni.

Első lépésként létrehozunk egy vezérlőt és egy nézetet a regisztrációhoz.

Regisztrációs űrlap készítése

Lépjen az erőforrássablonokat tartalmazó könyvtárba, és hozza létre benne az auth alkönyvtárat. Most az auth mappában létrehozunk egy register.blade.php fájlt a következő kóddal:

Bejegyzés

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

A fenti kódot nem magyarázom, itt minden világos.

App/Http/Controllers/Auth/AuthController.php

Csak az AuthController.php vezérlő metódusait írjuk felül. Tehát a regisztrációs űrlap megjelenítéséhez van egy getRegister metódus. Ehhez a módszerhez nem nyúlunk.

Most térjünk át az útvonalakra. Nyissa meg a fájlt:

És határozza meg az utat a módszerünkhöz:

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

Most nyissuk meg alkalmazásunkat a böngészőben. Remek, látjuk a regisztrációs űrlapot.

Felhasználó regisztráció itt

Azonnal határozzuk meg a felhasználói regisztráció útvonalát. Menjünk a fájlhoz:

App/Http/Controllers/routes.php

És adja hozzá a következő útvonalat:

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

Most hozzunk létre egy táblázatot a felhasználók tárolására. Ehhez a táblázathoz már van áttelepítés, de nekünk nem megfelelő. Változtassuk meg. Menjünk a fájlhoz:

Database/migrations/2014_10_12_create_users_table.php

És változtassuk meg a kódot:

Az én esetemben így néz ki:

Mentse el a bd.php fájlt.
Nagy! Van egy táblánk az adatbázisban és egy kapcsolatunk vele. Most elkezdhet létrehozni egy oldalt, amelyen a felhasználók meghagyják adataikat.

3. Hozzon létre egy reg.php fájlt a tartalommal (minden megjegyzés benne):



Bejegyzés


Bejegyzés


Az Ön bejelentkezési neve:




A jelszavad:








4. Hozzon létre egy fájlt, amely adatokat visz be az adatbázisba, és menti a felhasználót. save_user.php (megjegyzések belül):

5. Felhasználóink ​​most már regisztrálhatnak! Ezután létre kell hoznia egy „ajtót” a már regisztrált felhasználók számára, hogy beléphessenek az oldalra. index.php (belül megjegyzések):




Kezdőlap


Kezdőlap


Az Ön bejelentkezési neve:


A jelszavad:






Regisztráció



Rendben, most mindennek vége! A lecke lehet unalmas, de nagyon hasznos. Itt csak a regisztráció ötlete jelenik meg, majd javíthatja: biztonsági, tervezési, adatmezők hozzáadása, avatarok betöltése, fiókból való kijelentkezés (ehhez egyszerűen törölje a változókat a munkamenetből az Unset funkcióval) és hamar. Sok szerencsét!

Mindent megnéztem, hibátlanul működik!

Ebből a cikkből megtudhatja, hogyan hozhat létre regisztrációs és bejelentkezési űrlapot HTML, JavaScript, PHP és MySql használatával. Az ilyen űrlapokat szinte minden webhelyen használják, függetlenül annak típusától. Fórumokhoz, online boltokhoz, közösségi hálózatokhoz (például Facebook, Twitter, Odnoklassniki) és sok más típusú webhelyhez készültek.

Ha van webhelye a helyi számítógépén, akkor remélem, hogy már telepítve van és fut egy helyi szerver. Enélkül semmi sem fog működni.

Táblázat létrehozása az adatbázisban

A felhasználói regisztráció megvalósításához mindenekelőtt adatbázisra van szükségünk. Ha már megvan, akkor nagyszerű, ellenkező esetben létre kell hozni. A cikkben részletesen elmagyarázom, hogyan kell ezt megtenni.

Tehát van egy adatbázisunk (rövidítve DB), most létre kell hoznunk egy táblát felhasználókat melybe felvesszük regisztrált felhasználóinkat.

A cikkben azt is elmagyaráztam, hogyan lehet táblázatot adatbázisban létrehozni. Mielőtt létrehoznánk egy táblázatot, meg kell határoznunk, hogy milyen mezőket fog tartalmazni. Ezek a mezők megfelelnek a regisztrációs űrlap mezőinek.

Így hát, gondoltuk, elképzeltük, milyen mezők lesznek az űrlapunkon, és létrehoztunk egy táblázatot felhasználókat ezekkel a mezőkkel:

  • id- Azonosító. Terület id Az adatbázisban minden táblának rendelkeznie kell vele.
  • keresztnév- Hogy mentse a nevet.
  • vezetéknév- Hogy megőrizzük a vezetéknevet.
  • email- A postacím mentéséhez. Bejelentkezésként az e-mailt fogjuk használni, ezért ennek a mezőnek egyedinek kell lennie, azaz rendelkeznie kell az EGYEDI indexszel.
  • email_status- Mező, amely jelzi, hogy a levél megerősítve van-e vagy sem. Ha a levél visszaigazolásra kerül, akkor annak értéke 1 lesz, ellenkező esetben az érték 0.
  • Jelszó- A jelszó mentéséhez.


Ha azt szeretné, hogy a regisztrációs űrlapon további mezők szerepeljenek, itt is felveheti azokat.

Ez az, a mi asztalunk felhasználókat kész. Térjünk át a következő szakaszra.

Adatbázis kapcsolat

Elkészítettük az adatbázist, most csatlakoznunk kell hozzá. A MySQLi PHP kiterjesztéssel fogunk csatlakozni.

Webhelyünk mappájában hozzon létre egy fájlt a névvel dbconnect.php, és írd bele a következő szkriptet:

Ez a fájl dbconnect.phpössze kell kapcsolni az űrlapkezelőkkel.

Figyeld meg a változót $cím_webhely, itt feltüntettem a tesztoldalam nevét, amin dolgozni fogok. Kérjük, ennek megfelelően adja meg webhelye nevét.

A webhely szerkezete

Most pedig nézzük meg oldalunk HTML szerkezetét.

A webhely fejlécét és láblécét külön fájlba helyezzük át, header.phpÉs lábléc.php. Minden oldalon feltüntetjük őket. Mégpedig a főoldalon (fájl index.php), a regisztrációs űrlapot tartalmazó oldalra (fájl form_register.php) és az engedélyezési űrlapot tartalmazó oldalra (fájl form_auth.php).

Blokkolás linkjeinkkel, bejegyzésÉs felhatalmazást, adja hozzá őket a webhely fejlécéhez, hogy minden oldalon megjelenjenek. Egy link fog belépni a regisztrációs űrlapot tartalmazó oldalra (fájl form_register.php), a másikat pedig az engedélyezési űrlapot tartalmazó oldalra (fájl form_auth.php).

A header.php fájl tartalma:

Oldalunk neve

Ennek eredményeként a főoldalunk így néz ki:


Természetesen lehet, hogy az Ön webhelye teljesen más szerkezetű, de ez most nem fontos számunkra. A lényeg az, hogy vannak linkek (gombok) a regisztrációhoz és az engedélyezéshez.

Most pedig térjünk át a regisztrációs űrlapra. Amint azt már érted, nyilvántartjuk form_register.php.

Lépjen az adatbázisba (a phpMyAdminban), nyissa meg a táblázat szerkezetét felhasználókatés nézzük meg, milyen mezőkre van szükségünk. Ez azt jelenti, hogy szükségünk van egy mezőre az utó- és vezetéknév megadásához, egy mezőre a postai cím megadására (Email) és egy mezőre a jelszó megadására. És biztonsági okokból hozzáadunk egy mezőt a captcha beviteléhez.

A szerveren a regisztrációs űrlap feldolgozása következtében különböző hibák léphetnek fel, amelyek miatt a felhasználó nem tud regisztrálni. Ezért ahhoz, hogy a felhasználó megértse, miért sikertelen a regisztráció, üzeneteket kell megjeleníteni ezekről a hibákról.

Az űrlap megjelenítése előtt adjon hozzá egy blokkot a munkamenet hibaüzeneteinek megjelenítéséhez.

És még valami, ha a felhasználó már jogosult, és kíváncsiságból közvetlenül a regisztrációs oldalra megy a böngésző címsorába írva site_address/form_register.php, akkor ebben az esetben a regisztrációs űrlap helyett egy fejlécet jelenítünk meg, amely szerint már regisztrált.

Általában a fájl kódja form_register.php ezt kaptuk:

Már regisztráltál

A böngészőben a regisztrációs űrlapot tartalmazó oldal így néz ki:


A kötelező attribútum használatával minden mezőt kötelezővé tettünk.

Ügyeljen a regisztrációs űrlap kódjára, ahol a captcha megjelenik:


A képhez tartozó src attribútum értékében megadtuk a fájl elérési útját captcha.php, amely ezt a captcha-t generálja.

Nézzük a fájl kódját captcha.php:

A kód jól meg van írva, ezért csak egy pontra koncentrálok.

Egy függvény belsejében imageTtfText(), a betűtípus elérési útja meg van adva verdana.ttf. Tehát ahhoz, hogy a captcha megfelelően működjön, létre kell hoznunk egy mappát betűtípusok, és helyezze oda a fontfájlt verdana.ttf. Megtalálhatja és letöltheti az internetről, vagy átveheti az archívumból a cikk anyagaival együtt.

Elkészültünk a HTML szerkezettel, ideje továbblépni.

Az e-mail érvényességének ellenőrzése a jQuery segítségével

Minden űrlapnak ellenőriznie kell a bevitt adatok érvényességét, mind a kliens oldalon (JavaScript, jQuery használatával), mind a szerver oldalon.

Különös figyelmet kell fordítanunk az E-mail mezőre. Nagyon fontos, hogy a megadott postai cím érvényes legyen.

Ennél a beviteli mezőnél beállítjuk az e-mail típusát (type="email"), ez kissé figyelmeztet minket a helytelen formátumokra. Ez azonban nem elég, mert a böngésző által rendelkezésünkre bocsátott kódvizsgálón keresztül könnyedén megváltoztathatjuk az attribútum értékét típus Val vel email tovább szöveg, és ennyi, a csekkünk többé nem lesz érvényes.


És ebben az esetben megbízhatóbb ellenőrzést kell végeznünk. Ehhez a JavaScript jQuery könyvtárát fogjuk használni.

A jQuery könyvtár csatlakoztatásához a fájlban header.php címkék között , a záró címke előtt , add hozzá ezt a sort:

Közvetlenül e sor után hozzáadjuk az e-mail-ellenőrző kódot. Itt hozzáadunk egy kódot a beírt jelszó hosszának ellenőrzéséhez. A hossza legalább 6 karakter legyen.

Ezzel a szkripttel ellenőrizzük a megadott e-mail cím érvényességét. Ha a felhasználó hibás e-mailt adott meg, erről hibaüzenetet jelenítünk meg, és letiltjuk az űrlap elküldése gombot. Ha minden rendben van, akkor eltávolítjuk a hibát, és aktiváljuk az űrlap elküldése gombot.

És így elkészültünk az űrlap érvényesítésével az ügyfél oldalon. Most már elküldhetjük a szerverre, ahol szintén elvégzünk pár ellenőrzést és adatokat adunk az adatbázishoz.

Felhasználó regisztráció

Az űrlapot a fájlba küldjük feldolgozásra register.php, a POST módszerrel. Ennek a kezelőfájlnak a neve az attribútumértékben van megadva akció. A küldési mód pedig az attribútum értékében van megadva módszer.

Nyissa meg ezt a fájlt register.phpés az első dolgunk, hogy írjunk egy munkamenet-indító függvényt, és összekapcsoljuk a korábban létrehozott fájlt dbconnect.php(Ebben a fájlban hoztunk létre kapcsolatot az adatbázissal). És azt is, azonnal deklaráljuk a sejteket error_messagesÉs siker_üzenetek a globális munkamenet-tömbben. BAN BEN hibaüzenetek minden hibaüzenetet rögzítünk, ami az űrlap feldolgozása során, illetve az in siker_üzenetek, örömteli üzeneteket fogunk rögzíteni.

Mielőtt folytatnánk, ellenőriznünk kell, hogy az űrlapot egyáltalán elküldték-e. A támadó megnézheti az attribútum értékét akció az űrlapról, és megtudja, melyik fájl dolgozza fel ezt az űrlapot. És elképzelhető, hogy közvetlenül ehhez a fájlhoz lépjen a következő cím beírásával a böngésző címsorába: http://site_address/register.php

Tehát ellenőriznünk kell, hogy a globális POST tömbben van-e olyan cella, amelynek a neve megegyezik az űrlapon található "Regisztráció" gombunk nevével. Így ellenőrizzük, hogy a „Regisztráció” gombra kattintottak-e vagy sem.

Ha egy támadó megpróbál közvetlenül erre a fájlra lépni, hibaüzenetet kap. Hadd emlékeztesselek arra, hogy az $address_site változó tartalmazza a webhely nevét, és ez deklarálva lett a fájlban dbconnect.php.

A munkamenetben lévő captcha értéke előállításkor hozzáadásra került a fájlban captcha.php. Emlékeztetőül ismét megmutatom ezt a kódrészletet a fájlból captcha.php, ahol a captcha értéke hozzáadódik a munkamenethez:

Most folytassuk magával az ellenőrzéssel. Fájlban register.php, az if blokkon belül, ahol ellenőrizzük, hogy a "Regisztráció" gombra kattintottak-e, vagy ahol a " megjegyzés van feltüntetve" // (1) Szóköz a következő kódrészlet számára"mi írunk:

//A kapott captcha ellenőrzése //Vágja le a szóközöket a sor elejétől és végétől $captcha = trim($_POST["captcha"]); if(isset($_POST["captcha"]) && !empty($captcha))( //Hasonlítsa össze a kapott értéket a munkamenet értékével. if(($_SESSION["rand"] != $captcha) && ($_SESSION ["rand"] != ""))( // Ha a captcha nem megfelelő, akkor visszaküldjük a felhasználót a regisztrációs oldalra, és ott hibaüzenetet jelenítünk meg neki, hogy rossz captcha-t írt be $error_message = "

Hiba! Rossz captcha-t adott meg

"; // Mentse el a hibaüzenetet a munkamenetbe. $_SESSION["error_messages"] = $error_message; // A felhasználó visszaadása a regisztrációs oldal fejlécéhez("HTTP/1.1 301 Permanently Moved"); header("Hely: " .$address_site ."/form_register.php"); //Stop the script exit(); ) // (2) Hely a következő kódrészlethez )else( //Ha a captcha nem került átadásra, vagy üres, lépjen ki ("

Hiba! Nincs ellenőrző kód, azaz captcha kód. Mehet a főoldalra.

"); }

Ezután a POST tömbből kapott adatokat kell feldolgoznunk. Először is ellenőriznünk kell a globális POST tömb tartalmát, vagyis hogy vannak-e ott olyan cellák, amelyek neve megegyezik az űrlapunk beviteli mezőinek nevével.

Ha a cella létezik, akkor ebből a cellából levágjuk a sor elejétől és végétől a szóközöket, ellenkező esetben a felhasználót visszairányítjuk a regisztrációs űrlapot tartalmazó oldalra.

Ezután a szóközök levágása után hozzáadjuk a sort a változóhoz, és ellenőrizzük, hogy ez a változó üres-e, ha nem üres, akkor továbblépünk, ellenkező esetben a regisztrációs űrlappal visszairányítjuk a felhasználót az oldalra.

Illessze be ezt a kódot a megadott helyre" // (2) Szóköz a következő kódrészlet számára".

/* Ellenőrizze, hogy vannak-e az űrlapról küldött adatok a $_POST globális tömbben, és csomagolja a beküldött adatokat szabályos változókba.*/ if(isset($_POST["first_name"]))( //Vágja le a szóközöket az elejétől és a string vége $first_name = trim($_POST["first_name"]); //Emptiness ellenőrzése if(!empty($first_name))( // A biztonság kedvéért konvertálja a speciális karaktereket HTML entitásokká $first_name = htmlspecialchars($first_name, ENT_QUOTES) ; )else( // Mentse el a hibaüzenetet a munkamenetbe. $_SESSION["error_messages"] .= "

Adja meg nevét

A név mező hiányzik

"; //A felhasználó visszaküldése a regisztrációs oldal fejlécéhez("HTTP/1.1 301 Véglegesen áthelyezve"); header("Hely: ".$address_site."/form_register.php"); //Stop the script exit(); ) if( isset($_POST["last_name"]))( //Szóközök levágása a sor elejétől és végétől $last_name = trim($_POST["last_name"]); if(!empty($last_name)) ( // A biztonság kedvéért konvertálja a speciális karaktereket HTML entitásokká $last_name = htmlspecialchars($last_name, ENT_QUOTES); )else( // Mentse el a hibaüzenetet a munkamenetbe. $_SESSION["error_messages"] .= "

Kérlek írd be a vezetékneved

"; //A felhasználó visszaküldése a regisztrációs oldal fejlécéhez("HTTP/1.1 301 Véglegesen áthelyezve"); header("Hely: ".$address_site."/form_register.php"); //Stop the script exit(); ) )else ( // Mentse el a hibaüzenetet a munkamenetbe. $_SESSION["error_messages"] .= "

A vezetéknév mező hiányzik

"; //A felhasználó visszaküldése a regisztrációs oldal fejlécéhez("HTTP/1.1 301 Véglegesen áthelyezve"); header("Hely: ".$address_site."/form_register.php"); //Stop the script exit(); ) if( isset($_POST["email"]))( //Szóközök levágása a sor elejétől és végétől $email = trim($_POST["email"]); if(!empty($email)) ( $email = htmlspecialchars ($email, ENT_QUOTES); // (3) A kód helye az e-mail cím formátumának és egyediségének ellenőrzéséhez )else( // Mentse el a hibaüzenetet a munkamenetbe. $_SESSION["error_messages"] .= "

Írd be az email címed

"; //A felhasználó visszaküldése a regisztrációs oldal fejlécéhez("HTTP/1.1 301 Véglegesen áthelyezve"); header("Hely: ".$address_site."/form_register.php"); //Stop the script exit(); ) )else ( // Mentse el a hibaüzenetet a munkamenetbe. $_SESSION["error_messages"] .= "

"; //A felhasználó visszaküldése a regisztrációs oldal fejlécéhez("HTTP/1.1 301 Véglegesen áthelyezve"); header("Hely: ".$address_site."/form_register.php"); //Stop the script exit(); ) if( isset($_POST["jelszó"]))( //Szóközök levágása a karakterlánc elejétől és végétől $password = trim($_POST["jelszó"]); if(!empty($jelszó)) ( $password = htmlspecialchars ($password, ENT_QUOTES); //A jelszó titkosítása $password = md5($password."top_secret"); )else( // Mentse el a hibaüzenetet a munkamenetbe. $_SESSION["error_messages"] .= "

Írd be a jelszavad

"; //A felhasználó visszaküldése a regisztrációs oldal fejlécéhez("HTTP/1.1 301 Véglegesen áthelyezve"); header("Hely: ".$address_site."/form_register.php"); //Stop the script exit(); ) )else ( // Mentse el a hibaüzenetet a munkamenetbe. $_SESSION["error_messages"] .= "

"; //A felhasználó visszaküldése a regisztrációs oldal fejlécéhez("HTTP/1.1 301 Véglegesen áthelyezve"); header("Hely: ".$address_site."/form_register.php"); //Stop the script exit(); ) // (4) A felhasználó adatbázishoz való hozzáadásához szükséges kód helye

Különösen fontos a terület email. Ellenőriznünk kell a kapott postai cím formátumát és egyediségét az adatbázisban. Vagyis van-e már regisztrált felhasználó ugyanazzal az e-mail címmel?

a megadott helyen" // (3) Kódhely a postai cím formátumának és egyediségének ellenőrzéséhez" add hozzá a következő kódot:

//Ellenőrizze a kapott e-mail cím formátumát egy reguláris kifejezéssel $reg_email = "/^**@(+(*+)*\.)++/i"; //Ha a kapott e-mail cím formátuma nem egyezik a reguláris kifejezéssel if(!preg_match($reg_email, $email))( // Mentse el a hibaüzenetet a munkamenetbe. $_SESSION["error_messages"] .= "

Rossz e-mail-címet adott meg

"; //A felhasználó visszaküldése a regisztrációs oldal fejlécéhez("HTTP/1.1 301 Véglegesen áthelyezve"); header("Hely: ".$address_site."/form_register.php"); //Stop the script exit(); ) // Ellenőrizzük, hogy van-e már ilyen cím az adatbázisban. $result_query = $mysqli->query("SELECT `email` FROM `users` WHERE `email`="".$email."""); / /Ha a beérkezettek száma pontosan egy sor van, ami azt jelenti, hogy az ezzel az e-mail címmel rendelkező felhasználó már regisztrálva van if($result_query->num_rows == 1)( //Ha a kapott eredmény nem hamis if(($row = $result_query->fetch_assoc()) != false) ( // Mentse el a hibaüzenetet a munkamenetbe. $_SESSION["error_messages"] .= "

Az ezzel az e-mail címmel rendelkező felhasználó már regisztrálva van

"; //A felhasználó visszaküldése a regisztrációs oldal fejlécéhez("HTTP/1.1 301 véglegesen áthelyezve"); header("Hely: ".$address_site."/form_register.php"); )else( // Mentse el a hibaüzenetet a munkamenethez . $_SESSION["error_messages"] .= "

Hiba az adatbázis lekérdezésében

"; //A felhasználó visszaadása a regisztrációs oldal fejlécéhez("HTTP/1.1 301 Véglegesen áthelyezve"); header("Hely: ".$address_site."/form_register.php"); ) /* a kijelölés bezárása */ $ result_query-> close(); //A szkript leállítása exit(); ) /* a kijelölés bezárása */ $result_query->close();

És készen vagyunk az összes ellenőrzéssel, ideje hozzáadni a felhasználót az adatbázishoz. a megadott helyen" // (4) A felhasználó adatbázishoz adásához szükséges kód helye" add hozzá a következő kódot:

//Lekérdezés egy felhasználó hozzáadásához az adatbázishoz $result_query_insert = $mysqli->query("INSERT INTO `users` (keresztnév, vezetéknév, email, jelszó) VALUES ("".$first_name."", "".$last_name ." ", "".$email.", "".$password."")"); if(!$result_query_insert)( // Mentse a hibaüzenetet a munkamenetbe. $_SESSION["error_messages"] .= "

Hiba a felhasználó adatbázishoz adásának kérésében

"; //A felhasználó visszaküldése a regisztrációs oldal fejlécéhez("HTTP/1.1 301 Véglegesen áthelyezve"); header("Hely: ".$address_site."/form_register.php"); //Stop the script exit(); )else( $_SESSION["success_messages"] = "

A regisztráció sikeresen lezárult!!!
Most már bejelentkezhet felhasználónevével és jelszavával.

"; //A felhasználó elküldése az engedélyezési oldal fejlécére("HTTP/1.1 301, véglegesen áthelyezve"); header("Hely: ".$address_site."/form_auth.php"); ) /* A kérés befejezése */ $ result_query_insert-> close(); //Az adatbázishoz való kapcsolat bezárása $mysqli->close();

Ha hiba történt a felhasználó adatbázishoz való felvételének kérésében, akkor erről a hibáról üzenetet adunk a munkamenethez, és visszaküldjük a felhasználót a regisztrációs oldalra.

Ellenkező esetben, ha minden jól ment, üzenetet is adunk a munkamenethez, de ezúttal kellemesebb, nevezetesen közöljük a felhasználóval, hogy a regisztráció sikeres volt. És átirányítjuk az engedélyezési űrlapot tartalmazó oldalra.

Az e-mail cím formátumának és a jelszó hosszának ellenőrzésére szolgáló szkript a fájlban található header.php, így ez az űrlap mezőire is vonatkozik.

A munkamenet is elindul a fájlban header.php, tehát a fájlban form_auth.php Nem kell munkamenetet indítani, mert hibaüzenetet kapunk.


Mint már mondtam, itt is működik az e-mail cím formátumának és a jelszó hosszának ellenőrzésére szolgáló szkript. Ezért ha a felhasználó hibás email címet vagy rövid jelszót ad meg, azonnal hibaüzenetet kap. Egy gomb bejönni inaktívvá válik.

A hibák kijavítása után a gombot bejönni aktívvá válik, és a felhasználó el tudja küldeni az űrlapot a szerverre, ahol az feldolgozásra kerül.

Felhasználói jogosultság

Érték tulajdonításához akció az engedélyezési hendikepnek van egy fájl megadva auth.php, ez azt jelenti, hogy az űrlap ebben a fájlban kerül feldolgozásra.

És hát nyissa meg a fájlt auth.phpés írjon kódot az engedélyezési űrlap feldolgozásához. Az első dolog, amit meg kell tennie, egy munkamenet elindítása és a fájl csatlakoztatása dbconnect.php az adatbázishoz való csatlakozáshoz.

Ha rákattint a kilépés linkre az oldalról, egy fájlhoz jutunk logout.php, ahol egyszerűen megsemmisítjük a munkamenetből származó e-mail címet és jelszót tartalmazó cellákat. Ezt követően visszaküldjük a felhasználót arra az oldalra, amelyen a linkre kattintott kijárat.

Fájl kódja logout.php:

Ez minden. Most már tudja, hogyan helyezze el és dolgozza fel a felhasználói regisztrációs és engedélyezési űrlapokat webhelyén. Ezek az űrlapok szinte minden webhelyen megtalálhatók, így minden programozónak tudnia kell, hogyan kell elkészíteni őket.

Megtanultuk a bemeneti adatok érvényesítését is, mind kliens oldalon (böngészőben, JavaScript, jQuery használatával), mind szerver oldalon (PHP használatával). Azt is megtanultuk, hogyan kell végrehajtani egy eljárást a helyszín elhagyására.

Minden szkriptet teszteltünk és működik. Erről a linkről letöltheti a kis oldal fájljait tartalmazó archívumot.

A jövőben írok egy cikket, ahol leírom. És tervezek egy cikket is írni, ahol elmagyarázom (az oldal újratöltése nélkül). Tehát, hogy mindig értesüljön az új cikkek megjelenéséről, feliratkozhat webhelyemre.

Ha kérdése van, forduljon hozzám, és ha hibát észlel a cikkben, jelezze.

Óraterv (5. rész):

  • HTML-struktúra létrehozása az engedélyezési űrlaphoz
  • A kapott adatokat feldolgozzuk
  • A webhely fejlécében megjelenítjük a felhasználó üdvözlését
  • Tetszett a cikk?

    Megtanuljuk, hogyan lehet egyszerű felhasználói hitelesítést végezni az oldalon. Előfordulhat, hogy az oldal csak jogosult felhasználók számára tartalmaz oldalakat, amelyek teljes mértékben működni fognak, ha hozzáadjuk hozzájuk a hitelesítési blokkunkat. Létrehozásához MySQL adatbázisra van szükség. 5 oszlopból állhat (legalább), ha információkat szeretne hozzáadni a felhasználókról. Nevezzük az adatbázist Userauth-nak.

    Hozzuk létre benne a következő mezőket: ID a felhasználók számának számlálásához, UID a felhasználó egyedi azonosítószámához, Felhasználónév a felhasználó nevéhez, Email az e-mail címéhez és Jelszó a jelszóhoz. Meglévő adatbázisát használhatja a felhasználó engedélyezésére, csakúgy, mint egy új adatbázis esetében, hozza létre benne a következő táblázatot.

    MySQL kód

    TÁBLÁZAT LÉTREHOZÁSA "felhasználók" ("ID" int (11) NOT NULL AUTO_INCREMENT, "UID" int (11) NOT NULL, "Felhasználónév" szöveg NEM NULL, "E-mail" szöveg NEM NULL, "Jelszó" szöveg NEM NULL, PRIMARY KEY (`ID`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

    Most hozzuk létre az "sql.php" fájlt. Felelős az adatbázishoz való csatlakozásért. Ez a kód először is változókat hoz létre a szerver és a felhasználó számára, amikor csatlakozik a szerverhez. Másodszor, kiválasztja az adatbázist, ebben az esetben a "USERAUTH"-t. Ennek a fájlnak szerepelnie kell a "log.php" és a "reg.php" fájlokban az adatbázis eléréséhez.

    PHP kód

    Következő a bejelentkezési oldal, legyen neve „login.php”. Először is ellenőrzi, hogy a bevitt adatokban nincsenek-e hibák. Az oldalon találhatók a felhasználónév, jelszó, küldés gomb és regisztrációs link mezők. Amikor a felhasználó a „Bejelentkezés” gombra kattint, a „log.php” fájl kódja feldolgozza az űrlapot, majd bejelentkezik.

    PHP kód

    Bejelentkezési űrlap

    Felhasználónév
    Jelszó
    Bejegyzés

    Ezután írunk egy szkriptet a rendszerbe való bejelentkezéshez. Nevezzük log.php-nek. Olyan funkcióval rendelkezik, amely megtisztítja a bemeneti adatokat az SQL-injekcióktól, amelyek tönkretehetik a szkriptet. Másodszor, megkapja az űrlapadatokat, és ellenőrzi azok helyességét. Ha a beviteli adatok helyesek, a szkript a felhasználót a jogosult felhasználók oldalára küldi, ha nem, akkor hibákat állít be, és a bejelentkezési oldalra küldi a felhasználót.

    PHP kód

    Készítsünk egy regisztrációs oldalt, nevezzük "register.php"-nek. Hasonló a bejelentkezési oldalhoz, csak van rajta még néhány mező, és regisztrációs link helyett a login.php-re mutató hivatkozás található arra az esetre, ha a felhasználónak már van fiókja.

    PHP kód

    Regisztrációs űrlap

    Felhasználónév
    Email
    Jelszó
    Jelszó újra
    Van fiókom

    Most létrehozunk egy regisztrációs szkriptet a "reg.php" fájlban. Tartalmazza az "sql.php" fájlt az adatbázishoz való csatlakozáshoz. A beviteli mező törlésére ugyanaz a funkció kerül felhasználásra, mint a bejelentkezési szkriptben. Változók vannak beállítva a lehetséges hibákhoz. A Next egy olyan egyedi azonosító létrehozására szolgáló funkció, amelyet korábban még soha nem adtak meg. A regisztrációs űrlap adatait ezt követően kivonják és ellenőrzik. Ellenőrzik, hogy az e-mail cím megfelelő formátumban van-e, és a jelszót helyesen adta-e meg újra. A szkript ezután ellenőrzi, hogy van-e azonos nevű felhasználó az adatbázisban, és ha igen, akkor hibát jelez. Végül a kód hozzáadja a felhasználót az adatbázishoz.

    PHP kód

    Létre kell hoznia egy szkriptet is, amellyel a felhasználót kijelentheti a rendszerből. Leállítja a munkamenetet a megadott egyedi azonosítóval és névvel rendelkező felhasználó számára, majd átirányítja a felhasználót a bejelentkezési oldalra.

    PHP kód

    Végül az "auth.php" szkript használható arra, hogy az oldalakat csak az arra jogosult felhasználók számára hozzáférhessenek. Ellenőrzi a bejelentkezési adatokat, és ha azok helyesek, lehetővé teszi a felhasználó számára az oldalak böngészését, ha pedig nem, bejelentkezést kér. Ezenkívül, ha valaki megpróbálja feltörni az oldalt az egyik munkamenet létrehozásával, az megszakad, mint általában.

    PHP kód

    A fenti kódban szereplő egyik feltétel a kérdés tárgya a -ban.

    Az alábbi kódot kell beszúrni az oldalra a jogosult felhasználók számára, ennek neve például „tag.php”, de a tiéd bárminek nevezhető.

    PHP kód

    Ön jogosult az oldal elérésére. Eljár szórakozni ( )

    A felhasználói hitelesítés készen áll!

    Legutóbb 2018. április 5-én módosította Vincy által.

    A felhasználói bejelentkezés és regisztráció alapvető követelmény minden CMS-alkalmazáshoz. Ez a kezdeti munka a projekt elindításakor. A felhasználói bejelentkezési hitelesítéssel rendelkező alkalmazás biztonságot nyújt az anonim hozzáférés megakadályozásával. Különféle módon engedélyezheti a hitelesítést az alkalmazásunkban, például az OAuth bejelentkezés engedélyezésével vagy az egyszeri bejelentkezés (SSO) megvalósításával és hasonló egyéb módokkal. Egy korábbi oktatóanyagban láthattuk, hogyan kell megvalósítani, és kb.

    Ez a példa a bejelentkezési és a regisztrációs funkciókat egyaránt tartalmazza. A regisztrált tagok tárolására MySQL adatbázist használtam. A felhasználói regisztráció tartalmazni fogja a bemenetet, hogy megkapja a részleteket a felhasználótól. Az űrlap elküldésekor az űrlap adatai felkerülnek a PHP-re és az adatbázisban tárolódnak. A felhasználói jelszó az adatbázisban való tárolás előtt titkosítva lesz. mielőtt közzéteszi a PHP kódot. Ha a felhasználó az érvényes hitelesítő adatokkal jelentkezik be, akkor a felhasználó és ő folytathatja a folytatást.

    Felhasználói regisztrációs űrlap

    Ez a kód a regisztrációs űrlap megjelenítésére szolgál a felhasználó számára. Amikor a felhasználó elküldi az űrlapot az adataival, a JavaScript függvény meghívódik a felhasználói bevitel érvényesítésére. Sikeres érvényesítés után a PHP kód beolvassa a közzétett űrlapadatokat az adatbázis-beillesztés végrehajtásához.