7

Systemという名前のサブディレクトリを持つメインディレクトリがありSubsystemます。メイン ディレクトリからのセッションがサブディレクトリで機能しません。

echo session_save_path();両方のフォルダーにいると、 が表示されます"/tmp"

session_save_path("../tmp");次に、サブディレクトリに入れようとしましたが、表示されます"This webpage has a redirect loop"

session.phpSystemディレクトリ内:

<?php
session_start( );

if (!($_SESSION['uid']))
{
    header("Location:index.php");
}
else
{
    $_SESSION['uid'] = $_SESSION['uid'];
}
?>

サブシステム フォルダー内の session.php:

<?php
session_save_path("../tmp");
session_start( );

if (!($_SESSION['uid']))
{
    header("Location:index.php");
}
else
{
    $_SESSION['uid'] = $_SESSION['uid'];
}

?>

私はずっとグーグルで検索しましたが、まだ機能させることができません。

4

2 に答える 2

1

ディレクトリはセッションの状態には影響しません (特定の Apache-PHP Web サイトのすべてのディレクトリは、標準構成で同じセッションにアクセスします)。を使用する必要はありませんsession_save_path()

一部の問題は、「uid」をそれ自体に設定していることだと思います($_SESSION['uid'] = $_SESSION['uid'];)-したがって、実際に値を設定しない可能性があり、設定されていない場合は無期限にリダイレクトする可能性があります。

セッションが実際に機能していることを確認するために、次の簡単なテストをお勧めします。

/session_set.php

<?php
    session_start();
    $_SESSION['uid'] = 123;

/sub_dir/session_get.php

<?php
    session_start();
    echo $_SESSION['uid'];
于 2012-12-05T03:05:24.373 に答える
0

セッションは、登録されたセッション変数とその値が格納されるサーバー上の一時ディレクトリにファイルを作成します。このデータは、その訪問中にサイトのすべてのページで利用できます。

一時ファイルの場所は、session.save_path という php.ini ファイルの設定によって決まります。このパスを確認してください。

[session-save-path()][1] 現在のセッションの保存パスを取得および/または設定します。

この行を書いて php.ini で正しいパスを確認する必要はないと思います。

セッションのために、私はいくつかの有用な記事を見つけましたhttp://www.tutorialspoint.com/php/php_sessions.htm

ありがとう。

于 2012-12-05T03:17:08.533 に答える