1

それで、私はしばらくの間完全に機能するログイン/セッションシステムをセットアップしました。ただし、過去数日以内に、セッションはサブドメインに伝達されません。

私は上記のsession_start呼び出しを使用しています:

session_set_cookie_params(0, '/', '.domain.com');

繰り返しますが、これはうまくいきました。ベースドメインでログインしてからサブドメインに移動すると、セッションが引き継がれます。または、サブドメインにログインして他のドメインに移動することもできます。例:

  • domain.comでのログインは機能します
  • subdomain.domain.comに移動しません
  • domain.com/subdomainに移動します

このスクリプトはまったく変更されていません。失敗するだけです。おそらくホストが責任を負っていますか?

編集: サブドメインにログインしても、PHPセッションは作成されますが、機能しません。$ _SESSION配列データなどは機能しませんが、ブラウザのCookieでPHPセッションを確認できます。

4

2 に答える 2

1

修正しました。PHP.iniのsession.save_pathが/tmpに設定されていたため、何らかの理由で、サブドメインが機能したり、セッションファイルにアクセスしたりできなかったようです。

PHP.iniをhtml階層内の新しいフォルダーに変更しましたが、機能しました。

引き続きsession_set_cookie_params(0、'/'、'.domain.com');を使用します。そして私の以前のすべての設定。だから私のコードは大丈夫だった、どういうわけか保存パスが機能しなくなった。非常に奇妙な。

于 2012-11-17T03:25:28.403 に答える
0

次のようなini_set()関数を使用してみてください。

ini_set('session.cookie_domain',
substr($_SERVER['SERVER_NAME'], strpos($_SERVER['SERVER_NAME'],"."),100) );

または、.htaccessを使用してみてください

php_value session.cookie_domain .domain.com

または、次のように、セキュアパラメータをfalseに設定してみてください

session_set_cookie_params(0, '/', '.domain.com', false, false);
于 2012-11-16T03:08:08.327 に答える