1

以下のように、複数のインクルードを含む多くのファイルがあります。

File1に含まれFile2、そのFile2下にあるFile3

File1 からセッション変数を宣言したいのでsite_user_conutry、File2 をチェックしています。セッション変数に値がない場合は、File1.php のみを含めます。

私は各[年齢を追加session_start();しましたが、それでも機能しませんか??

上記の状態でセッションを動作させるにはどうすればよいか教えてください。

4

4 に答える 4

2

File2 内

if ($_SESSION["site_user_country"] != null) 
{
    include_once(File3);
}
于 2009-05-29T21:50:19.783 に答える
2

コードの最初の行で session_start を 1 回だけ実行します。

ドキュメントによると: バージョン 4.4.3 以降、セッションが既に開始されている間に session_start() を呼び出すと、レベル E_NOTICE のエラーが発生します。また、2 回目のセッション開始は単純に無視されます。

file1 が file2 に含まれている場合、file2 のコードは file1 の前に実行されます。したがって、file1 で何かを宣言すると、file2 には表示されない可能性があります (コードによって異なります...)。とにかく、PHP プログラミングの最新の方法ではありません。(oo と __autoload を参照)

于 2009-05-29T21:56:56.150 に答える
1

セッション変数をどのように設定していますか? 次のように設定してみてください。

$_SESSION['site_user_conutry'] = 'United-Kingdom';

session_start() をドキュメントの一番上に配置しましたか、または少なくとも情報を出力する前に配置しましたか?

于 2009-05-29T21:50:48.690 に答える
1

関数ではなく、コードを実行するファイルを含めていると仮定します。

File1 をインクルードしてセッション変数を設定するコードは、最初の反復で File2 のコードの前に実行する必要があります。

次の反復では、セッションが値を保持します。

セッション変数を設定するには、$_SESSION グローバル配列を使用します。


$_SESSION["name"] = "value";
于 2009-05-29T21:53:09.263 に答える