[编辑解决]
好的问题解决了!对于 debian 用户,您需要编辑带有默认配置的 /etc/php5/apache2/conf.d/suhoshin.ini,如下所示: suhosin.session.cryptua = on suhosin.session.cryptdocroot = on 只需将这两个选项关闭suhosin.session.cryptua = off suhosin.session.cryptdocroot = off 重启你的 apache 服务器
[结束编辑]
我有 2 个应用程序:app1.domain.ltd app2.domain.ltd,/home/www/app1 和 /home/www/app2 在同一台服务器上。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+squeeze14 Apache 版本 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>';