在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] =>将重置为空白.
请帮我!
你在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数组中.
另请注意,我在数组索引周围使用了引号 - 避免为此目的使用裸字.