0

セッションで1つのサイトを開発しました。ローカルサーバーと本番マシンでも機能します。現在、彼らはサイトを SSL HTTPS を使用する新しいサーバーに移動しています。ここで 1 つの問題に直面します。

あるページでセッションが設定されていますが、別のページには持ち越されません。同じコードが http ベースのサーバーで機能します。

これを解決するために次の方法を試しましたが、まだ解決していません

1) セッション ID を URL 経由で渡し、別のページに設定します。ここでも SESSION は設定されていません。

2)一部のフォーラムで提案されているように、phpファイルでこの2行を使用します

ini_set("display_errors",1); error_reporting(E_ALL);

3)いくつかのフォーラムで提案されているように、これらの行を解決するためにも使用します ini_set('session.cookie_domain', 'https://xxx.com');

session_set_cookie_params(ini_get('session.cookie_lifetime'), ini_get('session.cookie_path'), 'https://xxx.com');

4) PHP.ini では、以下のように session の下に表示されます

session.auto_start オフ オフ

session.bug_compat_42 オフ オフ

session.bug_compat_warn オフ オフ

session.cache_expire 180 180

session.cache_limiter nocache nocache

session.cookie_domain 値なし 値なし

session.cookie_httponly オフ オフ

session.cookie_lifetime 0 0

session.cookie_path //

session.cookie_secure オフ オフ

session.entropy_file 値なし 値なし

session.entropy_length 0 0

session.gc_divisor 1000 1000

session.gc_maxlifetime 1440 1440

session.gc_probability 1 1

session.hash_bits_per_character 5 5

session.hash_function 0 0

session.name PHPSESSID PHPSESSID

session.referer_check 値なし 値なし

session.save_handler ファイル ファイル

session.save_path /var/lib/php/session /var/lib/php/session

session.serialize_handler php php

session.use_cookies オン オン

session.use_only_cookies オフ オフ

session.use_trans_sid 0 0

サーバーの Undefined index: userid in /var/www/vhosts/xxx.com/httpdocs/HomePage.php 行 9 に次のエラー メッセージが表示されます。

それでも私は同じ問題を抱えています。この問題の解決方法を教えてください

前もって感謝します

4

2 に答える 2

0

結果に影響を与えるために行った変更に関する情報をいくつか提供しましたが、問題を特定するために行った診断の詳細は提供していません。

ブラウザがセッションCookieを返していることに気づきましたか?セッションファイルが存在することを確認しましたか?セッションはhttpとhttpsにまたがっていますか?もしそうなら、vhostsは異なるuidで実行されますか?

<?php

print_r($_COOKIE);

if ($_COOKIE[sesion_name()]) {
    $path=ini_get('session.save_path') . '/' . $_COOKIE[sesion_name()];
    if (!is_readable(dirname($path)) || !is_dir(dirname($path))) {
      print "bad session dir\n";
    }
    if (!is_readable($path) || !is_file($path)) {
      print "bad session file\n";
    } else if (!is_writeable($path)) {
      print "permissions issue with session file\n";
    }
    print_r(stat($path));
    print "\n\n";
    print @file_get_contents($path);
} else {
    print "no session cookie";
}
于 2012-05-03T09:09:34.673 に答える
0

ここで彼らはVhostサーバーを提供します。Vhost サーバーはセッションを保存しません。だから私だけがこの問題に直面しています..私はこの問題を解決するためにonewayを使用しています。セッションを POST 変数として渡し、各ページにセッション ID を割り当てます。今それは動作します..

于 2012-05-21T12:26:20.997 に答える