0

我已经在 index.php 中注册了一个会话并打印它。

$_SESSION['login'] = 'ok'; //print 'ok'

然后在 page1.php 得到这个会话并改变它。

<?$_SESSION['login'] = 'no';?>
setTimeout('window.location="index.php"', 100);

现在在 index.php 中仍然有 print 'ok'。怎么能?

4

2 回答 2

3

从你的评论来看,你session_start()对吗?但让我们一步一步来:

  1. 你去index.php并将你的会话变量设置为'ok'
  2. 您转到page1.php并将会话设置为“否”
    ,然后将页面重定向回index.php
  3. 您在index.php中打印出 session 变量的值,即使在page1.php中将值设置为“no”后也返回“ok”,对吗?但是当您被重定向到index.php时,您忘记了将会话的值更改回“ok”

因为您在 index.php 中没有任何条件,即使您在其他页面上设置它,它也会始终打印 'ok'

于 2013-06-08T02:47:31.700 回答
0

在每个脚本上,您需要包含以下代码行:

<?php session_start(); ?>

如果您不这样做,PHP 将不会保留$_SESSIONvars,它将默认为最初设置的任何内容。

要了解有关 PHP$_SESSION变量的更多信息,请查看此处:PHP: session_start()

于 2013-06-08T02:40:04.307 回答