Bagaimana untuk menambah tahap akses pengguna dalam fungsi log masuk PHP
P粉680000555
P粉680000555 2023-09-05 20:51:43
0
1
468
<p>Saya membangunkan skrip log masuk/pendaftaran PHP yang apabila pengguna log masuk, ia memulakan sesi dan mencipta kuki, kemudian mengubah hala pengguna ke papan pemuka.php menggunakan: </p> <pre class="brush:php;toolbar:false;">//dapatkan data dalam pembolehubah $emailAddress = mysqli_real_escape_string($conn,$_POST['emailAddress']); $kata laluan = mysqli_real_escape_string($conn,$_POST['password']); $ingat = isset($_POST['ingatSaya']); if(!filter_var($emailAddress, FILTER_VALIDATE_EMAIL)) { $error = 'Sila masukkan alamat e-mel yang sah.'; } elseif(email_exists($emailAddress,$conn)) { // jika alamat e-mel wujud $result = mysqli_query($conn,"PILIH kata laluan DARIPADA pengguna WHERE e-mel = '$emailAddress'"); $retrievePassword = mysqli_fetch_assoc($result); if(!password_verify($password,$retrievePassword['password'])) // jika kata laluan tidak sepadan { $error = 'Kata laluan tidak betul.'; } else { // jika kata laluan betul, log masuk pengguna $_SESSION['email'] = $emailAddress; if($ingat == 'on') { // jika "pastikan pengguna dilog masuk" setcookie("e-mel",$emailAddress,time()+7200); // pastikan pengguna log masuk selama 2 jam } pengepala("lokasi: papan pemuka.php"); } } else { // jika e-mel tidak wujud $error = 'Alamat e-mel tidak didaftarkan.'; }</pre> <p>Di bahagian atas semua halaman terhad saya (cth. papan pemuka.php) saya ada: </p> <pre class="brush:php;toolbar:false;">if(logged_in()) { // jika pengguna log masuk, tunjukkan halaman</pre> Fungsi <p>log_masuk() ialah: </p> <pre class="brush:php;toolbar:false;">function logged_in(){ if(isset($_SESSION['email']) || isset($_COOKIE['email'])) { kembali benar; } lain { kembali palsu; } }</pre> <p>Dalam pangkalan data saya mempunyai lajur bertajuk <code>usrUserTypeNo</code> yang mempunyai "1" untuk pentadbir dan "3" untuk pengguna biasa. Bagaimanakah saya boleh memasukkan jenis pengguna ini ke dalam sesi supaya saya boleh menentukan kandungan yang ditunjukkan kepada pengguna berdasarkan peranan mereka? </p>
P粉680000555
P粉680000555

membalas semua(1)
P粉041856955

Tidak betul.

Jika anda ingin melakukan satu daripada tiga tindakan berbeza (tidak log masuk, pengguna biasa, pengguna pentadbir) maka anda perlu menguji keadaan tersebut dan menulis logik untuk setiap keadaan.

Anda boleh menyimpan tahap akses dalam sesi dan bukannya memintanya daripada pangkalan data setiap kali.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan