会话开始

0 php variables session reset

在header.php我有:

<?php
if(!isset($_SESSION))
{
session_start();
}
?>
Run Code Online (Sandbox Code Playgroud)

进一步向下我有:

$_SESSION[theme] = $_GET[theme];
Run Code Online (Sandbox Code Playgroud)

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

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

如果是print_r($ _ SESSION),则在Array [theme] =>之后显示正确的值,但是如果我单击其他页面,则Array [theme] =>将重置为空白.

请帮我!

Pau*_*xon 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'];
}
Run Code Online (Sandbox Code Playgroud)

它看起来像设置$ _SESSION ['theme']而不管它是否在$ _GET数组中.

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