在header.php中我有:
<?php
if(!isset($_SESSION))
{
session_start();
}
?>
进一步下来我有:
$_SESSION[theme] = $_GET[theme];
基本上有一个下拉框,用户选择网站主题,这设置$ _GET [主题]的值,我希望记住选择,但每当页面被更改时,主题重置为默认值。
header.php是每个页面的头文件 - 不知道这是不是问题。
如果是print_r($ _ SESSION),则在Array [theme] =&gt;之后显示正确的值。但如果我点击不同的页面,那么Array [theme] =&gt;重置为空白。
请帮助我!
答案 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页面上启动会话。希望有所帮助。