gpt4 book ai didi

php - Zend Session、Zend_Session_SaveHandler_DbTable 和异步请求

转载 作者:搜寻专家 更新时间:2023-10-31 21:38:43 25 4
gpt4 key购买 nike

我正在使用 Zend Session 结合 Zend_Auth 和 Session 命名空间,方式如下:

application.ini

    resources.session.saveHandler.class = "Zend_Session_SaveHandler_DbTable"
resources.session.saveHandler.options.name = "session"
resources.session.saveHandler.options.primary = "id"
resources.session.saveHandler.options.modifiedColumn = "modified"
resources.session.saveHandler.options.dataColumn = "data"
resources.session.saveHandler.options.lifetimeColumn = "lifetime"

Bootstrap

     /**
* Start session
*/
public function _initCoreSession() {
$this->bootstrap('db');
$this->bootstrap('session');
Zend_Session::start();
}

虽然 Zend_Auth 似乎工作正常,但其他 session 命名空间似乎表现得很奇怪。

我使用多个异步请求(使用 jQuery)。

-Init(将数组初始化到 session 中)

    $ns = new Zend_Session_Namespace('scanner');
$ns->unsetAll();
$ns->pages = array();

-循环(将东西放入数组,这部分被调用1到n次)

    //Fetch the Session Namespace
$ns = new Zend_Session_Namespace('scanner');
//Set scanned page to true
$ns->pages[$this->getRequest()->getParam('nextUrl')] = true;

-Finalize(处理数组)

    //Fetch the Session Namespace
$ns = new Zend_Session_Namespace('scanner');
//Do stuff with $ns->pages

然而,在循环调用的某处,pages 变量似乎被重置(因此为 null)。

这在默认 session 行为中有效,但当我设置 Zend_Session_SaveHandler_DbTable 时它开始失败。

*编辑*

作为对第一个答案的回应(因为它需要一个代码块)

我正在使用 $.post 向我的应用程序发出请求。它向应用程序发送带有数据(URL)的请求,并接收状态更新和下一个请求的 URL。这会循环直到它没有收到下一个 url。

使用的 jQuery 代码

    function scanUrl(url)
{
$.post("http://www.example.com/scan/scanurl", { nextUrl: url },
function(data)
{
updateView(data);

if(data.nextUrl != null)
scanUrl(data.nextUrl);
else
finalize();
});
}

最佳答案

您是否通过异步请求传递了 session ID?如果我没有误解你是这样称呼的话:

$.ajax({'url' : 'http://something',...})

您需要在您拥有的地方添加一个“数据”部分:

sessionIdVariable=您当前的 session ID

关于php - Zend Session、Zend_Session_SaveHandler_DbTable 和异步请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13568498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com