首頁  >  文章  >  後端開發  >  怎麼用php寫登錄成功跳轉

怎麼用php寫登錄成功跳轉

PHPz
PHPz原創
2023-04-19 11:38:351035瀏覽

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