Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan log masuk pentadbir dan pengguna ke halaman yang berbeza dalam laman web PHP

Bagaimana untuk melaksanakan log masuk pentadbir dan pengguna ke halaman yang berbeza dalam laman web PHP

PHPz
PHPzasal
2023-04-21 09:11:511810semak imbas

Dalam kebanyakan tapak web, halaman yang boleh diakses oleh pentadbir dan pengguna biasa selepas log masuk selalunya berbeza. Terutama untuk tapak web yang perlu melindungi privasi dan kerahsiaan, menggunakan penyelesaian reka bentuk halaman yang berbeza boleh meningkatkan kebolehpercayaan dan keselamatan sistem. Dalam artikel ini, kami akan meneroka cara melaksanakan log masuk pentadbir dan pengguna ke halaman berbeza dalam tapak web PHP.

1 Ambil sesi sebagai contoh

Sesi dalam PHP direka untuk menyelesaikan masalah status log masuk pengguna Oleh kerana HTTP ialah protokol tanpa kewarganegaraan, setiap permintaan memerlukan maklumat Pensijilan. Mekanisme sesi boleh menyelesaikan masalah ini dengan menyimpan status pengguna pada bahagian pelayan, mengekalkan status sesi dan menghantar data sesi antara klien dan pelayan.

1.1 Halaman log masuk

Pertama sekali, kami boleh mereka bentuk halaman log masuk yang berbeza untuk pentadbir dan pengguna. Mengambil halaman log masuk pentadbir sebagai contoh, kami boleh menambah pengecam pada kod sumber halaman untuk menunjukkan bahawa halaman itu ialah halaman log masuk pentadbir. Contohnya:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>管理员登录页面</title>
</head>
<body>
    <h1>管理员登录</h1>
    <form action="login.php" method="post">
        <input type="hidden" name="type" value="admin">
        <label>用户名:</label><input type="text" name="username"><br>
        <label>密码:</label><input type="password" name="password"><br>
        <input type="submit" value="登录">
    </form>
</body>
</html>

Dalam halaman ini, kami menghantar nilai jenis melalui elemen tersembunyi untuk menunjukkan bahawa halaman log masuk semasa ialah halaman log masuk pentadbir. Nilai jenis ini boleh digunakan dalam pengendali log masuk pada bahagian belakang.

1.2 Pemprosesan log masuk

Dalam PHP, kita boleh menggunakan tatasusunan $_SESSION untuk menyimpan data sesi. Dalam pengendali log masuk, kita boleh menentukan kategori log masuk pengguna berdasarkan nilai jenis, dan selepas log masuk berjaya, simpan maklumat pengguna dalam $_SESSION untuk kegunaan halaman seterusnya.

Contohnya:

<?php
session_start();
if ($_POST[&#39;type&#39;] == &#39;admin&#39;) {
    //处理管理员登录
    $username = $_POST[&#39;username&#39;];
    $password = $_POST[&#39;password&#39;];
    if ($username == &#39;admin&#39; && $password == &#39;123456&#39;) {
        //登录成功
        $_SESSION[&#39;admin&#39;] = $username;
        header(&#39;Location:admin.php&#39;);
    } else {
        //登录失败
        header(&#39;Location:admin_login.php&#39;);
    }
} else {
    //处理普通用户登录
    $username = $_POST[&#39;username&#39;];
    $password = $_POST[&#39;password&#39;];
    if ($username == &#39;user&#39; && $password == &#39;123456&#39;) {
        //登录成功
        $_SESSION[&#39;user&#39;] = $username;
        header(&#39;Location:user.php&#39;);
    } else {
        //登录失败
        header(&#39;Location:user_login.php&#39;);
    }
}
?>

Dalam pengendali log masuk ini, kami memperoleh nilai jenis yang diluluskan oleh hujung hadapan melalui tatasusunan $_POST untuk menentukan kategori pengguna mana log masuk semasa berada. Jika ia milik pentadbir, maklumat pengguna log masuk yang berjaya disimpan dalam $_SESSION['admin'] dan melompat ke halaman pentadbir. Jika ia adalah pengguna biasa, maklumat pengguna yang berjaya log masuk disimpan dalam $_SESSION['user'] dan melompat ke halaman pengguna. Jika log masuk gagal, lompat kembali ke halaman log masuk yang sepadan.

1.3 Kawalan kebenaran halaman

Apabila pentadbir dan pengguna biasa mempunyai halaman berbeza yang boleh mereka akses selepas log masuk, kami perlu mengawal kebenaran di halaman berikutnya. Dalam PHP, kita boleh menentukan kategori pengguna semasa dengan menilai nilai dalam tatasusunan $_SESSION, dengan itu mengawal halaman yang boleh diakses oleh pengguna.

Sebagai contoh, dalam halaman pentadbir, kita boleh melaksanakan kawalan kebenaran seperti ini:

<?php
session_start();
if ($_SESSION[&#39;admin&#39;] != &#39;admin&#39;) {
    header(&#39;Location:admin_login.php&#39;);
    exit();
}
?>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>管理员页面</title>
</head>
<body>
    <h1>管理员页面</h1>
    <p>欢迎 <?php echo $_SESSION[&#39;admin&#39;]; ?> 登录</p>
    <a href="logout.php?type=admin">退出登录</a>
</body>
</html>

Dalam halaman ini, kita mula-mula menentukan sama ada nilai $_SESSION['admin'] ialah ' admin', jika tidak, lompat ke halaman log masuk pentadbir. Jika ya, anda boleh memaparkan kandungan halaman pentadbir, memaparkan nama pengguna log masuk pada halaman dan menyediakan pautan untuk log keluar.

Kawalan kebenaran halaman lain juga boleh dilaksanakan dengan cara yang sama.

2. Ambil kuki sebagai contoh

Selain sesi, kami juga boleh menggunakan kuki untuk mengawal kebenaran pentadbir dan pengguna log masuk ke halaman yang berbeza. Dalam PHP, kita boleh menggunakan fungsi setcookie() untuk menetapkan nilai kuki. Dalam pengendali log masuk, kita boleh menetapkan nilai kuki yang berbeza mengikut kategori pengguna yang berbeza. Dalam halaman seterusnya, kami juga boleh mengawal halaman yang boleh diakses oleh pengguna berdasarkan nilai kuki.

2.1 Pemprosesan log masuk

Mengambil pentadbir tetapan dan kuki pengguna biasa sebagai contoh, kami boleh menambah kod berikut dalam pengendali log masuk:

<?php
if ($_POST[&#39;type&#39;] == &#39;admin&#39;) {
    //处理管理员登录
    $username = $_POST[&#39;username&#39;];
    $password = $_POST[&#39;password&#39;];
    if ($username == &#39;admin&#39; && $password == &#39;123456&#39;) {
        //登录成功
        setcookie(&#39;loginType&#39;, &#39;admin&#39;, time()+3600);
        header(&#39;Location:admin.php&#39;);
    } else {
        //登录失败
        header(&#39;Location:admin_login.php&#39;);
    }
} else {
    //处理普通用户登录
    $username = $_POST[&#39;username&#39;];
    $password = $_POST[&#39;password&#39;];
    if ($username == &#39;user&#39; && $password == &#39;123456&#39;) {
        //登录成功
        setcookie(&#39;loginType&#39;, &#39;user&#39;, time()+3600);
        header(&#39;Location:user.php&#39;);
    } else {
        //登录失败
        header(&#39;Location:user_login.php&#39;);
    }
}
?>

Dalam kod ini, kami menggunakan fungsi setcookie() untuk menetapkan kuki bernama loginType, dan menetapkan nilai kuki yang berbeza untuk pentadbir dan pengguna biasa. Kuki ini akan disimpan ke klien tempatan selepas pengguna berjaya log masuk untuk digunakan pada halaman berikutnya.

2.2 Kawalan kebenaran halaman

Apabila melawat halaman, kami boleh menentukan kategori pengguna semasa dengan menilai nilai kuki dan melaksanakan kawalan kebenaran. Dalam PHP, kita boleh mendapatkan nilai kuki yang disimpan oleh pelanggan melalui tatasusunan $_COOKIE untuk mencapai kawalan kebenaran.

Sebagai contoh, dalam halaman pentadbir, kami boleh melaksanakan kawalan kebenaran seperti ini:

<?php
if ($_COOKIE[&#39;loginType&#39;] != &#39;admin&#39;) {
    header(&#39;Location:admin_login.php&#39;);
    exit();
}
?>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>管理员页面</title>
</head>
<body>
    <h1>管理员页面</h1>
    <p>欢迎 <?php echo $_COOKIE[&#39;loginType&#39;]; ?> 登录</p>
    <a href="logout.php?type=admin">退出登录</a>
</body>
</html>

Dalam halaman ini, kami menentukan sama ada nilai $_COOKIE['loginType'] ialah ' admin' untuk menentukan kategori pengguna semasa. Jika tidak, lompat kembali ke halaman log masuk pentadbir. Jika ya, anda boleh memaparkan kandungan halaman pentadbir, memaparkan nama pengguna log masuk pada halaman dan menyediakan pautan untuk log keluar.

Kawalan kebenaran halaman lain juga boleh dilaksanakan dengan cara yang sama.

Ringkasan

Melalui contoh di atas, kami dapati bahawa untuk melaksanakan log masuk pentadbir dan pengguna ke halaman berbeza dalam tapak web PHP, sesi atau kuki boleh digunakan untuk menyimpan status pengguna dan menentukan status pengguna . Kawal halaman yang boleh diakses oleh pengguna. Menggunakan kaedah yang berbeza membolehkan kami memilih untuk senario aplikasi yang berbeza. Tidak kira kaedah yang digunakan, perhatian perlu diberikan untuk memastikan keselamatan dan kebolehpercayaan maklumat. Pada masa yang sama, apabila melaksanakan kawalan kebenaran, kami juga perlu mempertimbangkan kebolehskalaan dan kebolehselenggaraan aplikasi. Skim kawalan kebenaran yang baik boleh meningkatkan keselamatan dan kestabilan sistem serta menyediakan perkhidmatan yang lebih baik kepada pengguna.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan log masuk pentadbir dan pengguna ke halaman yang berbeza dalam laman web PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn