多子域会话

时间:2013-01-26 06:40:09

标签: php session

[编辑已解决]

好的问题解决了! 对于debian用户,您需要编辑带有默认配置的/etc/php5/apache2/conf.d/suhoshin.ini,如下所示:      suhosin.session.cryptua = on      suhosin.session.cryptdocroot = on 只需将这两个选项关闭即可      suhosin.session.cryptua =关闭      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 Version 5.3.3-7 + squeeze14 Apache Version Apache / 2.2.16(Debian)

会话设置 - &gt; http://img211.imageshack.us/img211/1748/sessioninfoya3.png

想知道是什么导致这种情况,我累吗? O_O 任何帮助将不胜感激。

btw:我正在使用此代码进行调试,并打印除会话内容之外的所有相同信息:

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>';

1 个答案:

答案 0 :(得分:0)

更改session_name('my_session');不同的