[解決済みの編集]
問題は解決しました。Debianユーザーの場合、次のようなデフォルト設定が付属している/etc/php5/apache2/conf.d/suhoshin.iniを編集する必要があります:suhosin.session.cryptua = on suhosin.session.cryptdocroot=onこれら2つのオプションをオフにするだけですsuhosin.session.cryptua=オフsuhosin.session.cryptdocroot=オフapacheサーバーを再起動します
[編集終了]
同じサーバー上にapp1.domain.ltdapp2.domain.ltd、/ home / www / app1、/ home / www/app2の2つのアプリケーションがあります。app1 / index.php:
<?php
ini_set('session.cookie_domain', '.domain.ltd');
session_name('mysession');
session_start();
if (!isset($_SESSION['data'])) $_SESSION['data'] = time();
echo session_id();
var_dump($_SESSION);
?>
app2 / index.php
<?php
ini_set('session.cookie_domain', '.domain.ltd');
session_name('mysession');
session_start();
echo session_id(); //same id as app1
var_dump($_SESSION); //session is empty
?>
最初にapp1/index.phpを呼び出します(複数回呼び出すとセッションで同じデータが保持されます)、次にapp2 / index.phpを呼び出すと、app1 / index.phpに戻ってもセッションは空になり、データが再生成されます新しい時間で..。
PHPバージョン5.3.3-7+squeeze14ApacheバージョンApache/2.2.16(Debian)
セッション設定-> http://img211.imageshack.us/img211/1748/sessioninfoya3.png
何がこれを引き起こすのか疑問に思っています、私は疲れていますか?o_O助けていただければ幸いです。
ところで:私はデバッグにこのコードを使用していて、セッションコンテンツを除いてすべて同じ情報を出力します:
echo '<pre>';
echo '------ACTIVE SESSION :---------<br>';
echo 'SESSION SAVE PATH : '.session_save_path().'<br>';
echo 'COOKIE PARAMS : ';
var_dump(session_get_cookie_params());
echo 'SESSION NAME : '.session_name().'<br>';
echo 'SESSION SSID : '.session_id() .'<br>';
var_dump($_SESSION);
echo '----------- END ---------<br><hr>';
echo '</pre>';