0

header.php には次のものがあります。

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

そしてさらに下に:

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

基本的に、ユーザーが Web サイトのテーマを選択するドロップダウン ボックスがあり、これにより $_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'];
}

$_GET 配列にあるかどうかに関係なく、 $_SESSION['theme'] を設定しているようです。

また、配列インデックスを引用符で囲んでいることに注意してください。この目的で裸の単語を使用することは避けてください。

于 2009-07-08T10:53:23.453 に答える
0

直感的ではありませんが、セッションを使用しているすべてのPHPページでセッションを開始する必要があります。お役に立てば幸いです。

于 2009-07-08T14:42:13.540 に答える