Penjelasan terperinci tentang cara sesi PHP dimusnahkan selepas 30 minit (dengan contoh kod)

藏色散人
Lepaskan: 2023-04-11 08:40:01
ke hadapan
2044 orang telah melayarinya

Artikel ini akan memperkenalkan kepada anda cara memusnahkan sesi PHP pada masa yang ditetapkan Berikut adalah pengenalan terperinci tentang cara memusnahkan sesi melalui fungsi session_destroy() Saya harap ia akan membantu rakan-rakan yang memerlukan~

Penjelasan terperinci tentang cara sesi PHP dimusnahkan selepas 30 minit (dengan contoh kod)

PHP mempunyai fungsi teras session_destroy() untuk mengosongkan semua nilai sesi. Ia adalah fungsi mudah tanpa parameter yang mengembalikan nilai boolean benar atau salah.

ID sesi PHP disimpan dalam kuki secara lalai. Secara amnya, nama fail kuki sesi ialah PHPSESSID. Fungsi session_destroy tidak akan membatalkan sessionid dalam kuki.

Untuk "memusnahkan sepenuhnya" sesi, ID sesi juga mesti dinyahtetapkan.

Contoh pantas ini menggunakan session_destroy() untuk memusnahkan sesi. Ia menggunakan kaedah set_cookie() untuk mematikan keseluruhan sesi dengan ID sesi PHP yang telah tamat tempoh.

Contoh Pantas

sesi-musnah.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(), &#39;&#39;, time() - 42000, $cookieParam["path"], $cookieParam["domain"], $cookieParam["secure"], $cookieParam["httponly"]);
}

// as a last step, destroy the session.
session_destroy();
Salin selepas log masuk

Nota: Gunakan session_start() untuk memulakan semula sesi PHP selepas ia dimusnahkan. Gunakan PHP$_SESSION untuk menyahset pembolehubah sesi tertentu. Untuk versi PHP yang lebih lama, gunakan session_unset(). output pemusnahan sesi php [Pembelajaran yang disyorkan: Tutorial video PHP]

Mengenai contoh session_destory() log masuk ini

Mari kami cipta kod contoh log masuk untuk menggunakan sesi PHP, session_destroy dll. Ia membolehkan pengguna log masuk dan keluar dari sesi semasa. Jika anda sedang mencari pendaftaran pengguna yang lengkap dan log masuk dalam skrip PHP kemudian gunakan kod ini. Sampel ini menyediakan fungsi tamat tempoh sesi log masuk automatik.

Halaman log masuk dengan borang log masuk

Borang ini menyiarkan nama pengguna dan kata laluan yang dimasukkan oleh pengguna. Ia mengesahkan kelayakan log masuk dalam PHP. Selepas log masuk berjaya, ia menyimpan status log masuk ke dalam sesi PHP. Ia menetapkan masa tamat tempoh kepada 30 minit dari masa log masuk terakhir. Ia menyimpan masa log masuk terakhir dan masa tamat ke dalam sesi PHP. Kedua-dua pembolehubah sesi ini digunakan untuk tamat tempoh sesi secara automatik.

login.php

<?php
session_start();
$expirtyMinutes = 1;
?>
<html>
<head>
<title>PHP Session Destroy after 30 Minutes</title>
<link rel=&#39;stylesheet&#39; href=&#39;style.css&#39; type=&#39;text/css&#39; />
<link rel=&#39;stylesheet&#39; href=&#39;form.css&#39; type=&#39;text/css&#39; />
</head>
<body>
    <div class="phppot-container">
        <h1>Login</h1>
        <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[&#39;submit&#39;])) {
    $usernameRef = "admin";
    $passwordRef = "test";
    $username = $_POST[&#39;username&#39;];
    $password = $_POST[&#39;password&#39;];

    // 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[&#39;login-user&#39;] = $username;
        // login time is stored as reference
        $_SESSION[&#39;ref-time&#39;] = 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 &#39;last active time&#39;.
        // 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[&#39;expiry-time&#39;] = time() + ($expirtyMinutes * 60);
        // redirect to home
        // do not include home page, it should be a redirect
        header(&#39;Location: home.php&#39;);
    } else {
        echo "Wrong username or password. Try again!";
    }
}
?>
</div>
</body>
</html>
Salin selepas log masuk

Papan pemuka mengesahkan sesi log masuk PHP dan memaparkan pautan log masuk dan log keluar

Ini ialah halaman sasaran untuk ubah hala selepas log masuk. Jika sesi log masuk wujud, ia akan memaparkan pautan log keluar. Setelah tamat tempoh ia akan memanggil sesi musnah. php untuk memusnahkan semua sesi. Jika masa tamat tempoh 30 minit dicapai atau sesi kosong, ia akan meminta pengguna untuk log masuk.

home.php

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

Kod PHP ini adalah untuk pengguna yang ingin log keluar sebelum sesi mereka tamat tempoh.

Ia memusnahkan sesi dengan meminta ia dimusnahkan. kod php. Ia kemudiannya mengalihkan pengguna ke halaman log masuk. logout.php

<?php
session_start();
require_once __DIR__ . &#39;/destroy-session.php&#39;;
header(&#39;Location: login.php&#39;);
?>
Salin selepas log masuk

Saya harap contoh ini membantu memahami cara memusnahkan sesi PHP. Dan, ini adalah senario yang sempurna untuk menjelaskan keperluan untuk memusnahkan sesi.

Artikel ini dicetak semula, alamat asal: https://juejin.cn/post/7164391542164520990

Atas ialah kandungan terperinci Penjelasan terperinci tentang cara sesi PHP dimusnahkan selepas 30 minit (dengan contoh kod). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:juejin.im
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!