Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk menambah tahap akses pengguna dalam fungsi log masuk PHP

<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粉680000555P粉680000555382 hari yang lalu397

membalas semua(1)saya akan balas

  • P粉041856955

    P粉0418569552023-09-06 00:31:46

    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.

    balas
    0
  • Batalbalas