会话开始

时间:2009-07-08 10:51:12

标签: php session variables reset

在header.php中我有:

<?php
if(!isset($_SESSION))
{
session_start();
}
?>

进一步下来我有:

$_SESSION[theme] = $_GET[theme];

基本上有一个下拉框,用户选择网站主题,这设置$ _GET [主题]的值,我希望记住选择,但每当页面被更改时,主题重置为默认值。

header.php是每个页面的头文件 - 不知道这是不是问题。

如果是print_r($ _ SESSION),则在Array [theme] =&gt;之后显示正确的值。但如果我点击不同的页面,那么Array [theme] =&gt;重置为空白。

请帮助我!

2 个答案:

答案 0 :(得分:9)

你在header.php中的意图是这样的

session_start();

//initialise new session
if (!isset($_SESSION['theme']))
{
    $_SESSION['theme']='default theme';
}

//change theme if user requested it
if (isset($_GET['theme']))
{
    $_SESSION['theme'] = $_GET['theme'];
}

看起来好像在设置$ _SESSION ['theme'],无论它是否在$ _GET数组中。

另请注意,我在数组索引周围使用了引号 - 避免为此目的使用裸字。

答案 1 :(得分:0)

不直观地说,你必须在你正在使用它的每个PHP页面上启动会话。希望有所帮助。

相关问题