Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menggunakan php untuk menulis lompat log masuk yang berjaya

Bagaimana untuk menggunakan php untuk menulis lompat log masuk yang berjaya

PHPz
PHPzasal
2023-04-19 11:38:35974semak imbas

PHP ialah bahasa skrip sebelah pelayan yang digunakan secara meluas dalam pembangunan rangkaian Ia boleh digunakan untuk penghasilan halaman web dinamik dan pembangunan aplikasi web. Dalam pembangunan laman web, sistem log masuk adalah fungsi yang sangat biasa, dan melompat ke halaman yang ditentukan selepas log masuk berjaya juga merupakan bahagian penting dalam pengalaman pengguna. Artikel ini akan memperkenalkan cara menggunakan PHP untuk menulis fungsi untuk mencapai lompatan log masuk yang berjaya.

1. Buat halaman borang

Pertama, kita perlu mencipta halaman log masuk di mana pengguna boleh memasukkan nama pengguna dan kata laluan mereka. Untuk menjadikan halaman ini lebih mudah dibaca, kita boleh menggunakan gaya CSS dalam HTML untuk mencantikkan halaman. Halaman borang kami hendaklah mengandungi kandungan berikut:

  • Borang log masuk
  • Borang yang mengandungi kotak input nama pengguna dan kata laluan
  • Butang untuk menyerahkan borang menggunakan POST kaedah;
  • Mesej ralat input.

Kod HTML adalah seperti berikut:

<!DOCTYPE html>
<html>
<head>
    <title>登陆页面</title>
    <style>
        body{
            background-color: #F4F4F4;
        }
        
        .login{
            margin: 100px auto;
            border: 1px solid #ccc;
            width: 400px;
            background-color: #fff;
            padding: 20px;
            border-radius: 10px;
            box-shadow: 0 0 10px #ccc;
        }
        
        input[type=text], input[type=password]{
            width: 100%;
            padding: 10px;
            margin: 8px 0;
            display: inline-block;
            border: 1px solid #ccc;
            box-sizing: border-box;
            border-radius: 5px;
        }
        
        button[type=submit]{
            background-color: #4CAF50;
            color: white;
            padding: 10px 18px;
            margin: 8px 0;
            border: none;
            border-radius: 4px;
            cursor: pointer;
        }
        
        button[type=submit]:hover{
            background-color: #45a049;
        }
        
        .error{
            color: red;
        }
    </style>
</head>
<body>
    <div class="login">
        <h2>登陆页面</h2>
        <form action="process.php" method="POST">
            <label for="username">用户名</label>
            <input type="text" id="username" name="username" placeholder="请输入用户名">
            <label for="password">密码</label>
            <input type="password" id="password" name="password" placeholder="请输入密码">
            <button type="submit">登陆</button>
            <?php
                if(isset($_GET[&#39;error&#39;])){
                    if($_GET[&#39;error&#39;] == &#39;empty&#39;){
                        echo "<p class=&#39;error&#39;>请输入所有字段!</p>";
                    }
                    elseif ($_GET['error'] == 'wrong') {
                        echo "<p class=&#39;error&#39;>请输入正确的用户名和密码!</p>";
                    }
                }
            ?>
        </form>
    </div>
</body>
</html>

2. Sahkan nama pengguna dan kata laluan

Seterusnya, kami perlu mengesahkan sama ada nama pengguna dan kata laluan yang dimasukkan oleh pengguna betul. Kita boleh menggunakan PHP pada bahagian pelayan untuk melaksanakan proses ini. Pertama, kita perlu mencipta fail process.php pada bahagian pelayan. Fail ini akan menerima data borang dan mengesahkan bahawa nama pengguna dan kata laluan adalah betul. Jika betul, kami akan mengubah hala pengguna ke halaman lain dalam fail ini.

<?php
    session_start();
    if(isset($_POST[&#39;username&#39;]) && isset($_POST[&#39;password&#39;])){
        include &#39;db_connection.php&#39;;
        $username = $_POST[&#39;username&#39;];
        $password = $_POST[&#39;password&#39;];
        if(empty($username) || empty($password)){
            header("Location: index.php?error=empty");
            exit();
        }
        else{
            $sql = "SELECT * FROM users WHERE username=&#39;$username&#39; AND password=&#39;$password&#39;";
            $result = mysqli_query($conn, $sql);
            if(mysqli_num_rows($result) === 1){
                $row = mysqli_fetch_assoc($result);
                if($row[&#39;username&#39;] === $username && $row[&#39;password&#39;] === $password){
                    $_SESSION[&#39;username&#39;] = $row[&#39;username&#39;];
                    header("Location: welcome.php");
                    exit();
                }
            }
            else{
                header("Location: index.php?error=wrong");
                exit();
            }
        }
    }
    else{
        header("Location: index.php");
        exit();
    }
?>

Dalam kod di atas, kami mula-mula menggunakan fungsi session_start() untuk membuka sesi baharu. Kami kemudian menyemak sama ada nama pengguna dan kata laluan wujud dalam tatasusunan $_POST. Jika ada, kami mengimport pembolehubah sambungan pangkalan data daripada fail db_connection.php kerana kami perlu mendapatkan semula data pengguna daripada pangkalan data. Kami kemudian menggunakan pernyataan if untuk menyemak sama ada medan yang dimasukkan kosong. Jika kosong, ubah hala pengguna ke halaman borang asal dan masukkan kod ralat dalam URL.

Jika medan input tidak kosong, kami boleh mendapatkan semula rekod untuk pengguna tersebut dalam pangkalan data. Jika kami mendapat rekod dengan nama pengguna dan kata laluan yang sepadan, kami boleh menyimpan nama pengguna dalam $_SESSION dan menggunakan fungsi header() untuk mengubah hala pengguna ke halaman welcome.php. Jika tiada rekod sedemikian dalam pangkalan data, kami akan mengubah hala pengguna ke halaman borang asal dan memasukkan kod ralat dalam URL.

3. Cipta halaman alu-aluan

Akhir sekali, kita perlu mencipta halaman alu-aluan yang mana pengguna akan diubah hala selepas berjaya melog masuk. Halaman alu-aluan hanya boleh memaparkan mesej alu-aluan, dan butang yang membolehkan pengguna log keluar dan log keluar.

<!DOCTYPE html>
<html>
<head>
    <title>欢迎页</title>
</head>
<body>
    <h1>欢迎</h1>
    <p>您已经成功登陆, <?php echo $_SESSION[&#39;username&#39;]; ?>!</p>
    <a href="logout.php">注销</a>
</body>
</html>

Dalam halaman alu-aluan, kami menggunakan mekanisme $_SESSION PHP untuk memaparkan nama pengguna semasa. Kami juga menambah pautan ke halaman yang melaksanakan fungsi log keluar melalui fail logout.php halaman.

4. Laksanakan fungsi logout

Akhir sekali, kita perlu menggunakan PHP untuk menulis fail logout.php untuk melaksanakan fungsi logout.

<?php
    session_start();
    session_unset();
    session_destroy();
    header("Location: index.php");
    exit();
?>

Dalam fail logout.php, kami mula-mula memulakan sesi menggunakan fungsi session_start(). Kami menggunakan fungsi session_unset() dan session_destroy() untuk mengosongkan semua data sesi dan mengubah hala pengguna kembali ke halaman utama. Ini akan log keluar pengguna selepas mengklik pada pautan "Log Keluar".

Ringkasan

Dalam artikel ini, kami memperkenalkan cara menggunakan PHP untuk menulis sistem mudah yang mencapai lompatan log masuk yang berjaya. Dengan menggunakan PHP dan MySQL, anda boleh mengesahkan nama pengguna dan kata laluan apabila borang diserahkan, mengubah hala pengguna ke halaman lain selepas pengesahan berjaya, dan mengembalikan pengguna ke halaman borang asal jika ralat ditemui. Kami juga membincangkan cara untuk memaparkan nama pengguna yang sedang dilog masuk dalam halaman alu-aluan dan menambah fungsi log keluar dalam fail logout.php. Ini ialah sistem ubah hala kejayaan log masuk yang mudah tetapi berfungsi yang boleh memberikan pelawat pengalaman pengguna yang baik di tapak web anda.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan php untuk menulis lompat log masuk yang berjaya. 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