Oxirgi marta 2018-yil 5-aprelda Vinsi tomonidan o‘zgartirilgan.

Foydalanuvchiga kirish va ro'yxatdan o'tish har qanday CMS ilovalari uchun asosiy talabdir. Bu loyihani boshlashdagi dastlabki ish. Foydalanuvchi login autentifikatsiyasiga ega ilova anonim kirishni oldini olish orqali xavfsizlikni ta'minlaydi. Ilovamizda autentifikatsiyani yoqishning turli usullari mavjud, masalan, OAuth loginni yoqish yoki Yagona tizimga kirish (SSO) va shunga o'xshash boshqa usullarni amalga oshirish. Oldingi o'quv qo'llanmada biz qanday amalga oshirishni va shuningdek, haqida ko'rib chiqdik.

Ushbu misol ham kirish, ham ro'yxatdan o'tish funksiyalarini o'z ichiga oladi. Ro'yxatdan o'tgan a'zolarni saqlash uchun MySQL ma'lumotlar bazasidan foydalandim. Foydalanuvchini ro'yxatdan o'tkazish foydalanuvchidan ma'lumotlarni olish uchun kirishni o'z ichiga oladi. Ushbu shaklni topshirgandan so'ng, shakl ma'lumotlari PHP ga joylashtiriladi va ma'lumotlar bazasida saqlanadi. Ma'lumotlar bazasiga saqlashdan oldin foydalanuvchi paroli shifrlanadi. PHP kodiga joylashtirishdan oldin. Agar foydalanuvchi joriy hisob ma'lumotlari bilan tizimga kirgan bo'lsa, foydalanuvchi va unga keyingi davom etishiga ruxsat beriladi.

Foydalanuvchi ro'yxatdan o'tish shakli

Ushbu kod foydalanuvchiga ro'yxatdan o'tish shaklini ko'rsatish uchun mo'ljallangan. Foydalanuvchi o'z ma'lumotlari bilan shaklni yuborganida, foydalanuvchi kiritishini tekshirish uchun JavaScript funksiyasi chaqiriladi. Muvaffaqiyatli tekshiruvdan so'ng, PHP kodi ma'lumotlar bazasini kiritishni amalga oshirish uchun joylashtirilgan shakl ma'lumotlarini o'qiydi.

Ushbu qo'llanmada men sizga PHP va MySQL-dan foydalangan holda foydalanuvchi nomi, elektron pochta va parol, tizimga kirish va chiqish orqali hisob yaratishi mumkin bo'lgan foydalanuvchini ro'yxatga olish tizimini yaratishning to'liq jarayoni bo'ylab ko'rsataman. Shuningdek, men sizga qanday qilib ba'zi sahifalarni faqat tizimga kirgan foydalanuvchilar uchun ochiq qilish mumkinligini ko'rsataman. Tizimga kirmagan boshqa foydalanuvchi sahifaga kira olmaydi.

Agar siz videoni afzal ko'rsangiz, uni YouTube kanalimda ko'rishingiz mumkin

Biz qilishimiz kerak bo'lgan birinchi narsa ma'lumotlar bazasini sozlashdir.

Ro'yxatdan o'tish deb nomlangan ma'lumotlar bazasini yarating. Ro'yxatga olish ma'lumotlar bazasida foydalanuvchilar deb nomlangan jadvalni qo'shing. Foydalanuvchilar jadvali quyidagi to'rtta maydonni oladi.

  • foydalanuvchi nomi - varchar(100)
  • elektron pochta - varchar(100)
  • parol - varchar (100)

Buni PHPMyAdmin kabi MySQL mijozi yordamida yaratishingiz mumkin.

Yoki uni quyidagi SQL skriptidan foydalanib MySQL so'rovida yaratishingiz mumkin:

JADVAL YARATING `foydalanuvchilar` (`id` int(11) NO NULL AUTO_INCREMENT BIRINCHI KEY, `foydalanuvchi nomi` varchar(100) NO NULL, `email` varchar(100) NO NULL, `parol` varchar(100) ENGINE EMAS) =InnoDB DEFAULT CHARSET=latin1;

Va bu ma'lumotlar bazasi bilan.

Endi serverimizga kirish mumkin bo'lgan katalogda ro'yxatdan o'tish deb nomlangan papka yarating. ya'ni htdocs ichida (agar siz XAMPP serveridan foydalansangiz) yoki www ichida (agar siz wampp serveridan foydalansangiz) papkani yarating.

Papkani ro'yxatdan o'tkazishda quyidagi fayllarni yarating:

Ushbu fayllarni o'zingiz tanlagan matn muharririda oching. Meniki ajoyib matn 3.

Foydalanuvchini ro'yxatdan o'tkazish

register.php faylini oching va unga quyidagi kodni joylashtiring:

register.php:

Foydalanuvchi nomini ro'yxatdan o'tkazish

Ushbu fayl ma'lumotlar bazasiga ulanish uchun javobgardir va barcha sahifalarda ko'rsatiladi. Keling, kod satrlarini batafsil ko'rib chiqaylik

session_start();

Bu funksiya yangi foydalanuvchi uchun seansni boshlaydi, keyin biz identifikatsiya qilingan foydalanuvchilarni tanib olishimiz uchun sessiyaning borishi haqidagi ma’lumotlarni unda saqlaymiz.

mysql_connect($dbhost, $dbuser, $dbpass) or die("MySQL xatosi: " . mysql_error());

mysql_select_db($dbname) or die("MySQL xatosi: " . mysql_error());

Ushbu funktsiyalarning har biri alohida, lekin bir-biriga bog'liq vazifalarni bajaradi.

MySQL_connect funktsiyasi MySQL ma'lumotlar bazasi serveriga ulanadi, qavslar ichidagi parametrlar tegishli qiymatlar berilgan o'zgaruvchilardir Xost, Foydalanuvchi nomi, Parol, agar ma'lumotlar noto'g'ri bo'lsa, u xato xabarini ko'rsatadi;

Mysql_select_db funktsiyasi biz nomini $dbname o'zgaruvchisiga tayinlagan ma'lumotlar bazasini tanlaydi, agar u ma'lumotlar bazasini topa olmasa, u xato xabarini ko'rsatadi

2-qadam index.php faylini yarating

Bizning sahifamizdagi juda muhim element bu PHP ning birinchi qatori; bu qator biz yuqorida yaratgan faylni (base.php) o'z ichiga oladi va aslida bizning joriy faylimizdagi ushbu fayldan istalgan narsaga kirishimizga imkon beradi. Biz buni PHP kodining quyidagi qatori bilan qilamiz. index.php nomli fayl yarating va ushbu kodni tepaga joylashtiring.

Yangi index.php faylini yarating va eng boshida quyidagi kodni joylashtiring

Ushbu qator biz yuqorida yaratgan faylni (base.php) ulaydi, bu bizga joriy faylimizdagi ushbu faylning kodiga kirish imkonini beradi.

Bu include() funksiyasi orqali amalga oshiriladi.

Endi biz tashqi interfeysni yaratamiz, unda foydalanuvchi ro'yxatdan o'tish uchun o'z ma'lumotlarini kiritadi va agar u allaqachon ro'yxatdan o'tgan bo'lsa, ma'lumotlarni o'zgartirish imkoniyatini beradi. Ushbu o'quv qo'llanma PHP uchun mo'ljallanganligi sababli, biz HTML/CSS kodi bilan shug'ullanmaymiz, biz CSS uslublar jadvalini yaratganimizda tashqi ko'rinishni keyinroq qilamiz, ammo hozircha bu kodni oldingi qatordan keyin kiritamiz.

Foydalanuvchini boshqarish tizimi PHP kodini shu yerga joylashtiring

Endi, PHP dasturiga kirishdan oldin, uning ishlash printsipini ko'rib chiqamiz, bu ma'lum bir vaziyatda ekranda ko'rsatilishi kerak:

  • Agar foydalanuvchi allaqachon tizimga kirgan bo'lsa, biz ro'yxatdan o'tishdan oldin yashiringan turli xil variantlarga ega sahifani ko'rsatamiz.
  • Agar foydalanuvchi hali tizimga kirmagan bo'lsa, lekin ro'yxatdan o'tgan bo'lsa, biz login va parolni kiritish uchun shaklni ko'rsatamiz.
  • Agar 1 va 2-bosqichlar bajarilmasa, biz ro'yxatdan o'tish shaklini ko'rsatamiz.
  • Bu shunday ko'rinadi:

    Foydalanuvchilarni boshqarish tizimi - Ro'yxatdan o'tish sarlavhasi> Ro'yxatdan o'tishga kirish:
    Parol:
    Email:

    Ushbu kodda ma'lumotlar bazasiga yozishda biroz yangilik mavjud

    Bu ma'lumotlar bazasiga ilgari bo'lgan so'rov, faqat hozir biz ma'lumot olmaymiz, lekin uni INSERT buyrug'i bilan yozamiz, birinchi navbatda, ma'lumotlar qaysi maydonlarga va VALUES maydoniga kiritilishini ko'rsatishimiz kerak , bizning holatlarimizda yoziladigan ma'lumotlar foydalanuvchi tomonidan berilgan qiymatlarga ega bo'lgan o'zgaruvchilardir, so'rovlarni shakllantirish qoidalariga alohida e'tibor bering.

    4-qadam Yakunlash

    Foydalanuvchi tizimdan chiqishi uchun logout.php faylini yarating va unga kodni nusxalang: