【问题标题】:Theme value is forgotten when the user naviages to another page会话开始
【发布时间】:2010-11-09 00:00:47
【问题描述】:

在 header.php 我有:

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

再往下我有:

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

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

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

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

请帮帮我!

【问题讨论】:

    标签: php session variables reset


    【解决方案1】:

    你在 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'];
    }
    

    无论它是否在 $_GET 数组中,似乎都在设置 $_SESSION['theme']。

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

    【讨论】:

    • 沿着正确的轨道 - 我认为,但是 print_r 只是显示 Array ( )
    • 将整个 header.php 添加到问题中。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-24
      • 1970-01-01
      • 2019-01-15
      • 2023-03-23
      • 1970-01-01
      相关资源
      最近更新 更多