Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan php untuk membuat halaman lompat halaman log masuk

Cara menggunakan php untuk membuat halaman lompat halaman log masuk

PHPz
PHPzasal
2023-04-03 14:09:541567semak imbas

Dalam bidang pembangunan laman web, sistem log masuk pengguna adalah keperluan yang sangat biasa. Dalam laman web, bahagian teras sistem log masuk pengguna ialah halaman log masuk, pengesahan pengguna dan halaman lompat. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan halaman log masuk asas dan memaparkan status sesi pengguna dengan melompat ke halaman.

Dalam artikel ini, kami akan menggunakan tiga fail asas berikut: login.php, authenticate.php dan dashboard.php.

  1. fail log masuk.php

Halaman log masuk ialah titik masuk untuk pengguna log masuk ke sistem. Kami akan melaksanakan halaman ini dalam fail login.php.

<?php
session_start();
if (isset($_SESSION[&#39;user_id&#39;])) {
    header(&#39;Location: dashboard.php&#39;);
    exit();
}
?>
<!DOCTYPE html>
<html>
<head>
    <title>Login</title>
    <meta charset="utf-8">
</head>
<body>
    <h1>Login</h1>
    <form method="post" action="authenticate.php">
        <label for="user_name">Username:</label>
        <input type="text" name="user_name"><br>
        <label for="password">Password:</label>
        <input type="password" name="password"><br>
        <input type="submit" value="Login">
    </form>
</body>
</html>

Kod di atas menunjukkan halaman HTML yang ringkas. Ia termasuk borang di mana pengguna boleh memasukkan nama pengguna dan kata laluan mereka. Penyerahan borang akan dihantar ke halaman authenticate.php, yang akan bertanggungjawab untuk membandingkan data yang dimasukkan oleh pengguna dengan data yang disimpan dalam pangkalan data untuk mengesahkan sama ada pengguna mempunyai kebenaran untuk mengakses sumber yang dilindungi.

Kod ini juga memulakan sesi baharu menggunakan fungsi session_start(). Jika pengguna sudah log masuk, fungsi session_start() akan menyemak sama ada ID pengguna wujud dalam sesi semasa, dan jika ya, ubah hala terus ke halaman dashboard.php. Fail

  1. authenticate.php

fail authenticate.php akan bertanggungjawab untuk proses pengesahan pengguna. Pada asasnya ia akan membandingkan kelayakan pengguna yang disimpan dalam pangkalan data dengan kelayakan yang disediakan oleh pengguna pada halaman log masuk. Jika ia sepadan, ia mencipta sesi baharu dan menyimpan ID pengguna dalam $_SESSION['user_id']. Ia kemudiannya akan mengubah hala ke halaman papan pemuka.php.

Dalam contoh ini, kami menganggap bahawa nama pengguna dan kata laluan telah disimpan dalam jadual pangkalan data yang dipanggil pengguna.

<?php
session_start();
if (isset($_SESSION[&#39;user_id&#39;])) {
    header(&#39;Location: dashboard.php&#39;);
    exit();
}

if (empty($_POST[&#39;user_name&#39;]) || empty($_POST[&#39;password&#39;])) {
    header(&#39;Location: login.php&#39;);
    exit();
}

$user_name = $_POST[&#39;user_name&#39;];
$password = $_POST[&#39;password&#39;];

$db = new PDO(&#39;mysql:host=localhost;dbname=mydatabase;charset=utf8mb4&#39;, &#39;username&#39;, &#39;password&#39;);
$stmt = $db->prepare("SELECT id FROM users WHERE user_name=:user_name AND password=:password");
$stmt->execute(array(':user_name' => $user_name, ':password' => $password));
$user = $stmt->fetch();

if (!$user) {
    header('Location: login.php');
    exit();
}

$_SESSION['user_id'] = $user['id'];
header('Location: dashboard.php');

Aliran pelaksanaan kod di atas adalah seperti berikut:

Pertama, kami menyemak nilai $_SESSION['user_id']. telah log masuk dan cuba log masuk semula. Dalam kes ini, kami akan mengubah hala ke halaman dashboard.php.

Seterusnya, kami menyemak sama ada pengguna memberikan nama pengguna dan kata laluan dalam borang log masuk. Jika tidak, proses log masuk dianggap tidak sah. Dalam kes ini kami akan mengubah hala ke halaman login.php.

Seterusnya, kami mencari nama pengguna dan kata laluan yang diberikan oleh pengguna dalam pangkalan data. Kami menggunakan sambungan PHP PDO untuk menyambung ke pangkalan data MySQL. Untuk nama pengguna dan kata laluan yang diberikan, kami akan menyemak sama ada baris yang sepadan wujud dalam jadual pengguna. Jika ada, pengguna disahkan.

Akhir sekali, kami mencipta pembolehubah $_SESSION['user_id'] baharu, yang menyimpan ID pengguna dan mengubah hala ke halaman papan pemuka.php.

  1. fail papan pemuka.php

fail papan pemuka.php akan memaparkan status sesi pengguna. Jika pengguna telah disahkan, halaman dashboard.php akan membaca pembolehubah $_SESSION['user_id'] dan memaparkan mesej alu-aluan.

<?php
session_start();
if (!isset($_SESSION[&#39;user_id&#39;])) {
    header(&#39;Location: login.php&#39;);
    exit();
}
?>
<!DOCTYPE html>
<html>
<head>
    <title>Dashboard</title>
    <meta charset="utf-8">
</head>
<body>
    <h1>Dashboard</h1>
    <p>Welcome!</p>
</body>
</html>

Aliran pelaksanaan kod di atas adalah seperti berikut:

Pertama, kami menyemak nilai pembolehubah $_SESSION['user_id'] Jika pembolehubah tidak wujud, ia bermakna bahawa pengguna belum disahkan. Dalam kes ini kami akan mengubah hala ke halaman login.php.

Seterusnya, kami memaparkan mesej alu-aluan yang menunjukkan bahawa pengguna telah disahkan dan boleh mengakses sumber yang dilindungi.

Dalam artikel ini, kami telah mempelajari cara melaksanakan sistem log masuk asas menggunakan PHP. Sistem ini menggunakan sintaks HTML dan PHP asas, serta sambungan MySQL dan PDO. Melalui contoh ini, anda telah mempelajari cara membuat borang HTML, membaca dan menulis data dalam pangkalan data MySQL, mencipta sesi baharu dan memeriksa pembolehubah dalam sesi. Kemahiran ini semua diperlukan untuk membina aplikasi web yang lebih kompleks.

Atas ialah kandungan terperinci Cara menggunakan php untuk membuat halaman lompat halaman log masuk. 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