首頁 後端開發 PHP問題 怎麼用php寫登錄成功跳轉

怎麼用php寫登錄成功跳轉

Apr 19, 2023 am 11:38 AM

PHP是一種廣泛應用於網頁開發的伺服器端腳本語言,可用於動態網頁的製作和網路應用程式的開發。在網站開發中,登陸系統是非常常見的功能,而登陸成功後跳到指定頁面也是使用者體驗的重要部分。本篇文章將介紹如何使用PHP編寫實現登陸成功跳轉的功能。

1.建立表單頁面

首先,我們需要建立一個登陸頁面,使用戶可以在其中輸入使用者名稱和密碼。為了讓該頁面更有可讀性,我們可以在HTML中使用CSS樣式來美化頁面。我們的表單頁面應該包括以下內容:

  • 登陸表單;
  • 包含使用者名稱和密碼輸入框的表單;
  • 使用POST方法提交表單的按鈕;
  • 輸入錯誤提示。

HTML程式碼如下:

<!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.驗證使用者名稱和密碼

接下來,我們需要驗證使用者輸入的使用者名稱和密碼是否正確。我們可以在伺服器端使用PHP來實現該過程。首先,我們需要在伺服器端建立一個process.php檔案。該文件將接收表單數據,以驗證使用者名稱和密碼是否正確。如果正確,我們將在該文件中將使用者重新導向到另一個頁面。

<?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();
    }
?>
登入後複製

在上面的程式碼中,我們首先使用session_start()函數開啟一個新的會話。然後,我們檢查 $_POST 陣列中是否存在 username 和 password。如果存在,我們從 db_connection.php 檔案匯入資料庫連接變量,因為我們需要從資料庫中檢索使用者資料。然後,我們使用一個 if 語句來檢查輸入的欄位是否為空。如果為空,則重新導向使用者到原始表單頁,並在 URL 中包含錯誤代碼。

如果輸入欄位不為空,則我們可以檢索資料庫中該使用者的記錄。如果我們得到了一個使用者名稱和密碼匹配的記錄,則我們可以將該使用者的 username 儲存在 $_SESSION 中,並使用 header() 函數將使用者重定向到 welcome.php 頁面。如果資料庫中沒有這樣的記錄,則我們將重新導向使用者到原始表單頁,並在 URL 中包含錯誤代碼。

3.建立歡迎頁面

最後,我們需要建立一個歡迎頁面,在使用者成功登陸後,將其重定向到該頁面。歡迎頁面可以簡單地顯示一個歡迎訊息,以及一個按鈕,該按鈕使用戶能夠登出並退出登入。

<!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>
登入後複製

在歡迎頁面中,我們使用 PHP 的 $_SESSION 機制來顯示目前使用者名稱。我們還在頁面中添加了一個連接,該連結透過頁面 logout.php 檔案實現註銷功能。

4.實作註銷功能

最後,我們需要使用 PHP 編寫 logout.php 文件,以實現註銷功能。

<?php
    session_start();
    session_unset();
    session_destroy();
    header("Location: index.php");
    exit();
?>
登入後複製

在 logout.php 檔案中,我們先使用 session_start() 函數啟動會話。我們則使用 session_unset()、session_destroy() 函數來清除所有 session 數據,並將使用者重新導向回首頁。這將使用戶在「登出」連結上點擊後退出登入。

總結

在這篇文章中,我們介紹如何使用 PHP 寫一個實現登陸成功跳轉的簡單系統。透過使用 PHP 和 MySQL,在表單提交時驗證使用者名稱和密碼,在驗證成功後使用戶跳到另一個頁面,同時在遇到錯誤時讓使用者返回原始表單頁。我們也介紹如何在歡迎頁面中顯示目前已登入的使用者名,並在 logout.php 檔案中新增登出功能。這是一個簡單但功能實用的登陸成功跳轉系統,可以在您的網站上為訪客提供良好的使用者體驗。

以上是怎麼用php寫登錄成功跳轉的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)