会话停止与帧正常工作

时间:2014-07-15 19:35:09

标签: php session frames frameset

我正在使用框架和会话在我的网站上工作。它有1帧,其中显示所有会话数据,以及2个其他帧,只有随机的东西。经过一段时间后,会话数据停止显示,只有当我手动进入我的测试页面时才会再次正常工作,例如“mydomain.com/test.php”,然后返回“mydomain.com”。而这个“test.php”页面只是回应我的众多会话之一。如果我只是去随机页面,不使用会话,它不会修复。 这是我在test.php中的所有内容,为了给你一个更好的主意:

session_start();
echo $_SESSION['oneofmanysessions'];

我该如何解决这个问题? 附:抱歉英文不好._。

我的index.php页面:

<?php
session_start();
?>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
    <html>
     <head>
      <meta http-equiv="Content-Type" content="text/html; charset="utf-8">
      <link rel="shortcut icon" href="images/icon.ico" />

     </head>
     <frameset rows="12%,*" bordercolor="black" >
       <frame src="menu.php" name="MENU" scrolling="no" noresize>
       <frameset cols="*,13%" bordercolor="black">
         <frame src="main.php" name="MAIN" scrolling="no" noresize  >
         <frame src="details.php" name="DETAILS" scrolling="no" noresize>
       </frameset>
     </frameset>
    </html>

1 个答案:

答案 0 :(得分:0)

PHP中的会话的默认生存期仅为24分钟,因此根据其他活动(导致会话垃圾收集器是否运行),您的会话可能会在此之后到期。这需要一个跟踪会话上次访问时间的文件系统,如果您的文件系统没有 - 会话将过期,除非再次写入。

这在session.gc_maxlifetime下的手册中有记录,您可能还想在“How do I expire a PHP session after 30 minutes?”问题下阅读有关PHP会话的好文章。