PHP-ga ro'yxatdan o'tish. PHP va MySQL uchun oddiy foydalanuvchilarni ro'yxatga olish tizimini yaratish
Saytga tashrif buyuruvchilarni saytdagi ba'zi guruhlarga bo'lish uchun kichik tizimni o'rnatishga ishonch hosil qiling pHP-da ro'yxatdan o'tish.. Shunday qilib, siz an'anaviy ravishda tashrif buyuruvchilarni tasodifiy tashrif buyuruvchilar va qimmatbaho ma'lumotlarga ega bo'lgan ko'plab imtiyozli guruhlarga bo'lingansiz.
Aksariyat hollarda, bitta faylda PHPda yozilgan ko'proq soddalashtirilgan ro'yxatga olish tizimidan foydalaning. ro'yxatdan o'tish.php..
Shunday qilib, biz biroz chalg'itdik va endi ro'yxatga olish faylini batafsilroq ko'rib chiqamiz.
File Ro'yxatdan o'tish .php.
Siz vaqt massasini olib qo'ymaganingiz uchun, foydalanuvchilarni to'playdigan tizimni yarating, ulardan minimal aloqa ma'lumotlarini olib boring. Bunday holda, hamma MySQL ma'lumotlar bazasiga taqdim etiladi. Eng yuqori tayanch tezligi uchun biz Myisam formati va UTF-8 kodlashida biz foydalanuvchilar jadvalini yaratamiz.
Eslatma! Siz barcha skriptlarni bitta kodlashda yozishingiz kerak. Barcha sayt fayllari va MySQL ma'lumotlar bazasi bitta kodlashda bo'lishi kerak. Eng keng tarqalgan UTF-8 va Windows-1251 kodlari.
Siz hamma narsani kodlashda yozishingiz kerak bo'lgan narsalar uchun biz qandaydir tarzda gaplashamiz. Bu orada, ushbu ma'lumotlarni aniq belgilarni yaratadigan qat'iy qoida sifatida olib boring, aks holda skriptlarning ishi bilan bog'liq muammolar bo'ladi. Albatta, dahshatli narsa, albatta, lekin skriptda xatolarni topish uchun vaqtni yo'qotmaydi.
Ssenariyning o'zi qanday ishlaydi?
Biz hamma narsani soddalashtirishni va tezkor natijaga erishishni xohlaymiz. Shuning uchun biz foydalanuvchilardan faqat login, elektron pochta va uning parolini olamiz. Va spam robotlaridan himoya qilish uchun kichik CAPTCHA-ni o'rnating. Aks holda, Londonning har qanday bola bir necha daqiqada butun poydevorni ohakli foydalanuvchilar bilan to'ldiradigan kichik robot parserini yozadi va uning dahosi va jazosizligi va jazosizligi va jazosizligi va jazosizligi bilan xursand bo'ladi.
Mana, skriptning o'zi. Hammasi bitta faylda yozilgan. ro'yxatdan o'tish.php.:
!
`; // qizil savol belgisi $ Sha \u003d $ sh. "Skripts / Pro /"; // Asosiy papkaga o'tish $ BG \u003d `BGCOLOR \u003d" # E1FJ "`; // Fon rangli chiziqlar?\u003e Ro'yxatdan o'tish script sterny.css "/\u003e
Bunday holda, skript o'zimga murojaat qiladi. Va bir shakl va yozilgan ma'lumotlar beruvchidir. Fayl ZIP arxivi tomonidan siqilganligi va konfiguratsiya faylini siqib chiqaradi va konfiguratsiya faylini, foydalanuvchi ma'lumotlar bazasi funktsiyasini o'z ichiga olgan fayl va registrator. Statsioner.php Fayl o'zi. Shuningdek, ish joylari uchun javobgar bo'lgan bir nechta fayllar.
Reg.Ru: domenlar va xosting
Rossiyada eng katta magnitafon va xosting provayderi.
Texnik xizmat ko'rsatish uchun 2 milliondan ortiq domen nomlari.
Rivojlantirish, domen uchun pochta, biznes echimlari.
Dunyo bo'ylab 700 mingdan ortiq mijozlar o'z tanlovlarini o'tkazdilar.
* Sichqonchani to'xtatish uchun sichqonchani bosing.
Oldinga oldinga
PHP va MySQL uchun oddiy foydalanuvchilarni ro'yxatga olish tizimini yaratish
Ro'yxatdan o'tish tizimini yaratish katta ishdir. Elektron pochta manzillarini bajaradigan kodni yozishingiz, pochta xabarlarini tasdiqlash va qolgan shakllar maydonlarini tasdiqlash va boshqa ko'p narsalarni tasdiqlovchi xabarni yozishingiz kerak.
Va bularning barchasini yozganingizdan keyin ham, foydalanuvchilar istamay Ratifikatsiya qilinadi, chunki Buning uchun ba'zi harakatlarni talab qiladi.
Ushbu darsda biz parollarni talab qilmaydigan va umuman pardalarni saqlamaydigan juda oddiy ro'yxatga olish tizimini yaratamiz! Natija o'zgartirish va mavjud PHP-saytga qo'shish oson bo'ladi. Qanday ishlashini aniqlamoqchimisiz? Quyida o'qing.
Bizning super oddiy tizimimiz qanday ishlaydi:
Biz avtorizatsiya va ro'yxatdan o'tkazish shaklini birlashtiramiz. Ushbu shaklda elektron pochta manzili va ro'yxatdan o'tish tugmachasini kiritish uchun maydon mavjud; - Elektron pochta manzil maydonini to'ldirishda ro'yxatdan o'tish tugmasini bosish orqali yangi foydalanuvchi yaratiladi, ammo agar elektron pochta manzili ma'lumotlar bazasida topilmasa.
Shundan so'ng, foydalanuvchi tomonidan ma'lumotnoma shaklida ko'rsatilgan foydalanuvchi tomonidan ko'rsatilgan foydalanuvchi tomonidan ko'rsatilgan foydalanuvchiga yuboriladigan ma'lum bir tasodifiy noyob belgilar to'plami yaratilgan; - Havola orqali foydalanuvchi bizning saytimizga o'tadi. Tizim belgining mavjudligini va foydalanuvchiga ruxsat berganligini aniqlaydi;
Ushbu yondashuvning afzalliklari:
Parollarni saqlash va dala tekshiruvini o'tkazishning hojati yo'q; - Parolni, maxfiy savollarni qayta tiklashning hojati yo'q; - Foydalanuvchi ro'yxatdan o'tgan yoki ruxsat bergan paytdan boshlab, ushbu foydalanuvchi sizning kirish joyingizda (elektron pochta manzili to'g'ri) ekanligiga amin bo'lishingiz mumkin (elektron pochta manzili to'g'ri); - nihoyatda sodda ro'yxatga olish jarayoni;
Kamchiliklari:
Foydalanuvchi hisobining xavfsizligi. Agar kimdir pochtaga kirish huquqiga ega bo'lsa, u tizimga kirishi mumkin. - Elektron pochta muhofaza qilinmaydi va ushlab turilishi mumkin. Shuni yodda tutingki, bu savol tegishli va parol unutilgan bo'lsa va u ma'lumot uzatish (login / parol) foydalanilmaydigan yoki avtorizatsiya tizimida yoki avtorizatsiya tizimida; - Siz konfiguratsiyani sozlashda sizga pochta serveriga qanday ehtiyoj borligini sozlaganingizda, avtorizatsiyaga oid xabarlar spamda bo'ladi;
Bizning tizimimizning afzalliklari va kamchiliklarini taqqoslash, tizimga tizim yuqori darajada yodgorlikka ega (oxirgi foydalanuvchi uchun eng qulay) va shu bilan birga xavfsizlik ko'rsatkichlari past.
Shunday qilib, muhim ma'lumotlar bilan ishlamaydigan forumlar va xizmatlarga ro'yxatdan o'tish uchun foydalaning.
Ushbu tizimdan qanday foydalanish kerak
Agar siz tizimdan foydalanuvchilarni saytingizda avtorizatsiya qilish uchun tizimdan foydalanishingiz kerak bo'lsa va siz ushbu darsni suyaklar bilan qismlarga ajratishni xohlamaysiz, bu sizga kerak bo'lgan narsa:
Darsga biriktirilgan manbalarni yuklab olishingiz kerak - arxivda faylni toping stollar.SQL PhpMyAdmin-da import variantidan foydalanib, uni ma'lumotlar bazangizga olib kiring. Muqobil usul: Ushbu faylni matn muharriri orqali oching, SQL so'rovini nusxalash va uni bajaring; - Ochiq o'z ichiga / main.php. va ma'lumotlar bazangiz bilan aloqa sozlamalarini to'ldiring (bazaning uy egasi va nomi bilan aloqa qilish uchun foydalanuvchi va parolni ko'rsating). Xuddi shu faylda siz tizim tomonidan yuborilgan xabarlar uchun asl manzil sifatida foydalaniladigan elektron pochta xabarlarini belgilashingiz kerak. Ba'zi xostlar xost boshqaruv panelidan yaratilgan ushbu elektron pochta manzilini ko'rsatmagan holda, ushbu elektron pochta manzilini ko'rsatmaydi, shuning uchun haqiqiy manzilni ko'rsating; - Barcha fayllarni yuklang index.php., himoyalangan.php. Aktivlar va mezbonlaringizga FTP orqali papkalarni o'z ichiga oladi; - Avtorizatsiya shaklini namoyish qilishingiz kerak bo'lgan har bir PHP sahifasiga quyidagi kodni qo'shing;
Talab qiladigan_once '-ni o'z ichiga oladi / Main.php'; $ Foydalanuvchi \u003d yangi foydalanuvchi (); Agar (! Foydalanuvchi- & Gtloggedin ()) (yo'naltiruvchi ("index.php"); - Tayyor!
Qiziqqanlar uchun bularning barchasi qanday ishlaydi - quyida o'qish uchun oldinga boring!
Birinchi qadam - avtorizatsiya shaklining HTM-kodini yozish. Ushbu kod faylda joylashgan. index.php.. Ushbu faylda shuningdek, avtorizatsiya tizimining ma'lumotlari va boshqa foydali funktsiyalari mavjud bo'lgan PHP kodi mavjud. Siz ko'proq ma'lumotni PHP kodini ko'rib chiqishga bag'ishlangan bo'limda siz ko'proq ma'lumot olishingiz mumkin.
index.php.
Qo'llanma: PHP va MySQL bilan Super Oddiy ro'yxatga olish tizimi
Bosh qismida (teglar o'rtasida)
va) Men asosiy uslublarni bog'lab qo'ydim (bu darsda ular tushunmaydilar, shuning uchun siz ularni o'zingiz ko'rishingiz mumkin. Aktivlar / CSS / Style.CSS papkasida). Yopilish yorlig'iga
Men JQuery kutubxonasini va biz quyida biz yozadigan JQY.JS faylini uladim.
JavaScript.
jQuery Funktsiyadan foydalanib "Restat / Verite" tugmasini bosib o'tadi e.PreventDeault () Va Ajax so'rovlarini yuboradi. Server javobiga qarab, u yoki bu xabarni ko'rsatadi va keyingi harakatlar /
"Ajax" so'rovining hozirgi holatini namoyish qilish uchun shaklga qo'shildi (bu usullar tufayli mumkin bo'ldi) ajaxStart ()) I. ajaxComplution ()bu fayl oxiriga yaqinroq topishingiz mumkin).
Bu sinf spinning animatsion gif falti (so'rov qayta ishlanganligini bildirgandek), shuningdek qayta yuborish shaklini keltirib chiqaradigan bayroq sifatida ishlaydi (Ro'yxatdan o'tish tugmasi bir marta bosilganda). Sinf .Logedin. - Bu yana bir bayroq, elektron pochta xabarlari yuborilganda o'rnatiladi. Ushbu bayroq darhol shakl bilan keyingi harakatlarni to'xtatadi.
Ma'lumotlar bazasi sxemasi
Bizning sodda ro'yxatga olish tizimimiz 2 ta mysql jadvallaridan foydalanadi (SQL kodi faylda stollar.SQL). Birinchi do'konlar ma'lumotlari. Ikkinchi do'konlar kirishga urinishlar soni to'g'risida ma'lumot.
Foydalanuvchi stollari aylanmasi.
Tizim diagrammada ko'rinadigan parollardan foydalanmaydi. Siz ustunni ko'rishingiz mumkin token. ustunga yaqin tokenlar bilan token_vollik. Foydalanuvchi tizim tizimga ulangan yordamida belgi o'rnatiladi (keyingi blokda bu haqda biroz ko'proq) elektron pochta xabarlarini o'rnatadi. Ustun token_vollik 10 daqiqadan so'ng vaqtni belgilaydi, shundan keyin token tegishli bo'lishni to'xtatadi.
Avtorizatsiya qilingan urinishlar sonini ko'rib chiqadigan stol davlati.
Ikkala jadvalda ham IP-manzili butun sondagi IP2long funktsiyasidan foydalanib ishlangan shaklda saqlanadi.
Endi biz ozgina phpp kodini yozishimiz mumkin. Tizimning asosiy funktsional imkoniyatlari sinfga ishonib topshirilgan Foydalanuvchi.class.php.Siz quyida ko'rishingiz mumkin.
Ushbu sinf idor (hujjatlar) dan faol foydalanmoqda, bu kutubxonalar ma'lumotlar bazalari bilan ishlash uchun minimal darajada zarur vositalar mavjud. U ma'lumotlar bazasiga kirishni, tokenlarni generatsiya qilish va ularni tasdiqlash jarayonini qayta ishlaydi. Bu oddiy interfeys, agar u PHP-dan foydalansa, ro'yxatdan o'tish tizimini saytingizga osongina ulash imkonini beradi.
Foydalanuvchi.class.php.
Class foydalanuvchisi (// Xususiy Orm harfi. / ** * foydalanuvchi topishda foydalaniladi. Tucken ushbu vaqtdan boshlab 10 daqiqa davomida * @param stukti. Bu Siz istagan token * @/ouse statik funktsiyasi ($ token) funktsiyaning qiymatini qaytaring (//) joriy vaqtning qiymatini qaytaring va joriy vaqtning belgilarini kiriting. $ \u003d Or_tle (" REG_USERS ") -\u003e Qayerda (" Token ", token (" Token_fenlity "\u003e hozir (" Token_fenlity \u003e\u003e (! Natija) yangi foydalanuvchini qaytarish ($ ni bosing) ;) / ** * avtorizatsiya qiling yoki ro'yxatdan o'ting yoki ro'yxatdan o'ting. Custom elektron pochta manzili * @ imonnn foydalanuvchi manzili ($ elektron pochta manzili) (// foydalanuvchi mavjud bo'lsa, foydalanuvchi funktsiyasining qiymatini qaytaring Ma'lumotlar bazasida saqlangan ko'rsatilgan elektron pochta manzilidan ($ elektron pochta) ($ elektron pochta) ($ elektron pochta);) yangi foydalanuvchini yarating Ma'lumotlar bazasida televizor va funktsiyaning qiymatini qaytarish Foydalanuvchi :: Belgilangan elektron pochtadan qaytish foydalanuvchisi :: ni yaratish ($ elektron pochta); ) / ** * * Yangi foydalanuvchini yarating va ma'lumotlar bazasiga * @param string $ elektron pochta manziliga yuboring. Foydalanuvchi elektron pochta manzili * / Xususiy statik funktsiya ($ elektron pochta) (// Foydalanuvchi funktsiyasi (// Foydalanuvchi funktsiyasini ushbu qiymatlardan qaytaring va foydalanuvchi funktsiyasini ushbu qiymatlardan qaytaring. \u003e Yaratish (); $ 1-pochta \u003d $ elektron pochta; $ (Natija); Yangi foydalanuvchini qaytarish ($); Yangi foydalanuvchini qaytarish va o'zgaruvchini qaytarib berishni tekshiring O'zgaruvchan * @param string $ elektron pochta. Maxsus elektron pochta manzili * / jamoat statik funktsiyasi mavjud ($ elektron pochta) (// Ma'lumotlar bazasida foydalanuvchi mavjud: "REG_USSERS") -\u003e Qayerda ("REG_USSER") ) -\u003e Hisoblash (); $ 1; 1%; Parcaram MERM, ID, elektron pochta funktsiyasi __cravecrul (parametr \u003d null) (agar ($ paramdagi misol) (// Orm Tekshiri) $ ($ param)) ($ param)) ($ param)) ($ param)) ($ param)) ($ param)) ($ param)) bo'lsa, ($ param)) ($ param)) ($ param)) ($ param)). for_table ("REG_USERS") -\u003e Find_one () ($ id) ($ id)) ($ identifikator) (/ $ identifikator) qiymatga uzatiladi) $ paramli identifikatori \u003d $ param; ($ _ sessiya) ("LOGINED"] ("LOGDED"]; "LOGINED"]; "LOGINED"]; Sessiyani ko'ring \u003d Orm :: uchun: "REG_USERS") -\u003e Qayerda ("ID", $ identifikator, $ () yangi Sha1 avtorizatsiya tokenini yarating, yozadi Ma'lumotlar bazasida va uning qiymatini qaytaradi * @//cance \u003d SHA1 ($ bu- elektron pochta manziliga) ni yaratadi (/ ushbu- elektron pochta manzilini saqlang. RAND (0 , 1000000)); // ma'lumotlar bazasida saqlang // va uni faqat keyingi 10-sonli 10 taga tegishli deb belgilang ("token" ("token", token); $ bu-\u003e Orm-\u003e set_expr ("Token_fitlik", "Qo'shimcha (hozirgi ()," 0:10 ")"); $ bu-\u003e Om-\u003e Savol (); $ Tokenni qaytaring; ) / ** * Foydalanuvchi * @/gnid "Vazifasi $ _Siscy [" LOGINED "] \u003d $. // qiymatini tekshiring oxirgi_login bazasi maydoni $ bu-\u003e Om-\u003e set_expr ("So'nggi_login", "Endi () -\u003e ORM-\u003e) / ** * Sessiyani yo'q qiling va foydalanuvchi * @ @ garetornni ajrating bo'sh * / jamoat funktsiyasi LOGOUC ($ _Sesasce \u003d Caslay (). Boolean * / Jamoatchilik funktsiyasini kiritish uchun * **. Bu-\u003e orm-\u003e id) && loginsi "] \u003d\u003d $ bu-\u003e - bu Foydalanuvchi ma'muri * @ Odatiy Boolean * / Jamoatchilik funktsiyasi ISADMIN () $ bu-\u003e Rank () \u003d \u003d "Ma'mur";) / ** * yoki oddiy * / ommaviy funktsiya strelkasi (agar (agar ($ ($ ($ ($ ($ ($ ($) darajadagi »yoki oddiy funktsiyani toping \u003d\u003d 1) (qaytish "administrator";) "muntazam";) / ** * usul shaxsiy ma'lumot olishingizga imkon beradi Foydalanuvchi hisobidagi foydalanuvchi * @param string $ comective Mulk * / Jamoatning Aralash funktsiyasi __Get ($ ($ tugmasi) $ bu-\u003e Orm -\u003e $ tugmasi; ) Nolni qaytarish; )))
Tokenlar Sha1 algoritmidan foydalanib, ma'lumotlar bazasida saqlanadi. Men 10 daqiqalik tokenyning dolzarbligini o'zgartirish uchun MySQL vaqt funktsiyalaridan foydalanaman.
Token tekshiruv tartibini o'tkazganda, biz to'g'ridan-to'g'ri ishlov beruvchidan bevosita gaplashamiz, chunki biz uning muddati tugamaydigan tokenlarni hisobga olmaganda, tenkodiyon ustunida saqlanadi.
E'tibor bering, men sehrli usuldan foydalanaman __get. FAQAT BUYURTMA KUTUBXONALARI FAQAT OG'IRLASH FOYDALANISh UChUN FOYDALANISh UChUN FOYDALANISh UChUN.
Shu sababli, xususiyatlar tufayli ma'lumotlar bazasida saqlanadigan ma'lumotlarga kirish mumkin $ Foydalanuvchi-\u003e Elektron pochta, $ foydalanuvchi-\u003e token va boshqalar. Quyidagi kod parchasida, ushbu sinflardan qanday foydalanish kerakligini o'ylab ko'ring.
Himoyalangan sahifada
Foydali va zarur funktsiyalarni saqlaydigan boshqa fayl - bu fayl. funktsiya .php.. Boshqa fayllarda toza va o'qiladigan kodni yaratishga imkon beradigan yordamchi yordamchilar mavjud.
funktsiya .php.
Funktsiya Send_email ($ bu $ $ bu $ 1,0) (/ MIME-versiyasi). "MIME-versiyasi: 1.0"; sarlavhalar turi. \u003d "Tarkib turlari: matn / Oddiy; charset \u003d UTF-8 "." \\ R \\ n ";" \\ r \\ n ";" \\ r \\ n "; $, $, $ xabari, $ );) Funktsiyasi get_page_url (// AQSh PHP fayl URL manzilini aniqlang \u003d ': "HTTPS"]. ": //" $ _ server ["Server_name"]; agar ($ _ Server ["so'rov_uri"]); \u003d "so'rov_uri"] ($ ulang) ["so'rov_uti"]; "URL manzili . \u003d $ _Server ["Path_info"] Aktsiya RATE_LIMIT ($ IP, $ comme) ($ IP, $ comme) ($ IP-manzil) $ oxirgi soatlar soni $ Count_hour \u003d Orm: For_Table ("RR_LOGIN_RATFID") -\u003e "% U", IP2Long ($ IP)), IP2long ($ IP)) ) ") -\u003e Hisoblash () hisoblash (). // So'nggi 10 daqiqada ushbu IP-manzilning soni $ 1:" REG_LOGIN_ROTIFT "(" RR_LOGIN_TYFID ") -\u003e Qayerda (" IP ", Sprint f ("% U", IP2LONT ($ IP))) -\u003e Hozir ("0:10") "" "," Hisoblash (); Agar ($ scup_hour\u003e $ citch_hour || $ CREC_10_MIN) ("Kirish istisno" ($ IP, $ elektron) funktsiyasi (/ $ IP, $ elektron) funktsiyasi Kirish sonini hisoblab chiqadi - login_atting login_atty ("Requ_login_thittf" ("REG_LOGIN_TYFIFT" ("RR_LOPINFIFT" ("% U", IP2long ($ IP Funktsiyani qayta yo'naltirish ($ url: $ 'URL); Chiqish;
Vazifalar rate_limit. va rate_limit_tick. Ulardan keyin birinchi urinishda muddati tugagan vaqtincha avtorizatsiya qilingan urinishlar soni. Kirish urinishi reg_login_testary ustunidagi ma'lumotlar bazasida qayd etiladi. Ushbu funktsiyalar keyingi kod parchasidan ko'rinib turibdiki, shaklni qayta ishlash va yuborish paytida chaqiriladi.
Kod quyidagi fayldan olinadi. index.php. Va u shaklni yuborish jarayonini qayta ishlaydi. Bu JSSson javobini qaytaradi, bu esa o'z navbatida JQuery tomonidan qayta ishlanadi aktivlar / JS / scrips.jsilgari ilgari ajratganmiz.
index.php.
Urinib ko'ring (agar ($ _ post) && Server ["Http_x_requited_" Server ["Tarkib turkumi:" Tarkib turkumi "sarlavhasi (" Conent-Hone "sarlavhasi); // bu elektron pochta manzili (! $ _ Post ["Elektron pochta] (" Elektron pochta] ("Elektron pochta"], Filtr_validate_eil), Filtr_validate_eail), faylni kiriting ("Iltimos, to'g'ri elektron pochta xabarini kiriting";) . Foydalanuvchi kirishga ruxsat berilsa, ruxsat etilgan ulanishlar sonidan farq qiladimi? ("Rimote_ADDDDR"]) RATE_LILIMIT ("Rimote_ADDDDR"]) RATICE_LIMIT_TICKga ruxsat berish ($ _ Server ["Rimote_ADDDR"], $ _post ["Elektron pochta"]). Foydalanuvchi xabari \u003d '";" Elektron pochta "];" Elektron pochtangiz "]; $ mavzusi \u003d" Kirish havolasi " ; if (! Foydalanuvchi: $ elektron pochta) ($ mavzusi) ($ mavzusi) ($). $ \u003d "Bizning saytimizda ro'yxatdan o'tganingiz uchun rahmat! \\ n \\ n" ;/ avtorizatsiya qilish yoki Foydalanuvchi $ foydalanuvchisi \u003d Foydalanuvchi :: LOGOGRASTER ($ _ post ["Elektron pochta"]); $ xabarnoma. \u003d "Siz ushbu URL manzilidan kira olasizmi: \\ n" ; $ xabari. \u003d Conc_page_url (). "? TKK \u003d". $ -\u003e generatetik (). "\\ n \\ n"; $ Xabar. \u003d "10 daqiqadan so'ng havola avtomatik ravishda tugaydi."; $ natijasi \u003d Yubor_email, $ _post ["Elektron pochta"], $ Mavzu, $ xabari); Agar (! 1-avasta) bo'lsa ("E-pochtangizni yuborishda xatolik yuz berdi. Iltimos, urinib ko'ring (Jon_encode (" Xabar "\u003d" Rahmat! Biz havolani yuboramiz Kirish qutingizga. Spam papkangizni tekshiring.)) Tutib olish (Jon_encode (JSSON_USTROD (Maslahat (xato »\u003d\u003e 1\u003e $ ecmessage ())))))
Muvaffaqiyatli avtorizatsiya / ro'yxatdan o'tish kodidan so'ng foydalanuvchi foydalanuvchiga avtorizatsiyaga havolani yuboradi. Token arzonlashadi, chunki U yaratilgan havolanish usulida o'zgaruvchan sifatida uzatiladi $ _Get. Tn v marker bilan
index.php.
Agar (ISSSE ($ _ ni ["TNK"] avtorizatsiya qilish uchun haqiqiy emasmi? $ Foydalanuvchi \u003d: Findbytoken ("TNK"] Ha, bu $ foydalanuvchi -\u003e Kirish () himoyalangan sahifaga yo'naltirish uchun. REARIRECT ("Himoyalangan.php"); qayta yo'naltirishni avtorizatsiya qilish / ro'yxatdan o'tkazish ("index.php"););)
$ Foydalanuvchi-\u003e Login ()
seans uchun kerakli o'zgaruvchilarni yarating, shunda foydalanuvchi keyingi sahifalarni ko'rib chiqing, har doim ham ruxsat etiladi.
Shunga o'xshab, tizimdan chiqish uchun funktsiyani qayta ishlash ham tartibga solinadi.
index.php.
Agar (Issiqlik ($ _ olish))) ($ Foydalanuvchi \u003d yangi foydalanuvchi)) ($ Foydalanuvchi-\u003e Loggedin ()) ($ Foydalanuvchi-\u003e Loggedin ());) yo'naltirish ("index.php") ););)
Kodeksning oxirida men yana indeks.php-ga yo'naltiraman, shu bilan parametr ! Logout \u003d 1 URL tomonidan talab qilinmaydi.
Bizning faylimiz. index.php. Qo'shish kerak. Himoya - Biz tizimga kirgan odamlar ro'yxatga kiritilgan odamlarni yana ro'yxatga olishini istamasligimiz kerak. Ushbu maqsadlar uchun biz usuldan foydalanamiz $ Foydalanuvchi-\u003e Logredin ().
index.php.
$ Foydalanuvchi \u003d yangi foydalanuvchi (); Agar ($ foydalanuvchi-\u003e Loggedin ()) (yo'naltiruvchi ("himoyalangan.php");)
Va nihoyat, bu sizning saytingiz sahifalaringizni himoya qilish va uni faqat avtorizatsiyadan keyin amalga oshirishga imkon beradigan kodning bir qismi.
himoyalangan.php.
// Har bir sahifani saytingizdagi har bir sahifani himoya qilish uchun faylni ulang //// Main.Php va yangi foydalanuvchi ob'ektini yarating. Bu juda oson! Talab qiladigan_once '-ni o'z ichiga oladi / Main.php'; $ Foydalanuvchi \u003d yangi foydalanuvchi (); Agar (! Foydalanuvchi-\u003e Loggedin ()) (yo'naltirish ("index.php");
Ushbu chekdan so'ng siz foydalanuvchi muvaffaqiyatli vakolatga ega ekanligiga amin bo'lishingiz mumkin. Siz ma'lumotlar bazasida ob'ekt xususiyatlaridan foydalangan holda ma'lumotlar bazasida foydalanishingiz mumkin. $ Foydalanuvchi.. Elektron pochta va foydalanuvchi va uning holatini ko'rsatish uchun ushbu kodni ishlating:
Echo "Sizning elektron pochtangiz:" $ foydalanuvchi-\u003e Elektron pochta; Echo "Sizning martabangiz:" $ Foydalanuvchi-\u003e Rank ();
Usul rank () Bu erda ishlatilgan, chunki ma'lumotlar bazasi odatda saqlanadi (Ma'mur uchun 1 uchun 0) va biz ushbu ma'lumotlarni ular bizga tegishli bo'lgan holatlarga almashtirishimiz va bu usul yordam beradi.
Doimiy foydalanuvchidan ma'mur qilish uchun shunchaki foydalanuvchi arizasini phpMyAdmin (yoki ma'lumotlar bazalarini boshqarish imkonini beradigan boshqa dastur) orqali tahrirlash. Administrator maqomi hech qanday imtiyoz bermaydi, bu misolda siz ma'mursiz, va bu shunday.
Ammo bu bilan nima qilish kerak - bu sizning ixtiyoriyligingizda qoladi, siz o'z xohish-irodasini yozishingiz va yozib qo'yadigan kodni yaratishingiz mumkin.
Biz tugadik!
Ushbu ajoyib super kvazining oddiy shaklida biz tugadik! Siz uni PHP saytlarida ishlatishingiz mumkin, bu etarli. Shuningdek, siz uni o'zingiz ham o'zingiz ham o'zgartirishingiz va xohlaganingiz kabi qilishingiz mumkin.
Sayt saytida maxsus tayyorlangan denis chaqaloq
P.S. PHP va OOPni o'zlashtirishda davom etmoqchimisiz? Sayt binolari, shu jumladan PHP dasturlarini o'z ichiga olgan holda, shuningdek, PHP-da PHP-da PHP-da PHP-da PHP tizimini o'chirish bo'yicha bepul darslarga e'tibor bering:
Sizga material yoqdimi va minnatdorchilikni xohlaysizmi? Do'stlar va hamkasblaringiz bilan bo'lishing!
1. Mahsulotlar bazasida tizimga kirishni boshdan boshlaymiz. Unda foydalanuvchi ma'lumotlari (login va parol) bo'ladi. PhpMyAdmin-ga boraylik (agar siz kompyuteringizda ma'lumotlar bazasini yaratsangiz http: // lokalhhost / phpMyAdmin /). Stol yaratish foydalanuvchilar.U 3 ta sohaga ega bo'ladi.
Men uni MySQL ma'lumotlar bazasida yarataman, siz boshqa ma'lumotlar bazasida yaratishingiz mumkin. Keyin rasmda bo'lgan qiymatlarni o'rnating:
Ni bosing " Tejash"Shunday qilib, bizda stol bor. 2. Ushbu jadvalga ulanish kerak. Keling, fayl yaratamiz bd.php.. Uning mazmuni:
Mening holatimda u shunday ko'rinadi:
Bd.php-ni saqlang. Zo'r! Bizda ma'lumotlar bazasida stol bor, unga ulanish. Endi foydalanuvchi o'z ma'lumotlarini qoldiradigan sahifani yaratishni boshlashingiz mumkin. 3. Fayl yarating reg.php. Tarkibi bilan (ichidagi barcha sharhlar):