【问题标题】:How to have session time logout for the entire website?如何让整个网站的会话时间注销?
【发布时间】:2021-12-09 02:14:47
【问题描述】:

我想建立一个带有会话时间注销帐户的电子商务网站,我知道 session_start()、session_destroy() 和 time()。

我在我的 login.php 中使用了这个代码,这个代码在提交登录表单后执行:

$_SESSION['email'] = $_POST['email'];
$_SESSION['time'] = time();
header("location:logined.php");

这里是 logined.php 的代码:

<?php
      session_start();
      if(isset($_SESSION['email'])) 
      {
        if((time() - $_SESSION['time']) > 90 )
        {
          header('location:logout.php');
        }
        else
        {
          $_SESSION['time'] = time();
          echo"<div class='register-header d-flex flex-column py-5'>";
          echo"<h1 align='center'>SESSION TIME</h1>";
          echo"<h1 align='center'>".$_SESSION['time']."</h1>";
          echo"</div>";
        }
      }
      ?>

因此,有了这些,我能够创建会话时间注销,但它仅适用于 logined.php,我只是使用 youtube 上教程视频中的这段代码...如何为整个会话创建这些会话时间注销网站?

【问题讨论】:

  • 在每个页面中调用session_start() 怎么样
  • 您还尝试了什么?你被困在哪里了?如果您真的想编写一个电子商务网站,您可能会有更多应该在页面之间共享的常见内容?另外,请不要以如此混乱的代码开始您的项目 - 不要混合 HTML 标记和逻辑,不要忘记在发送 Location 标头后使用 exit

标签: php


【解决方案1】:

你需要创建一个文件 session.php

<?php
session_start();
if(isset($_SESSION['email'])) {
    if ((time() - $_SESSION['time']) > 90) {
        header('location:logout.php');
    }
}else{
    header('location:logout.php');
}

*现在在您想要维护此会话的每个 .php 中检查请将此文件包含在每个文件的开头,例如 profile.php

<?php
require_once("session.php");

// YOUR CODE HERE

【讨论】:

    猜你喜欢
    • 2012-01-13
    • 2018-09-24
    • 2010-12-27
    • 2019-08-03
    • 2017-04-13
    • 1970-01-01
    • 1970-01-01
    • 2014-01-19
    • 1970-01-01
    相关资源
    最近更新 更多