php がセッション値を取得できない問題の解決策: 最初に「session_temp」という名前のフォルダーを作成し、次にそのアクセス許可を「書き込み可能」に設定し、最後に Apache を再起動します。
推奨: 「PHP ビデオ チュートリアル 」
今日はコードを書き、テストしました。
私の環境はWindows7 apache2.22 php5.2.17
特定のセッション値のコード
page1.php <?php echo "what are you doing now?"; session_start(); $_SESSION['a'] = 'wangzhong'; $_SESSION['b'] = 'liyu'; ?> page2.php <?php echo "I am testing"; session_start(); echo $_SESSION['who'].'<br/>'; echo$_SESSION['hiswife'],'<br/>; ?>
これら 2 つのテスト セッションで読み取られたページでは、page2.php が page1.php に保存されている値を取得できないことがわかりました。具体的な理由は何ですか?
Apache でセッション構成を確認しました。詳細は次のとおりです:
セッション サポート | 有効な |
登録された保存ハンドラー | ファイル ユーザー |
登録されたシリアライザー ハンドラー | php php_binary wddx |
ローカル値 | マスター値 | # session.auto_start |
---|---|---|
Off | ##session.bug_compat_42 | |
Off | session.bug_compat_warn | |
On | ##session.cache_expire | 180 |
session.cache_limiter | nocache | |
session.cookie_domain | ||
値がありません | session.cookie_httponly | Off | オフ
session.cookie_lifetime | 0 | 0 |
session.cookie_path | / | / |
session.cookie_secure | オフ | オフ |
# session.entropy_file | #値がありません | |
#session.entropy_length | 00 | |
1000 | 1000 | |
1440 | 1440 | |
1 | 1 | |
5 | 5 | ##session.hash_function |
0 | ##session.name | |
PHPSESSID | session.referer_check | |
値がありません | ||
files | files | session.save_path | D:/php/session_temp
session.serialize_handler | php | |
##session.use_cookies | オン | |
session.use_only_cookies | Off | |
session .use_trans_sid | 0 | |
その後、セッションがすべて開いていることがわかり、セッションの保存パスを確認したところ、結果は「The session_temp directory was not found in php ディレクトリです。ここが問題かもしれません。同じ名前のフォルダを作成して書き込み可能に設定してみました。その後、Apache を再起動して再度テストしました。今度はセッション値が読み取れることがわかりました。到着。 | ||
session_start() メソッドの前に htmldom があっても問題なく、セッション値の読み込みには影響しません。同様に、session_start() メソッドの前に echo 出力ステートメントがある場合、セッション値の読み取りには影響しません。 |
以上がphpがセッション値を取得できない問題についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。