⊗ppPmAuRgtD 434 of 447 menu

Verilənlər bazasının normalizasiyası

Hal-hazırda biz istifadəçilərimizin statuslarını öz istifadəçilərin olduğu cədvəldə saxlayırıq. Lakin bu, düzgün deyil - biz normallaşdırılmamış cədvəl əldə edirik, çünki 'user''admin' sözləri çox dəfə təkrar olunur.

Normalizasiya etmək lazımdır - statuslarımızı ayrı bir statuses cədvəlinə çıxaraq:

id name
1 user
2 admin

users cədvəlində isə status_id sütunu yaradaq. İndi qeydiyyatdan keçərkən status_id sütununa statuses cədvəlindən statusun id-sini yazacayıq:

<?php $query = "INSERT INTO users SET login='$login', password='$password', status_id='1'"; ?>

Ən mürəkkəb dəyişikliklər avtorizasiya zamanı baş verəcək: istifadəçinin statusunu əldə etmək üçün LEFT JOIN yerinə yetirmək lazımdır:

<?php $login = $_POST['login']; // İstifadəçini logina görə əldə edirik və statusu birləşdiririk: $query = "SELECT users.*, statuses.name as status FROM users LEFT JOIN statuses ON users.status_id=statuses.id WHERE login='$login'"; $res = mysqli_query($link, $query); $user = mysqli_fetch_assoc($res); if (!empty($user)) { $hash = $user['password']; if (password_verify($_POST['password'], $hash)) { $_SESSION['auth'] = true; $_SESSION['status'] = $user['status']; // status } else { } } else { } ?>

Avtorizasiya və qeydiyyatınızı nəzəriyyədə təsvir edilənə uyğun olaraq dəyişdirin.

Admin panelinin işində dəyişikliklər edin (istifadəçi statuslarının göstərilməsi, statusların dəyişdirilməsi və s.).

Azərbaycan
AfrikaansБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Biz saytin işi, analitika və fərdiləşdirmə üçün cookie istifadə edirik. Məlumatların emalı Məxfilik Siyasəti əsasında həyata keçirilir.
hamısını qəbul et konfiqurasiya et rədd et