Írjon regisztrációt a PHP-hez. Egyszerű felhasználói regisztrációs rendszer létrehozása a PHP és a MYSQL számára
Annak érdekében, hogy a webhely látogatóit a webhelyen lévő csoportokba oszthassuk, győződjön meg róla, hogy létrehoz egy kis rendszert regisztráció a PHP-vel.. Így, ha hagyományosan osztva a látogatók két csoportban csak véletlenszerű látogatók, és egy kiváltságos csoport a felhasználók, akik ki több értékes információt.
A legtöbb esetben használjon egy egyszerűbb regisztrációs rendszert, amelyet egy fájlban PHP-ben írtak. regisztráljon.php..
Tehát egy kicsit zavart voltunk, és most részletesebben tartsuk a regisztrációs fájlt.
Fájl-regiszter.php.
Annak érdekében, hogy Önt ne vette el az idő tömegét, hozzon létre egy olyan rendszert, amely összegyűjti a felhasználókat, minimális elérhetőségi adatot készít. Ebben az esetben mindenki benyújtja a MySQL adatbázisba. A legmagasabb alapsebesség érdekében létrehozunk egy felhasználói táblát a myisam formátumban és az UTF-8 kódolásban.
Jegyzet! Minden szkriptet írni kell egy kódolásban. Minden webhelyfájl és MySQL adatbázisnak egyetlen kódolásban kell lennie. A leggyakoribb UTF-8 és Windows-1251 kódolások.
Azért, hogy mit kell írnod \u200b\u200bmindent egy kódolásban, később később beszélünk. Időközben vegye be ezt az információt, mint a legszigorúbb szabály létrehozása parancsfájlokat, különben problémák lesznek a parancsfájlok munkájával. Természetesen semmi szörnyű, de egyszerűen lefogy az idő, hogy hibákat találjon a szkriptben.
Hogyan működik a szkript?
Szeretnénk egyszerűsíteni mindent, és gyors eredményt kapunk. Ezért a felhasználóktól csak a bejelentkezés, az e-mail és a jelszavát kapjuk. És védelme a spam robotok ellen, telepítsen egy kis CAPTCHA-t. Ellenkező esetben minden fiú a londoni ír egy kis robot elemző, aki kitölti a teljes adatbázis mésszel felhasználók pár perc alatt, és örül az ő zsenialitása és büntetlenül.
Itt van a forgatókönyv. Minden egy fájlban van írva. regisztráljon.php.:
!
"; // piros kérdőjel $ Sha \u003d $ sh. "Scripts / Pro /"; // elérési út a fő mappa $ bg \u003d `bgcolor \u003d" # e1ffeb "; // Háttérszínvonalak?\u003e Példa a regisztrációs parancsfájl-regiszter.php style.css
Ebben az esetben a forgatókönyv magamra hivatkozik. És a rögzített adatok formája és kezelése. Felhívom a figyelmet arra, hogy a fájlt a ZIP archívuma tömöríti, és tartalmazza a Configuration File Config.php, a Felhasználói adatbázis-dump fájl, a segédfunkciók funkciót tartalmazó fájl, a stílusfájl stílusa.css és a Register.php fájl maga. Továbbá több fájl, amely felelős a munkakörülmények munkájáért és generálásáért.
Reg.ru: Domainek és hosting
A legnagyobb felvevő és hosting szolgáltató Oroszországban.
Több mint 2 millió domainnév a karbantartáshoz.
Promóció, postai küldemények, üzleti megoldások.
Több mint 700 ezer ügyfelet világszerte már választottak.
* Egér át a görgetés felfüggesztéséhez.
Előre halad
Egyszerű felhasználói regisztrációs rendszer létrehozása a PHP és a MYSQL számára
A regisztrációs rendszer létrehozása nagy munka. Meg kell írni egy kódot, amely végrehajtja az e-mail címét, üzenetet küld az e-mail visszaigazolást, valamint ellátja az érvényesítési a fennmaradó űrlapmezőket és még sok más.
És még miután írtál mindezt, a felhasználók vonakodnak, mert Ez bizonyos erőfeszítéseket igényel a részükre.
Ebben a leckében egy nagyon egyszerű regisztrációs rendszert hozunk létre, amely nem igényel, és általában nem tárolja a jelszavakat! Az eredmény könnyen megváltoztatható és hozzáadható egy meglévő PHP webhelyhez. Szeretné kitalálni, hogyan működik? Olvassa el az alábbiakat.
Íme, hogy a szuper egyszerű rendszerünk hogyan fog működni:
Kombináljuk az engedélyezés és a regisztráció formáját. Ebben az űrlapon lesz egy mező e-mail cím és regisztrációs gomb beviteléhez; - Az e-mail cím mező kitöltésekor új felhasználót hoznak létre a regisztrációs gombra kattintva, de csak akkor, ha a megadott e-mail cím nem található az adatbázisban.
Ezt követően létrejött egy bizonyos véletlenszerű karakterkészlet (token), amelyet a felhasználó által a hivatkozás formájában megadott felhasználónak küldünk, amely 10 percen belül releváns lesz; - Linkenként a felhasználó a webhelyünkre megy. A rendszer meghatározza a token jelenlétét, és felhatalmazza a felhasználót;
Ennek a megközelítésnek az előnyei:
Nincs szükség jelszavak tárolására és a mező érvényesítésére; - Nincs szükség a jelszó helyreállítása, titkos kérdések stb.; - Abban a pillanatban, amikor a felhasználó regisztrált / engedélyezett, mindig biztos lehet benne, hogy ez a felhasználó a hozzáférési területen lesz (hogy az e-mail cím igaz); - hihetetlenül egyszerű regisztrációs folyamat;
Hátrányok:
Felhasználói fiók biztonság. Ha valaki hozzáférhet a levélhez, bejelentkezhet. - Az e-mail nem védett, és elfogható. Ne feledje, hogy ez a kérdés releváns, és abban az esetben, ha a jelszót elfelejtették, és vissza kell állítani, vagy bármely olyan engedélyrendszerben, amely nem használja a HTTPS-t az adatátvitelhez (bejelentkezés / jelszó); - Miközben konfigurálja, hogy szüksége van egy levelezőszerverre, esély van arra, hogy az engedélyhez kapcsolódó linkekkel rendelkező üzenetek spam-ban lesznek;
Összehasonlítva rendszerünk előnyeit és hátrányait, azt mondhatjuk, hogy a rendszer magas YUZability (legkényelmesebb a végfelhasználó számára), és ugyanakkor alacsony biztonsági mutatóval rendelkezik.
Tehát használatra kerül felajánlásokra a fórumokon és szolgáltatásokról, amelyek nem működnek fontos információkkal.
A rendszer használata
Abban az esetben, ha csak akkor kell használni a rendszert, hogy engedélyezze a felhasználókat a webhelyén, és nem akarja szétszerelni ezt a leckét a csontokon, ez az, amit meg kell tennie:
A leckehez csatolt forrásokat kell letöltenie - találjon fájlt az archívumban tables.sql Importálja az adatbázisba a PHPMYADmin importálásával. Alternatív módon: Nyissa meg ezt a fájlt szövegszerkesztő segítségével, másolja az SQL lekérdezést és hajtsa végre azt; - Nyisd ki tartalmazza / main.php. és töltse ki a kommunikációs beállításokat az adatbázisával (Adja meg a felhasználót és a jelszót, hogy kommunikáljon az alapgal, valamint a bázis fogadójával és nevével). Ugyanebben a fájlban meg kell adnia az e-mailt is, amelyet a rendszer által küldött üzenetek eredeti címének kell használni. Néhány gazda blokkolja a kimenő levelet, míg az űrlap nem adja meg ezt az e-mail címet, amelyet a gazda kezelőpanelből hoztak létre, így adja meg a valós címet; - Minden fájl betöltése index.php., védett.php. És az eszközöket, és mappákat tartalmaz az FTP-en keresztül a fogadóban; - Adja hozzá az alábbi kódot az egyes PHP oldalhoz, ahol meg kell jeleníteni az engedélyezési űrlapot;
Igény: _once "magában foglalja / main.php"; $ Felhasználó \u003d új felhasználó (); Ha (! $ user- és gtloggedin ()) (átirányítás ("index.php");) - Kész!
Azok számára, akik érdeklődnek, hogyan működik - előre az alábbi olvasáshoz!
Az első lépés az engedélyezési űrlap HTM-kódjának megírása. Ez a kód található a fájlban. index.php.. Ez a fájl tartalmaz egy PHP-kódot is, amely az űrlapadatokat és az engedélyezési rendszer egyéb hasznos funkcióit tartalmazza. A PHP-kód felülvizsgálatának megfelelően többet megtudhat az alábbi szakaszban.
index.php.
Tutorial: Szuper egyszerű regisztrációs rendszer PHP & MYSQL-vel
A fejrészben (a címkék között)
és) Csatlakoztattam a fő stílusokat (ebben a leckében nem értik, így láthatod őket. Az eszközök / css / style.css mappa). A zárócímkéhez
Csatlakoztam a jQuery könyvtárat és a script.js fájlt, amelyet az alábbiakban írunk és csodálkozunk.
JavaScript.
a JQuery nyomon követi a "Regisztrálás / engedélyezés" gomb állapotát a funkció használatával e.preventdefault () És elküldi ajax kéréseket. A szerver válaszától függően megjeleníti ezt, vagy az üzenetet, és meghatározza a további műveleteket /
eszközök / js / script.js
$ (Függvény () (VAR Form \u003d $ ("# bejelentkezési regiszter"); form.on ("Submit", funkció (E) (ha (form.is ("forma (" betöltés, .loggedin))) (visszaadja a hamis ;) VAR e-mail \u003d form.find ("bemenet"). Val (), üzenetek \u003d form.find ("span"); e.preventdefault (); $ .Post (this.action, e-mail: e-mail), funkció ( M) (form.addclass ("hiba"); Üzenetek.Text (M.Message);) más (form.removeclass ("hiba"). Addclass ("loggedin"); Üzenetek. Szöveg (M.Message);) );); $ (Dokumentum) .ajaxstart (funkció ();)); $ (dokumentum) .ajaxcomplete (funkció () (forma. Eltávolítás);));));
az AJAX kérés aktuális állapotának megjelenítéséhez adták hozzá (ez a módszerek miatt lehetséges ajaxstart ()) I. ajaxcomplete ()amely közelebb kerülhet a fájl végéhez).
Ez az osztály egy forgó animációs gif fájlt mutat be (mintha a kérés feldolgozása), és olyan zászlóként működik, amely megakadályozza az újbóli küldési formát (amikor a regiszter gombot már megnyomta egyszer). Osztály .bejelentkezve. - Ez egy másik zászló, ha az e-mailt elküldték. Ez a zászló azonnal blokkolja az űrlapot tartalmazó további műveleteket.
Adatbázis séma
Hihetetlenül egyszerű regisztrációs rendszerünk 2 MySQL táblázatot használ (az SQL kód a fájlban van tables.sql). Az első tárolja az adatokat a felhasználói fiókokról. A második tárolja az input kísérletek számát.
Felhasználói tábla áramkör.
A rendszer nem használ jelszavakat, ami látható a diagramban. Láthatja az oszlopot jelképes. az oszlophoz szomszédos tokenekkel token_Valitás. A token telepítve van, amint a felhasználó csatlakozik a rendszerhez, beállítja e-mailjét, hogy üzenetet küldjön (egy kicsit erről a következő blokkban). Oszlop token_Valitás Az időt 10 perccel később állítja be, majd a token megszűnik, hogy releváns legyen.
A táblázat áramkörét, amely figyelembe veszi az engedélyezési kísérletek számát.
Mindkét táblázatban az IP-címet a feldolgozott formában tárolja az integer mező IP2Long funkciójával.
Most írhatunk egy kis PHP kódot. A rendszer fő funkcionalitása az osztályba kerül User.class.php.amit az alábbiakban láthatunk.
Ez az osztály aktívan használja az Idormot (DOCS), ezek a könyvtárak minimálisan szükséges eszközök az adatbázisok működéséhez. Feladja az adatbázishoz való hozzáférést, a tokenek generációját és az érvényesítését. Ez egy egyszerű felület, amely lehetővé teszi, hogy könnyen csatlakoztassa a regisztrációs rendszert a webhelyére, ha PHP-t használ.
User.class.php.
Osztályfelhasználó (// Privát ORM-ügy Privát $ orm; / ** * Keressen egy felhasználót a TOCKEN-en. Csak érvényes tokeneket vesznek figyelembe. A TOKEN-t csak 10 percig generálják * @param String $ token. Ez az kívánt tocken * @return felhasználó. Visszaadja a funkció felhasználói értékét * / Nyilvános statikus funkció FindbyToken ($ token) (// Keressen egy tokenet az adatbázisban, és győződjön meg róla, hogy az aktuális időbélyegző $ eredmény \u003d ORM :: for_table ( REG_USERS ") -\u003e Hol (" token ", $ token) -\u003e ahol_raw (" token_validity\u003e most () ") -\u003e find_one (); ha (! $ Eredmény) (Harse visszaadás) ($ eredmény) ;) / ** * A felhasználó engedélyezése vagy regisztrálása * @param string $ e-mail. Egyéni e-mail cím * @return user * / nyilvános cím ($ e-mail) (// Ha ilyen felhasználó már létezik, adja vissza a felhasználói funkció értékét Az adatbázisban tárolt megadott e-mail címről, ha (a felhasználó :: létezik (: E-mail) ($ e-mail)) (Új felhasználó visszaadása ($ e-mail);) // egyébként új felhasználót hozhat létre TV az adatbázisban, és visszaadja a funkció felhasználói értékét :: Hozzon létre a megadott e-mail visszaadási felhasználónél :: Create ($ e-mail); ) / ** * Hozzon létre egy új felhasználót, és mentse el az adatbázisba * @param string $ e-mail címet. Felhasználói e-mail cím * @return user * / privát statikus funkció létrehozása ($ e-mail) (// Írjon új felhasználót, és adja meg a felhasználói funkció eredményét ezekből az értékekből $ eredmény \u003d ORM :: for_table ("Reg_Users") - \u003e Hozzon létre (); $ eredmény-\u003e e-mail \u003d $ e-mail; $ eredmény -\u003e mentés (); új felhasználó ($ eredmény);) / ** * Ellenőrizze, hogy ilyen felhasználó létezik-e az adatbázisban, és visszaadja a változó értékét A változó * @param string $ e-mail. Egyéni e-mail cím * @return Boolean * / Public Static funkció létezik ($ e-mail) (// Van-e felhasználó az adatbázisban? $ Eredmény \u003d ORM :: for_table ("Reg_Users") -\u003e hol ("email", $ e-mail ) -\u003e szám (); $ $ eredmény \u003d\u003d 1;) / ** * Új felhasználói objektum létrehozása * @param példány $ param orm, id, e-mail vagy 0 * @return felhasználó * / nyilvános funkció __construct ($ param \u003d null) (Ha ($ Param PursoF ORM) (// ORM-ellenőrzés történik $ this-\u003e orm \u003d $ param;), ha (IS_STRING ($ param)) (// e-mail ellenőrzése $ this-\u003e om \u003d om :: for_table ("reg_users") -\u003e hol ("email", $ param) -\u003e find_one ();) más ($ id \u003d 0, ha (IS_NUMERIC ($ param)) (// felhasználói azonosítót továbbítanak az értékre a $ param $ id érték \u003d $ param;) egyébként, ha (BETSET ($ _ SESSESS) ["LOBLEID"])) (// egyébként lásd a $ id \u003d $ _session ["loginid"];) $ this-\u003e orm \u003d ORM :: for_table ("REG_USERS") -\u003e Hol ("ID", $ ID) -\u003e find_one ();)) / ** * új SHA1 engedélyezési token létrehozása, írja Az adatbázisban és visszaadja értékét * @return string * / nyilvános függvény generateen () (// generál egy tokenet egy meghatalmazott felhasználó számára, és mentse el $ token \u003d SHA1 ($ this this-\u003e email.time (). Rand (0 , 1000000))); // mentési tokenek az adatbázisban //, és jelölje meg azt, hogy ez a következő percek közül 10-ben van-e a $ this-\u003e orm-\u003e beállítása ("token", $ token); $ this-\u003e orm-\u003e set_expr (token_valididity "," Addtime (most (), "0:10") "); $ This-\u003e Om-\u003e Mentés (); Vissza $ token; ) / ** * A felhasználó engedélyezése * @return void * / nyilvános funkció bejelentkezés () (// Jelölje meg a felhasználót az engedélyezett $ _session ["loginid"] \u003d $ this-\u003e orm-\u003e id; // Frissítse az értéket A Last_Login Base Field $ this-\u003e om-\u003e set_expr ("last_login", "most ()"); $ this-\u003e orm-\u003e mentés ();) / ** * megsemmisíti a munkamenetet, és elosztja a felhasználót * @return Void * / Public Function Logout () ($ _session \u003d Array (); unset ($ _ _);) / ** * Ellenőrizze, hogy a felhasználó jött * @return Boolean * / Public Function Loggledin () This-\u003e orm-\u003e id) && $ _session ["loginid"] \u003d\u003d $ this-\u003e orm-\u003e id;) / ** * ellenőrzés a felhasználó adminisztrátora * @return Boolean * / Public Function Isadmin () $ this-\u003e rang () \u003d \u003d "rendszergazda";) / ** * Keressen egy felhasználói típust, talán adminisztrátor vagy rendszeres * @return * @return * / nyilvános funkció rang () (ha ($ this-\u003e orm-\u003e rang) \u003d\u003d 1) (Visszatérés "Rendszergazda";) Visszatérés "Regular";) / ** * módszer lehetővé teszi, hogy magán információs Felhasználói fiók * A felhasználó minőségi tulajdonságai * @param String $ Key Property Feature Fogadó hozzáférés fogadása * @return vegyes * / nyilvános funkció __get ($ billentyű) (ha ($ this this-\u003e ор -\u003e $ billentyű)) $ this-\u003e orm -\u003e $ kulcs; ) Null visszatér; )))))))))
A tokeneket az SHA1 algoritmus segítségével állítják elő, és az adatbázisban tárolják. A MySQL időfunkcióit használom annak érdekében, hogy a tokenzitás relevanciájának 10 perces korlátozását állapítsam meg.
Ha a token halad a hitelesítési eljárás, mi közvetlenül beszél a felvezető, hogy fontolja meg csak érmek, akiknek nincs lejárati dátumot, tárolt TKEN_VALIDY oszlopban.
Ne feledje, hogy a mágikus módszert használom __kap. Dokumentumkönyvtárak a fájl végén, hogy elfogják a felhasználói objektum tulajdonságaihoz való hozzáférést.
Ennek köszönhetően lehetővé válik az adatbázisban tárolt információk elérése a tulajdonságok köszönhetően $ User-\u003e Email, $ user-\u003e token és mtsai. A következő kódfragmensben fontolja meg például az osztályok használatát.
Védett oldal
Egy másik fájl, amely hasznos és szükséges funkcionalitást tárol, fájl. funkciók.php.. Számos úgynevezett helpers - olyan asszisztens funkció, amely lehetővé teszi, hogy hozzon létre egy tisztább és olvasható kódot más fájlokban.
funkciók.php.
Funkció Send_email ($, $ to, $ Tárgy, $ üzenet) (// Helper, e-mail küldése $ headers \u003d "MIME-verzió: 1.0". "" " / Síkság; Charset \u003d UTF-8 "." "\\ R \\ n"; $ fejlécek. \u003d "Tól től:". $ -Tól. "" R \\ n "; );) A get_page_url () funkció (// meghatározza az US PHP-fájlt url \u003d "http" (üres ($ _ Server ["https"])? "": "S"). ["Server_name"]; ha ($ _ Server ["$ _ kiszolgáló [" Request_uri "]) && $ _server [" request_uri "]! \u003d" ") ($ Url. \u003d $ _Server [" request_uri "];) más ($ url) . \u003d $ _Server ["path_info"];) $ URL visszaadása;) Funkció Rate_Limit ($ IP, $ Limit_Hour \u003d 20, $ Limit_10_min \u003d 10) (// a bemeneti kísérletek száma az utolsó órában ezen az IP-címen $ count_hour \u003d ORM :: for_table ("REG_LOGIN_ATTEMT") -\u003e hol ("IP", sprintf ("% u", ip2long ($ ip)) -\u003e ahol_raw ("TS\u003e alime (most ()," 1:00 " ) ") -\u003e Count (); // száma beviteli kísérleteket az utolsó 10 perc ezen az IP-cím $ Count_10_min \u003d ORM :: FOR_TABLE (" REG_LOGIN_ATTEMPT ") -\u003e WHERE (" IP”, SPRINT f ("% u", ip2long ($ IP))) -\u003e ahol_raw ("TS\u003e alime (most ()," 0:10 ")") -\u003e szám (); Ha ($ count_hour\u003e $ limit_hour || $ count_10_min\u003e $ limit_10_min) (dobja az új kivételt ("túl sok bejelentkezési kísérletet!");)))))))) ($ IP, $ e-mail) (// Hozzon létre egy új bejegyzést az asztalhoz Ez úgy véli, hogy a beviteli kísérletek száma $ login_attemple \u003d ORM :: for_table ("REG_LOGIN_ATTEMT") -\u003e Hozzon létre (); $ login_attempt-\u003e e-mail \u003d $ e-mail; $ login_attempt-\u003e ip \u003d sprintf ("% u", ip2long ($ ); $ login_attempt-\u003e Mentés ();) Funkció átirányítás ($ URL) (fejléc ("Helyszín: $ url"); Kilépés;
Funkciók rate_limit és rate_limit_tick. Ezeket az első kísérlet pillanatától kezdve az engedélyezési kísérletek száma követi. A beviteli kísérletet az adatbázisban rögzítik a REG_LOGIN_ATTEMPTEM oszlopban. Ezeket a funkciókat az úgynevezett feldolgozása során, és az űrlap elküldése adatokat láthatjuk a következő kódrészlet.
A kód az alábbi fájlból származik. index.php. És feldolgozza az űrlap küldését. Visszaad egy JSON-választ, amely viszont a jquery feldolgozása a fájlban eszközök / js / script.jsamit már szétszereltünk korábban.
index.php.
Próbálja ki (ha (! Üres ($ _ POST) && isset ($ _ kiszolgáló ["http_x_requested_with"])) (// A JSON fejléc fejléc ("Tartalomtípus: Alkalmazás / JSON"); // Ez az e-mail cím Érvényes, ha (! Betétet ($ _ Post ["e-mail"]) ||! Filter_var ($ _ Post ["e-mail"], filter_validate_email)) (dobja az új kivételt ("Adjon meg egy érvényes e-mailt");) // . Függetlenül attól, hogy a felhasználó bejelentkezhet-e, meghaladja a megengedett kapcsolatok számát? (FUNKCIÓS.PHP fájl további információért) Rate_limit ($ _ Server ["Remote_addr"); _ Server ["Remote_addr"], $ _post ["e-mail"]); // Küldj egy levelet a felhasználó $ üzenethez \u003d "", $ e-mail \u003d $ _post ["e-mail"]; $ Tárgy \u003d "A bejelentkezési linkje" ; ha (! Felhasználó :: létezik ($ e-mail)) ($ Tárgy \u003d "Köszönöm a regisztrációt!"; $ üzenet \u003d "Köszönjük, hogy regisztrálta a webhelyünkön! \\ n \\ n";) // Regisztrálja a felhasználót $ user \u003d Felhasználó :: LOGINGORREGISTER ($ _ POST ["E-mail"]); $ üzenet. \u003d "Bejelentkezhet az URL-ről: \\ n" ; $ üzenet. \u003d get_page_url (). "? tkn \u003d" $ user-\u003e generateetoken () "." \\ n \\ n "; $ Üzenet. \u003d "A link 10 perc múlva automatikusan lejár."; $ kapott \u003d Send_Email ($ inemail, $ _post ["e-mail"], $ Tárgy, $ üzenet); Ha (! $ Eredmény) (új kivételt dobott ("Hiba történt az e-mail küldése. Kérjük, próbálja újra.");) Die (Json_encode (Array ("üzenet" \u003d\u003e "Köszönöm! A beérkezett üzenetekhez. Ellenőrizze a spam mappáját is. "))));));)));))); (Json_encode (hiba" \u003d\u003e 1, "üzenet" \u003d\u003e $ e-\u003e getmessage ()))
A sikeres engedélyezési / regisztrációs kód után a felhasználó hivatkozik a felhasználó engedélyezésére. A TOOCKEN megfizethetővé válik, mert A generált link módszer változójaként továbbítják $ _Get. A TKN markerrel
index.php.
Ha ($ _ get ["tkn"])) (// ez a token az engedélyezésre érvényes? $ User \u003d felhasználó :: Findbytoken ($ _ get ["tkn"]); ha ($ felhasználó) (// Igen, az átirányítás a $ user-\u003e bejelentkezés (); átirányítás ("Protected.php") védett oldalára;) // nem, a token nem érvényes. Végezze el az átirányítást az űrlapon az átirányítás engedélyezése / regisztrálása ("index.php");)
$ User-\u003e bejelentkezés ()
hozza létre a szükséges változókat a munkamenethez, hogy a felhasználó, amely a későbbi webhelyoldalakon keresztül néz, folyamatosan engedélyezett.
Hasonlóképpen, a funkció kilépésének funkciójának feldolgozása is elrendezve van.
index.php.
Ha ($ _ get ["logoout"])) ($ felhasználó \u003d új felhasználó (); ha ($ user-\u003e logedin ()) ($ user-\u003e kijelentkezés ();) átirányítás ("index.php" );)
A kód végén ismét átirányítom az index.php-t, így a paraméter ? Logout \u003d 1 Nem szükséges az URL által nem szükséges.
A fájlunk. index.php. Hozzáadás szükséges. Protection - Nem akarjuk az embereket, akik valaha miután bejelentkezett a rendszert újra látta a regisztrációs űrlapot. E célból a módszert használjuk $ User-\u003e logedin ().
index.php.
$ Felhasználó \u003d új felhasználó (); Ha ($ user-\u003e logedin ()) (átirányítás ("Protected.php");)
Végül itt van egy olyan kód, amely lehetővé teszi a webhely oldalainak védelmét, és csak az engedélyezés után elérhetővé teszi.
védett.php.
// A webhelyének minden oldalának védelme érdekében csatlakoztassa a fájlt // main.php fájlt, és hozzon létre egy új felhasználói objektumot. Ez az egyszerű! Igény: _once "magában foglalja / main.php"; $ Felhasználó \u003d új felhasználó (); Ha (! $ User-\u003e logedin ()) (átirányítás ("index.php");)
Az ellenőrzés után biztos lehet benne, hogy a felhasználó sikeresen engedélyezett. Az objektum tulajdonságai segítségével az adatbázisban tárolt információkat is elérheti. $ Felhasználó.. Az e-mailek és a felhasználó és az állapot megjelenítéséhez használja ezt a kódot:
Echo "Az Ön e-mailje:" $ user-\u003e e-mail; Echo "Az Ön rangja:" $ user-\u003e rang ();
Módszer () Itt használják, mert az adatbázist általában tárolják (0 rendszeres felhasználó számára, 1 az adminisztrátorhoz), és meg kell konvertálnunk ezt az adatokat az általunk kapcsolódó állapotokra, amelyekhez kapcsolódnak, és ez a módszer segít.
Ahhoz, hogy rendszergazda legyen egy rendszeres felhasználóból, egyszerűen szerkessze a felhasználói bejegyzést a PHPMYADmin (vagy bármely más program segítségével, amely lehetővé teszi az adatbázisok kezelését). A rendszergazda állapota nem ad kiváltságot, ebben a példában az oldalon megjelenik, hogy Ön adminisztrátora - és ez az.
De mi a teendő vele - ez a saját belátása szerint írhat és létrehozhat egy olyan kódot, amely bizonyos jogosultságokat és lehetőségeket határoz meg a rendszergazdák számára.
Befejeztük!
Ezzel a hihetetlenül szuper kvázi egyszerű formában befejeztük! Használhatja azt a PHP webhelyén, elég könnyű. Ön is módosíthatja magát, és így szeretne.
Az anyag elkészített Denis Baby speciálisan a webhely oldalán
P.S. Szeretne továbblépni a PHP és az OOP elsajátításában? Figyeljen a helyszíni épületek különböző aspektusaira, beleértve a PHP programozást, valamint egy ingyenes kurzust a CMS rendszer létrehozására a PHP-n a nulláról az OOP használatával:
Tetszett az anyag, és szeretnék köszönetet mondani? Csak részesedjen meg barátaival és kollégáival!
1. Kezdjük a felhasználók létrehozásával az adatbázisban. Ez tartalmaz felhasználói adatokat (bejelentkezési és jelszó). Menjünk Phpmyadminbe (ha létrehozunk egy adatbázist a számítógépen http: // localhost / phpmyadmin /). Hozzon létre egy táblát felhasználók.3 mező lesz.
A MySQL adatbázisban létrehozom, létrehozhat egy másik adatbázisban. Ezután állítsa be az értékeket a képen:
Kattintson a " Mentés- Szóval van egy asztalunk. 2. Meg kell kapcsolódni a táblázathoz. Hozzunk létre egy fájlt bd.php.. Tartalma:
Az én esetemben úgy néz ki, mint ez:
Mentse a bd.php-t. Kiváló! Van egy asztalunk az adatbázisban, a kapcsolatot. Most elkezdheti létrehozni egy olyan oldal létrehozását, amelyen a felhasználók elhagyják az adatokat. 3. Hozzon létre egy fájlt reg.php. Tartalommal (minden megjegyzés belül):