中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP會話怎么實現在30分鐘后被銷毀

發布時間:2022-11-15 09:32:52 來源:億速云 閱讀:100 作者:iii 欄目:編程語言

本篇內容主要講解“PHP會話怎么實現在30分鐘后被銷毀”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“PHP會話怎么實現在30分鐘后被銷毀”吧!

PHP有一個核心函數session_destroy()來清除所有會話值。它是一個簡單的沒有參數的函數,返回一個布爾值true或false。

PHP的會話ID默認存儲在一個cookie中。一般來說,該會話cookie文件的名字是PHPSESSID。session_destroy函數不會取消cookie中的sessionid。

為了 "完全 "銷毀會話,會話ID也必須被取消設置。

這個快速的例子使用session_destroy()來銷毀會話。它使用set_cookie()方法,通過過期的PHP會話ID來殺死整個會話。

快速例子

destroy-session.php

<?php
// Always remember to initialize the session,
// even before attempting to destroy it.

// Destroy all the session variables.
$_SESSION = array();

// delete the session cookie also to destroy the session
if (ini_get("session.use_cookies")) {
   $cookieParam = session_get_cookie_params();
   setcookie(session_name(), '', time() - 42000, $cookieParam["path"], $cookieParam["domain"], $cookieParam["secure"], $cookieParam["httponly"]);
}

// as a last step, destroy the session.
session_destroy();

注: 使用session_start()在PHP會話銷毀后重新啟動會話。 使用PHP$_SESSION取消設置特定的會話變量。對于較舊的PHP版本,請使用session_unset()。 php會話銷毀輸出

關于此登錄session_destory()示例

讓我們創建一個登錄示例代碼,以使用PHP會話、session_destroy等。它允許用戶從當前會話登錄和注銷。如果您在PHP腳本中尋找完整的用戶注冊和登錄,請使用此代碼。 此示例提供了自動登錄會話到期功能。

帶有登錄表單的登錄頁

此表單發布用戶輸入的用戶名和密碼。它驗證PHP中的登錄憑據。 成功登錄后,它將登錄狀態存儲到PHP會話中。它將過期時間設置為從上次登錄時間起30分鐘。 它將上次登錄時間和到期時間存儲到PHP會話中。這兩個會話變量用于使會話自動過期。

login.php

<?php
session_start();
$expirtyMinutes = 1;
?>
<html>
<head>
<title>PHP Session Destroy after 30 Minutes</title>
<link rel='stylesheet' href='style.css' type='text/css' />
<link rel='stylesheet' href='form.css' type='text/css' />
</head>
<body>
   <div class="phppot-container">
       <h2>Login</h2>
       <form name="login-form" method="post">
           <table>
               <tr>
                   <td>Username</td>
                   <td><input type="text" name="username"></td>
               </tr>
               <tr>
                   <td>Password</td>
                   <td><input type="password" name="password"></td>
               </tr>
               <tr>
                   <td><input type="submit" value="Sign in"
                       name="submit"></td>
               </tr>
           </table>
       </form>
<?php
if (isset($_POST['submit'])) {
   $usernameRef = "admin";
   $passwordRef = "test";
   $username = $_POST['username'];
   $password = $_POST['password'];

   // here in this example code focus is session destroy / expiry only
   // refer for registration and login code https://phppot.com/php/user-registration-in-php-with-login-form-with-mysql-and-code-download/
   if ($usernameRef == $username && $passwordRef == $password) {
       $_SESSION['login-user'] = $username;
       // login time is stored as reference
       $_SESSION['ref-time'] = time();
       // Storing the logged in time.
       // Expiring session in 30 minutes from the login time.
       // See this is 30 minutes from login time. It is not 'last active time'.
       // If you want to expire after last active time, then this time needs
       // to be updated after every use of the system.
       // you can adjust $expirtyMinutes as per your need
       // for testing this code, change it to 1, so that the session
       // will expire in one minute
       // set the expiry time and
       $_SESSION['expiry-time'] = time() + ($expirtyMinutes * 60);
       // redirect to home
       // do not include home page, it should be a redirect
       header('Location: home.php');
   } else {
       echo "Wrong username or password. Try again!";
   }
}
?>
</div>
</body>
</html>

儀表板驗證PHP登錄會話并顯示登錄和注銷鏈接

這是登錄后重定向的目標頁面。如果登錄會話存在,它將顯示注銷鏈接。 一旦超時,它將調用銷毀會話。php代碼來銷毀所有會話。 如果達到30分鐘到期時間或會話為空,它會要求用戶登錄。

home.php

<?php
session_start();
?>
<html>
<head>
<title>PHP Session Destroy after 30 Minutes</title>
<link rel='stylesheet' href='style.css' type='text/css' />
<link rel='stylesheet' href='form.css' type='text/css' />
</head>
<body>
   <div class="phppot-container">
<?php
if (! isset($_SESSION['login-user'])) {
   echo "Login again!<br><br>";
   echo "<a href='login.php'>Login</a>";
} else {
   $currentTime = time();
   if ($currentTime > $_SESSION['expiry-time']) {
       require_once __DIR__ . '/destroy-session.php';
       echo "Session expired!<br><br><a href='login.php'>Login</a>";
   } else {
       ?>
       <h2>Welcome <?php echo $_SESSION['login-user'];?>!</h2>
       <a href='logout.php'>Log out</a>
<?php
   }
}
?>
</div>
</body>
</html>

此PHP代碼用于希望在會話到期前注銷的用戶。

它通過要求銷毀會話來銷毀會話。php代碼。然后,它將用戶重定向到登錄頁面。 logout.php

<?php
session_start();
require_once __DIR__ . '/destroy-session.php';
header('Location: login.php');
?>

到此,相信大家對“PHP會話怎么實現在30分鐘后被銷毀”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

吉隆县| 德兴市| 宁明县| 墨竹工卡县| 马龙县| 台东市| 屯门区| 两当县| 汶上县| 杭锦旗| 廊坊市| 江达县| 宜丰县| 大石桥市| 南华县| 北票市| 兴文县| 高淳县| 博乐市| 图们市| 玛纳斯县| 辰溪县| 巴中市| 迭部县| 原平市| 万载县| 靖安县| 资阳市| 江油市| 井研县| 邵东县| 如皋市| 闽侯县| 玉环县| 抚宁县| 察哈| 五指山市| 安乡县| 五大连池市| 车致| 泸水县|