0

在 header.php 我有:

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

再往下我有:

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

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

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

如果 print_r($_SESSION) 则在 Array [theme] => 之后显示正确的值,但如果我单击不同的页面,则 Array [theme] => 将重置为空白。

请帮我!

4

2 回答 2

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 数组中。

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

于 2009-07-08T10:53:23.453 回答
0

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

于 2009-07-08T14:42:13.540 回答