PHP və MySQL-də sadə istifadəçi qeydiyyatı sisteminin yaradılması. İnanılmaz Sadə PHP və MySQL Qeydiyyat Sisteminin qurulması PHP Qeydiyyat Səhifəsi

Reg.ru: domenlər və hostinq

Rusiyada ən böyük qeydiyyatçı və hostinq provayderi.

2 milyondan çox domen adı xidmətdədir.

Təqdimat, domen üçün poçt, biznes üçün həllər.

Dünya üzrə 700 mindən çox müştəri artıq öz seçimini edib.

*Sürüşməni dayandırmaq üçün siçanın üzərinə sürün.

Geri irəli

PHP və MySQL-də sadə istifadəçi qeydiyyatı sisteminin yaradılması

Qeydiyyat sisteminin yaradılması çox işdir. Siz e-poçt ünvanlarını təsdiqləyən, qeydiyyatı təsdiq edən e-poçt göndərən, qalan forma sahələrini təsdiqləyən və daha çox şey yazmalısınız.

Və bütün bunları yazdıqdan sonra da istifadəçilər qeydiyyatdan keçməkdən çəkinəcəklər, çünki. bu, onlardan müəyyən səy tələb edir.

Bu dərslikdə biz heç bir parol tələb etməyən və ya parol saxlamayan çox sadə giriş sistemi yaradacağıq! Nəticəni dəyişdirmək və artıq mövcud olan PHP saytına əlavə etmək asan olacaq. Bunun necə işlədiyini öyrənmək istəyirsiniz? Aşağıda oxuyun.



Super sadə sistemimiz necə işləyəcək:

Biz icazə formasını və qeydiyyatı birləşdirəcəyik. Bu formada e-poçt ünvanını daxil etmək üçün sahə və qeydiyyat düyməsi olacaq;
- E-poçt ünvanı ilə sahəni doldurarkən, qeydiyyatdan keç düyməsini sıxmaqla, yeni istifadəçi haqqında qeyd yaradılacaq, ancaq daxil edilmiş e-poçt ünvanı verilənlər bazasında tapılmadıqda.

Bundan sonra müəyyən təsadüfi unikal simvol dəsti (token) yaradılır ki, bu da istifadəçi tərəfindən müəyyən edilmiş poçta 10 dəqiqə ərzində müvafiq olacaq keçid şəklində göndərilir;
- Linkə klikləməklə istifadəçi saytımıza daxil olur. Sistem tokenin mövcudluğunu müəyyən edir və istifadəçiyə icazə verir;

Bu yanaşmanın üstünlükləri:

Parolları saxlamağa və sahələri təsdiqləməyə ehtiyac yoxdur;
- Parolun bərpasına, gizli suallara və s. ehtiyac yoxdur;
- İstifadəçi qeydiyyatdan keçdiyi/daxil olduğu andan siz həmişə əmin ola bilərsiniz ki, bu istifadəçi sizin giriş zonanızda olacaq (e-poçt ünvanının doğru olması);
- İnanılmaz dərəcədə sadə qeydiyyat prosesi;

Qüsurlar:

İstifadəçi hesabının təhlükəsizliyi. Əgər kiminsə istifadəçinin poçtuna girişi varsa, o, daxil ola bilər.
- E-poçt təhlükəsiz deyil və ələ keçirilə bilər. Unutmayın ki, bu sual parol unudulmuş və bərpa edilməli olduqda və ya məlumat ötürülməsi üçün HTTPS-dən istifadə etməyən hər hansı bir avtorizasiya sistemində (giriş / parol) də aktualdır;
- Nə qədər ki, siz poçt serverini lazımi şəkildə quraşdırırsınız, avtorizasiya keçidləri olan mesajların spama düşmə şansı var;

Sistemimizin üstünlükləri və çatışmazlıqlarını müqayisə edərək deyə bilərik ki, sistem yüksək istifadə qabiliyyətinə (son istifadəçi üçün maksimum rahatlıq) malikdir və eyni zamanda, aşağı təhlükəsizlik göstəricisinə malikdir.

Beləliklə, ondan vacib məlumatlarla işləməyən forumlarda və xidmətlərdə qeydiyyat üçün istifadə etmək təklif olunur.

Bu sistemdən necə istifadə etmək olar

Saytınızdakı istifadəçilərə avtorizasiya etmək üçün sistemdən sadəcə istifadə etməli olduğunuz halda və bu dərsi ayırmaq istəmirsinizsə, aşağıdakıları etməlisiniz:

Siz dərsə əlavə edilmiş mənbə fayllarını yükləməlisiniz
- Arxivdə tables.sql faylını tapın.PhpMyAdmin-də idxal seçimindən istifadə edərək onu verilənlər bazanıza idxal edin. Alternativ yol: bu faylı mətn redaktoru ilə açın, SQL sorğusunu kopyalayın və işə salın;
- include/main.php faylını açın və verilənlər bazanıza qoşulmaq üçün parametrləri doldurun (verilənlər bazasına qoşulmaq üçün istifadəçi və şifrəni, həmçinin verilənlər bazasının hostunu və adını göstərin). Eyni faylda sistem tərəfindən göndərilən mesajlar üçün orijinal ünvan kimi istifadə olunacaq e-poçt ünvanını da göstərməlisiniz. Bəzi hostlar, forma hostun idarəetmə panelindən yaradılmış həqiqi e-poçt ünvanını göstərənə qədər gedən e-poçtları bloklayacaq, ona görə də həqiqi ünvanı daxil edin;
- Bütün index.php , protected.php faylları və aktivləri və FTP vasitəsilə qovluqları hostunuza yükləyin;
- Avtorizasiya formasını göstərmək istədiyiniz hər bir PHP səhifəsinə aşağıdakı kodu əlavə edin;

Require_once "includes/main.php"; $user = yeni İstifadəçi(); if(!$user->loggedIn())( redirect("index.php"); )
- Hazır!

Bütün bunların necə işlədiyi ilə maraqlananlar üçün aşağıda oxuyun!

İlk addım avtorizasiya forması üçün HTM kodunu yazmaqdır. Bu kod index.php faylında yerləşir. Bu fayl həmçinin forma məlumatlarını və avtorizasiya sisteminin digər faydalı xüsusiyyətlərini idarə edən PHP kodunu ehtiva edir. Aşağıdakı PHP kodunun nəzərdən keçirilməsi bölməsində bu barədə ətraflı məlumat əldə edə bilərsiniz.

index.php

Dərslik: PHP və MySQL Girişi və ya Qeydiyyatı ilə Super Sadə Qeydiyyat Sistemi

Yuxarıda e-poçt ünvanınızı daxil edin və biz göndərəcəyik
siz giriş linki.

Giriş/Qeydiyyat

Baş bölməsinə (və teqlər arasında) əsas üslubları daxil etdim (onlar bu dərslikdə əhatə olunmayıb, ona görə də onları özünüz görə bilərsiniz. assets/css/style.css qovluğu). Bağlama teqindən əvvəl jQuery kitabxanasını və aşağıda yazıb təhlil edəcəyimiz script.js faylını daxil etdim.


JavaScript

jQuery funksiyası ilə "Qeydiyyatdan keç/Giriş" düyməsinin vəziyyətini izləyir e.preventDefault() və AJAX sorğularını göndərir. Serverin cavabından asılı olaraq, müəyyən bir mesaj göstərir və sonrakı hərəkətləri müəyyənləşdirir /

assets/js/script.js

$(function()( var forma = $("#login-register"); form.on("göndər", funksiya(e)( if(form.is(".loading, .loggedIn"))( false qaytarın ; ) var email = form.find("input").val(), messageHolder = form.find("span"); e.preventDefault(); $.post(this.action, (email: email), funksiya (m)( if(m.error)( form.addClass("xəta"); messageHolder.text(m.message); ) else(form.removeClass("xəta").addClass("loggedIn"); messageHolder. mətn(m.message); ) )); )); $(sənəd).ajaxStart(funksiya()(form.addClass("yüklənir"); )); $(sənəd).ajaxComplete(funksiya()( forma. RemoveClass("yüklənir"); ); ));

AJAX sorğusunun cari vəziyyətini göstərmək üçün forma əlavə edildi (bu üsullar sayəsində mümkün oldu ajaxStart()) Və ajaxComplete(), faylın sonunda tapa bilərsiniz).

Bu sinif fırlanan animasiyalı gif faylını göstərir (sanki bizə sorğunun işləndiyinə işarə edir) və həmçinin formanın yenidən göndərilməsinin qarşısını almaq üçün bayraq rolunu oynayır (qeydiyyat düyməsi artıq bir dəfə kliklədikdə). .loggedIn sinfi başqa bir bayraqdır - e-poçt göndərildiyi zaman təyin olunur. Bu bayraq formada hər hansı digər hərəkəti dərhal bloklayır.

Verilənlər bazası sxemi

Bizim inanılmaz sadə giriş sistemimiz 2 MySQL cədvəlindən istifadə edir (SQL kodu tables.sql faylındadır). Birincisi istifadəçi hesabları haqqında məlumatları saxlayır. İkincisi, giriş cəhdlərinin sayı haqqında məlumatları saxlayır.


İstifadəçi cədvəlinin sxemi.

Sistem diaqramda görünən parollardan istifadə etmir. Onda siz həmçinin token_validity sütununa bitişik tokenlərlə işarə sütununu görə bilərsiniz. Token istifadəçi sistemə qoşulan kimi təyin edilir, e-poçtunu mesaj göndərmək üçün təyin edir (növbəti blokda bu barədə bir az daha ətraflı məlumat verilir). Token_validity sütunu vaxtı 10 dəqiqə sonra təyin edir, bundan sonra nişan artıq etibarlı deyil.


Avtorizasiya cəhdlərinin sayını hesablayan cədvəl sxemi.

Hər iki cədvəldə IP ünvanı tam ədəd sahəsində ip2long funksiyasından istifadə edərək işlənmiş formada saxlanılır.

İndi bəzi PHP kodu yaza bilərik. Sistemin əsas funksionallığı aşağıda görə biləcəyiniz User.class.php sinfinə təyin olunub.

Bu sinif fəal şəkildə idorm (sənədlər) istifadə edir, bu kitabxanalar verilənlər bazası ilə işləmək üçün minimum zəruri alətlərdir. O, verilənlər bazasına daxil olmaq, token yaratmaq və yoxlamanı idarə edir. Bu, PHP istifadə edirsə, qeydiyyat sistemini saytınıza qoşmağı asanlaşdıran sadə interfeysdir.

user.class.php

Class User( // Private ORM case private $orm; /** * İstifadəçini token üzrə tapın. Yalnız etibarlı tokenlər nəzərə alınır. Token yaradıldığı andan yalnız 10 dəqiqə ərzində yaradılır * @param string $token . Bu, axtardığınız nişandır * @return İstifadəçi. İstifadəçi funksiyasının dəyərini qaytarın */ ictimai statik funksiya findByToken($token)( // verilənlər bazasında nişanı tapın və düzgün vaxt damğasının qoyulduğundan əmin olun $ nəticə = ORM::for_table("reg_users") ->harada ("token", $token) ->where_raw("token_validity > NOW()") ->find_one(); if(!$result)( return false; ) yeni İstifadəçini qaytarın($nəticə); ) /** * İstifadəçiyə icazə verin və ya qeydiyyatdan keçin * @param string $email.İstifadəçinin e-poçt ünvanı * @return İstifadəçi */ ictimai statik funksiya loginOrRegister($email)( // Əgər belə istifadəçi varsa artıq mövcuddursa, verilənlər bazasında saxlanılan müəyyən e-poçt ünvanından İstifadəçi funksiyasının dəyərini qaytarın, əgər(User::exists($email))( return new User($email); ) // Əks halda, yeni istifadəçi yaradın. verilənlər bazası yaradın və göstərilən e-poçtdan User::create funksiyasının dəyərini qaytarın User::create($email ); ) /** * Yeni istifadəçi yaradın və verilənlər bazasında saxlayın * @param string $email. İstifadəçi e-poçt ünvanı * @return İstifadəçi */ şəxsi statik funksiya yaratmaq($email)( // Yeni istifadəçi qeydiyyatdan keçin və İstifadəçi funksiyasının nəticəsini bu dəyərlərdən qaytarın $result = ORM::for_table("reg_users")- >create(); $result->email = $email; $result->save(); return new User($result); ) /** * Verilənlər bazasında belə bir istifadəçinin olub olmadığını yoxlayın və boolean dəyərini qaytarın. dəyişən * @param sətri $e-poçt. İstifadəçi e-poçt ünvanı * @return boolean */ ictimai statik funksiya mövcuddur($email)( // İstifadəçi verilənlər bazasında varmı? $result = ORM::for_table("reg_users") ->where("email", $email ) ->count(); return $result == 1; ) /** * Yeni istifadəçi obyekti yaradın * @param instance $param ORM , id, email və ya 0 * @return User */ ictimai funksiya __construct($param = null) ( if($param instanceof ORM)( // ORM yoxlanışı keçdi $this->orm = $param; ) else if(is_string($param))( // E-poçt yoxlanışı keçdi $this->orm = ORM:: for_table ("reg_users") ->where("email", $param) ->find_one(); ) else( $id = 0; if(is_numeric($param))( // istifadəçi identifikatoruna $ dəyəri ötürülür. param dəyişəni $id = $param; ) else if(isset($_SESSION["loginid"]))( // Əks halda $id = $_SESSION["loginid"]; ) $this->orm = ORM:: for_table( "reg_users") ->where("id", $id) ->find_one(); ) ) /** * Yeni SHA1 icazə nişanı yaradın, onu verilənlər bazasına yazın və dəyərini qaytarın * @return sətri * / public function generateToken( )( // Səlahiyyətli istifadəçi üçün token yaradın və onu verilənlər bazasında saxlayın $token = sha1($this->email.time().rand(0, 1000000)); // Tokeni verilənlər bazasında saxlayın // Və onu yalnız növbəti 10 dəqiqə ərzində etibarlı kimi qeyd edin $this->orm->set("token", $token); $this->orm->set_expr("token_validity", "ADDTIME(NOW(),"0:10")"); $this->orm->save(); $tokeni qaytarın; ) /** * İstifadəçiyə icazə verin * @return void */ ictimai funksiya login()( // İstifadəçini daxil olmuş kimi qeyd edin $_SESSION["loginid"] = $this->orm->id; // Dəyəri yeniləyin son_giriş verilənlər bazası sahəsinin $this->orm->set_expr("last_login", "NOW()"); $this->orm->save(); ) /** * Sessiyanı məhv edin və istifadəçidən çıxın * @return void */ ictimai funksiyadan çıxış ()( $_SESSION = array(); unset($_SESSION); ) /** * İstifadəçinin daxil olub-olmadığını yoxlayın * @return boolean */ ictimai funksiya loggedIn()( return isset($) this->orm->id) && $_SESSION["loginid"] == $this->orm->id; ) /** * İstifadəçinin administrator olub olmadığını yoxlayın * @return boolean */ ictimai funksiya isAdmin() ( return $this->rank() = = "administrator"; ) /** * İstifadəçi növünü tapın, administrator və ya adi ola bilər * @return sətri */ ictimai funksiya rank()( if($this->orm- >rank == 1)( return "administrator"; ) return "regular"; ) /** * İstifadəçinin şəxsi məlumatını *İstifadəçi obyektinin xassələri kimi əldə etməyə imkan verən üsul * @param string $key Adı giriş əldə edən əmlak * @return mixed */ ictimai funksiya __get($key)( if(isset($this->orm->$key))( return $this->orm->$key; ) null qaytarmaq; ) )

Tokenlər SHA1 alqoritmi ilə yaradılır və verilənlər bazasında saxlanılır. 10 dəqiqəlik nişanın bitmə limitini təyin etmək üçün MySQL-in vaxt funksiyalarından istifadə edirəm.

Token təsdiqləmə prosedurundan keçdikdə, biz birbaşa idarəçiyə deyirik ki, biz yalnız token_validity sütununda saxlanılan, müddəti bitməmiş tokenləri nəzərdən keçiririk.

Nəzərə alın ki, mən sehrli üsuldan istifadə edirəm __almaqİstifadəçi obyektinin xassələrinə girişi dayandırmaq üçün faylın sonunda docs kitabxanası.

Bu, $user->email, $user->token və digər xassələrdən istifadə etməklə verilənlər bazasında saxlanılan məlumatlara daxil olmağı mümkün edir.Aşağıdakı kod parçasında biz bu siniflərdən nümunə kimi necə istifadə olunacağına baxacağıq.


Qorunan səhifə

Faydalı və zəruri funksionallığı saxlayan başqa bir fayl functions.php faylıdır. Burada bir neçə sözdə köməkçi var - digər fayllarda daha təmiz və daha oxunaqlı kod yaratmağa imkan verən köməkçi funksiyalar.

functions.php

send_email funksiyası($from, $to, $subject, $message)( // E-poçt göndərən köməkçi $headers = "MIME-Versiya: 1.0" . "\r\n"; $headers .= "Məzmun növü: mətn /plain; charset=utf-8" . "\r\n"; $headers .= "Kimdən: ".$from . "\r\n"; poçtu qaytarın($to, $mövzu, $message, $headers ); ) funksiyası get_page_url()( // PHP faylının URL-ni əldə edin $url = "http".(boş($_SERVER["HTTPS"])?"":"s")."://".$_SERVER [ "SERVER_NAME"]; if(isset($_SERVER["REQUEST_URI"]) && $_SERVER["REQUEST_URI"] != "")( $url.= $_SERVER["REQUEST_URI"]; ) else( $url. = $_SERVER["PATH_INFO"]; ) return $url; ) funksiyası rate_limit($ip, $limit_hour = 20, $limit_10_min = 10)( // Bu IP ünvanında son bir saat ərzində giriş cəhdlərinin sayı $count_hour = ORM: :for_table("reg_login_attempt") ->where("ip", sprintf("%u", ip2long($ip))) ->where_raw("ts > SUBTIME(NOW(),"1:00")") ->count(); // Bu IP ünvanda son 10 dəqiqə ərzində giriş cəhdlərinin sayı $count_10_min = ORM::for_table("reg_login_attempt") ->where("ip", sprintf("%u", ip2long( $ ip))) ->where_raw("ts > SUBTIME(NOW(),"0:10")") ->count(); if($count_hour > $limit_hour || $count_10_min > $limit_10_min)( atmaq yeni İstisna("Çox çox giriş cəhdləri!"); ) ) funksiya rate_limit_tick($ip, $email)( // Cədvəldə yeni qeyd yaradın giriş cəhdlərinin sayı hesablanır $login_attempt = ORM::for_table("reg_login_attempt")->create(); $login_attempt->email = $email; $login_attempt->ip = sprintf("%u", ip2long($ip) ); $login_attempt->save(); ) funksiyasının yönləndirilməsi($url)( başlıq("Yer: $url"); exit; )

Funksiyalar dərəcə_limitidərəcə_limiti_qeyd ilk cəhddən bəri keçən müddət üçün icazə cəhdlərinin sayına nəzarət edin. Giriş cəhdi verilənlər bazasında reg_login_attempt sütununda qeyd olunur. Bu funksiyalar, aşağıdakı kod parçasından göründüyü kimi, forma məlumatları emal edildikdə və təqdim edildikdə çağırılır.

Aşağıdakı kod index.php faylından götürülmüşdür və formanın təqdim edilməsini idarə edir. O, JSON cavabını qaytarır, bu da öz növbəsində artıq əhatə etdiyimiz assets/js/script.js faylında jQuery tərəfindən işlənir.

index.php

Çalışın( if(!empty($_POST) && isset($_SERVER["HTTP_X_REQUESTED_WITH"]))( // JSON başlıq başlığını çıxarın("Məzmun növü: proqram/json"); // Bu e-poçt ünvanı etibarlıdırmı (!isset($_POST["email"]) || !filter_var($_POST["e-poçt"], FILTER_VALIDATE_EMAIL))( yeni İstisna atmaq("Lütfən düzgün e-poçt ünvanını daxil edin."); ) // Yoxlayın. istifadəçi daxil olmağa icazə verdi, icazə verilən bağlantıların sayını keçib? (əlavə məlumat üçün functions.php faylı) rate_limit($_SERVER["REMOTE_ADDR"]); // Bu giriş cəhdini qeyd edin rate_limit_tick($_SERVER["REMOTE_ADDR"] , $ _POST["email"]); // İstifadəçiyə e-poçt göndərin $message = ""; $email = $_POST["email"]; $subject = "Sizin Giriş Linkiniz"; if(!User:: exists($email) )( $subject = "Qeydiyyatdan keçdiyiniz üçün təşəkkür edirik!"; $message = "Saytımızda qeydiyyatdan keçdiyiniz üçün təşəkkür edirik!\n\n"; ) // İstifadəçiyə icazə verməyə və ya qeydiyyatdan keçirməyə cəhd edin $user = İstifadəçi ::loginOrRegister($_POST[ "email"]); $message.= "Bu URL-dən daxil ola bilərsiniz:\n"; $message.= get_page_url()."?tkn=".$user->generateToken()."\n\n"; $message.= "Link 10 dəqiqədən sonra avtomatik olaraq bitəcək."; $nəticə = send_email($fromEmail, $_POST["e-poçt"], $mövzu, $mesaj); if(!$result)( throw new Exception("E-poçtunuzu göndərərkən xəta baş verdi. Lütfən, yenidən cəhd edin."); ) die(json_encode(array("message" => "Təşəkkür edirik! Biz\"link göndərdik Gələnlər qutunuza. Spam qovluğunuzu da yoxlayın.")))); ) ) catch(Exception $e)( die(json_encode(array("error"=>1, "message" => $e->getMessage( )))))); )

Uğurlu avtorizasiya/qeydiyyatdan sonra yuxarıdakı kod istifadəçiyə avtorizasiya üçün keçid göndərəcək. Token əlçatan olur, çünki üsulla yaradılan keçiddə dəyişən kimi ötürülür $_GET marker tkn ilə

index.php

If(isset($_GET["tkn"]))( // Bu işarə avtorizasiya üçün etibarlıdırmı? $user = User::findByToken($_GET["tkn"]); if($user)( // Bəli , Qorunan səhifəyə yönləndirin $user->login(); redirect("protected.php"); ) // Xeyr, token etibarlı deyil. Giriş/qeydiyyat forması ilə səhifəyə yönləndirin redirect("index. php ");)

$user->login()

seans üçün lazımi dəyişənləri yaradacaq ki, istifadəçi saytın sonrakı səhifələrinə baxaraq hər zaman avtorizasiyada qalsın.

Eynilə, sistemdən çıxmaq üçün funksiyanın işlənməsi təşkil edilir.

index.php

If(isset($_GET["çıxış"]))( $user = new User(); if($user->loggedIn())( $user->logout(); ) redirect("index.php") ; )

Kodun sonunda mən yenidən index.php-ə yönləndirdim, yəni parametr ?çıxış=1 URL ilə keçid tələb olunmur.

Bizim index.php faylımız əlavə tələb edir. qoruma - sistemə heç vaxt daxil olmuş insanların qeydiyyat formasını yenidən görməsini istəmirik. Bu məqsədlər üçün metoddan istifadə edirik $user->loggedIn().

index.php

$user = yeni İstifadəçi(); if($user->loggedIn())( redirect("protected.php"); )

Nəhayət, burada saytınızın səhifələrini qorumağa və onu yalnız avtorizasiyadan sonra əlçatan etməyə imkan verən bir kod parçası var.

protected.php

// Saytınızdakı hər bir səhifəni qorumaq üçün // main.php faylını daxil edin və yeni İstifadəçi obyekti yaradın. Bu qədər asandır! require_once "includes/main.php"; $user = yeni İstifadəçi(); if(!$user->loggedIn())( redirect("index.php"); )

Bu yoxlamadan sonra istifadəçinin uğurla avtorizasiya olunduğuna əmin ola bilərsiniz. Siz həmçinin obyekt xassələrindən istifadə edərək verilənlər bazasında saxlanılan məlumatlara daxil ola bilərsiniz $user. İstifadəçinin e-poçtunu və statusunu göstərmək üçün bu kodu istifadə edin:

echo "E-poçtunuz: ".$user->email; echo "Sizin dərəcəniz: ".$user->rank();

Metod dərəcə() burada istifadə olunur, çünki nömrələr adətən verilənlər bazasında saxlanılır (normal istifadəçi üçün 0, idarəçi üçün 1) və biz bu məlumatları aid olduqları statuslara çevirməliyik ki, bu metod bizə kömək edir.

Adi istifadəçini administrator etmək üçün phpMyAdmin (və ya verilənlər bazasını idarə etməyə imkan verən hər hansı digər proqram) vasitəsilə istifadəçi qeydini redaktə etmək kifayətdir. İdarəçi statusu heç bir imtiyaz vermir, bu nümunədə səhifə sizin idarəçi olduğunuzu göstərəcək - vəssalam.

Ancaq bununla nə etmək lazımdır - bu sizin ixtiyarınızdadır, idarəçilər üçün müəyyən imtiyazlar və imkanlar təyin edən kodu özünüz yazıb tərtib edə bilərsiniz.

Bitirdik!

Bu inanılmaz dərəcədə super kvazi sadə forma ilə işimiz bitdi! Siz onu PHP saytlarınızda istifadə edə bilərsiniz, bu olduqca sadədir. Siz də onu özünüz üçün dəyişdirə və istədiyiniz kimi edə bilərsiniz.

Material Denis Malyshok tərəfindən xüsusi olaraq sayt saytı üçün hazırlanmışdır

P.S. PHP və OOP dillərini mənimsəməkdə daha da irəliləmək istəyirsiniz? PHP proqramlaşdırması da daxil olmaqla veb saytın qurulmasının müxtəlif aspektləri üzrə premium dərsliklərə, həmçinin OOP istifadə edərək PHP CMS sisteminizi sıfırdan qurmaq üzrə pulsuz kursa nəzər salın:

Materialı bəyəndiniz və təşəkkür etmək istəyirsiniz?
Sadəcə dostlarınız və həmkarlarınızla paylaşın!


Sonuncu dəfə 23 iyul 2019-cu ildə Vinsi tərəfindən dəyişdirilib.

İstifadəçi qeydiyyatı və ya qeydiyyatdan keçmək bir çox veb proqramların ayrılmaz hissəsidir və tətbiqin uğuru üçün onu düzgün əldə etmək çox vacibdir. Bu, tətbiqinizlə istifadəçi əlaqəsinin başlanğıc nöqtəsidir.

Ən yaxşı UI / UX ilə mümkün qədər sadə olmalıdır. PHP-dən istifadə edərək istifadəçi qeydiyyatı funksiyasını həyata keçirmək sadə bir işdir və mən bu məqalədəki nümunə ilə sizə addımlar atacağam.

İçində nə var? Bu PHP istifadəçi qeydiyyatı nümunəsi necə işləyir?

Bu nümunə kodu 3 hissəyə bölmək olar.

  • HTML forması vasitəsilə istifadəçi məlumatlarının əldə edilməsi.
  • Forma göndərilərkən istifadəçinin təqdim etdiyi məlumatın təsdiqlənməsi.
  • Təsdiqdən sonra qeydiyyatdan keçmiş istifadəçini verilənlər bazasında saxlamaq üçün verilənlər bazası ilə işləmə.
  • Üçüncü addım istifadəçinin artıq əlavə edilmədiyinə əmin olduqdan sonra yerinə yetiriləcək. Bu verilənlərin unikallığının yoxlanılması onların daxil etdiyi e-poçt və istifadəçi adı əsasında həyata keçiriləcək.

    Qeydiyyat zamanı biz ümumiyyətlə tətbiqimizdə qeydiyyatdan keçməyə hazır olan istifadəçi məlumatlarını toplayırıq. Onların bəziləri məcburi, bəziləri isə isteğe bağlı olacaq.

    Beləliklə, bu funksionallıq istifadəçi məlumatlarının boşluğunu və formatını təmin etmək üçün doğrulama hissəsini də əhatə edə bilər. Doğrulama ya müştəri tərəfində, ya da server tərəfində edilə bilər.

    Server tərəfində doğrulamanın olması həmişə daha yaxşıdır. İstifadəçilərin istifadəsinin rahatlığı üçün onu müştəri tərəfində də seçə bilərsiniz. Lakin server tərəfində olmaq isteğe bağlı deyil və minimum tələbdir.

    fayl strukturu

    İstifadəçinin qeydiyyatdan keçməsinə imkan verən HTML forması

    Bu misalda, qeydiyyat forması İstifadəçi adı, Ad(Display Adı), Parol və E-poçt sahələrini ehtiva edir. İstifadəçinin təsdiq üçün parolunu yenidən daxil etməsinə imkan verən Parolun Təsdiqi sahəsi də var. Bu iki parol daha sonra bir .

    Bu formanı təqdim etməklə istifadəçinin şərtlərlə razılaşacağı gözlənilir. Beləliklə, bunu təmin etmək üçün Qeydiyyat düyməsinin qarşısında bir onay qutusu sahəsi əlavə olunur.

    PHP İstifadəçi Qeydiyyatı Forması Qeydiyyatdan Keç İstifadəçi adı