iframe使用不同的sessionid

时间:2011-12-05 13:41:24

标签: php session

我的一个页面上有一个显示计时器的iframe。重要的是,当会话结束并且用户返回时,计时器必须再次从0开始。这不起作用,在排除故障后,我意识到我的iframe有另一个sessionid而不是其他页面。因此,如果用户注销并返回,则iframe将继续使用上一个sessionid。我做错了什么,如何让我的iframe不使用它自己的会话ID?因此,只需在timer.php(Iframe页面/第2页)上总结一下,session_id()在注销并重新登录时保持不变。我需要它使用与page1相同的会话信息,而不是它'自己的。我希望我能正确解释。

PAGE1

if ($_SESSION['auth']) {
include 'datalogin.php';
$sessionId = session_id();
$tid = $_SESSION['tid'];
$userid = $_SESSION['userid'];
echo "<IFRAME SRC='timer.php?tid=$tid&userid=$userid' WIDTH='100' HEIGHT='50' frameborder='0'></IFRAME>";

TIMPER.PHP

<?php
header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');
session_start();
?>
<head>
<meta http-equiv="Refresh" content="1; ">
</head>
<body>
<?php
session_start();
$sessionId = session_id();
echo $sessionId;

1 个答案:

答案 0 :(得分:1)

解决方案#1:你可以使用(jquery)ajax而不是iframe(这可能无法解决你的问题,我真的不知道你为什么使用iframe)

解决方案#2:您是否尝试过使用session_name('YOUR_SESSION_NAME_HERE');在使用session_start()之后的每个页面上; ?

解决方案#3:你可以将php会话ID作为GET参数(timer.php?tid = $ tid&amp; userid = $ userid&amp; sess =“。session_id())传递给你的iframe(就我而言)知道这不是那么安全,无论如何可以在自定义情况下解决方案)然后你只需要session_id($ _ GET ['sess']);在session_start()之后;