在同一域上的Zend和纯PHP之间共享会话

在同一域上的Zend和纯PHP之间共享会话,php,zend-framework,session,Php,Zend Framework,Session,我有两个这样的文件夹: /公共/zend_应用程序/ /公共/纯php/ Drupal已经安装在root中 现在,我想在第二个路径中创建一个会话,并在zend中使用它。 我尝试了一些不同的方法,但结果失败了 我检查会话\u id和会话\u保存\u路径,这两个路径现在相同 在第二个文件夹中,我有: session_start(); session_id($_COOKIE[PHPSESSID]); $_SESSION[user] = 123; 在第一个例子中: $someNamespace = n

我有两个这样的文件夹:

  • /公共/zend_应用程序/
  • /公共/纯php/
  • Drupal已经安装在root中

    现在,我想在第二个路径中创建一个会话,并在zend中使用它。 我尝试了一些不同的方法,但结果失败了

    我检查会话\u id会话\u保存\u路径,这两个路径现在相同

    在第二个文件夹中,我有:

    session_start();
    session_id($_COOKIE[PHPSESSID]);
    $_SESSION[user] = 123;
    
    在第一个例子中:

    $someNamespace = new Zend_Session_Namespace('ns');
    //......
    
    session_id($_COOKIE[PHPSESSID]);
    print_r($_SESSION);
    
    但它返回空数组

    我还在第二个文件夹中尝试了这个:

    set_include_path ( $zend_path );
    include_once $zend_path . '/Session.php';
    $user = new Zend_Session_Namespace('user');
    
    但是我得到了这个错误:(我不能阻止运行会话\u start来逃避这个错误)

    Zend_会话_异常:会话已由启动 Zend_session::start()中的session.auto-start或session_start()(第行 462的C:\wamp\www\zend\u app\library\zend\Session.php)

    现在我的问题是,我怎样才能与zend分享它? Zend是否使用特殊处理程序?如何在纯php代码中使用它?

    看一下:

    摆脱
    session\u id()
    ,您不需要给PHP提供cookie,它是自动处理的

    我刚刚在ZF控制器中尝试过:

    $session = new Zend_Session_Namespace('ns');
    $session->foo = "bar";
    print_r($_SESSION);
    
    这就是我得到的:

    Array
    (
            [ns] => Array
            (
                [foo] => bar
            )
    }
    
    因此我现在可以用纯PHP访问
    $\u会话['ns']['foo']
    。我还可以在纯PHP中设置值:

    $_SESSION['ns']['baz'] = "quz";
    
    以及ZF中的后续访问:

    echo $session->baz; // gives me "quz"
    
    看看:

    摆脱
    session\u id()
    ,您不需要给PHP提供cookie,它是自动处理的

    我刚刚在ZF控制器中尝试过:

    $session = new Zend_Session_Namespace('ns');
    $session->foo = "bar";
    print_r($_SESSION);
    
    这就是我得到的:

    Array
    (
            [ns] => Array
            (
                [foo] => bar
            )
    }
    
    因此我现在可以用纯PHP访问
    $\u会话['ns']['foo']
    。我还可以在纯PHP中设置值:

    $_SESSION['ns']['baz'] = "quz";
    
    以及ZF中的后续访问:

    echo $session->baz; // gives me "quz"
    

    删除
    session\u id
    调用,它们不应该在那里。此外,还应引用数组索引,例如
    $\u SESSION['user']
    。我建议在访问PHP应用程序后检查会话文件中是否有任何内容。我检查了它,但没有工作。当我尝试“echo session_id();”删除
    session_id
    调用时,它返回不同的值,它们不应该在那里。此外,还应引用数组索引,例如
    $\u SESSION['user']
    。我建议在访问PHP应用程序后检查会话文件中是否有任何内容。我检查了它,但没有工作。当我尝试“echo session_id()”时,它返回不同的值。您还需要确保与我想要的相同,反之亦然,但是此代码不适用于我,我认为问题可能是由安装在root中的drupal cms引起的……您还需要确保与我想要的相同,反之亦然,然而,这段代码不适合我,我认为这个问题可能是由安装在根目录中的drupal cms引起的。。。