- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图使用jQuery.address
插件来创建一些深层链接。但是,一旦我启动 .change()
函数并启动 JavaScript,我的后端 PHP 应用程序就会将我注销。
我推断,这一定是因为我启动的每个 ajax 请求似乎都在重新生成 session_id。
如果我尝试从 preDispatch
回显 session ID,则 sessionId 与启动请求的窗口中的 session ID 相同。
如果我尝试从 postDispatch
回显它,它已经更改为其他内容,并且当我刷新主窗口时,主窗口 sessionId 也已更改。
可能是什么设置的?
编辑2011年6月26日12:00
我发现了似乎破坏了我的应用程序的代码。
使用哈希值 (#
) 重新加载页面后,我使用 $.address.change()
函数内的函数来找出要加载的状态。由于我只使用了应用程序中的 3 个面板之一,因此它只检查一个参数,如下所示:
urlVar=this.path();
resArray = urlVar.split('/');
urlVariable = resArray.shift();
if (typeof urlVariable != "undefined") {
f.selectFromLeftPanel(urlVariable);
}
在selectFromLeftPanel()
中是这样的:
if (typeof context == "object") {
var itemId = $(context).attr('id');
$("#" + itemId).addClass('loading');
Frontpage.closePanes();
$.address.value(itemId);
} else if (typeof context == "string") {
itemId = context;
}
switch (itemId) {
case 'zebra_left_window_forms':
c.log($(this));
Frontpage.resetPane(Frontpage.firstPane);
Frontpage.getPaneContent(Frontpage.startCategory,
Frontpage.firstPane, 'category', function() {
f.showPane(Frontpage.firstPane, itemId);
});
f.setSelected(context, f.zeroPane);
break;
}
Pane
只是我用来隐藏/显示不同区域内容的列。 getPaneContent()
函数是进行 ajax 调用的地方,如下所示:
$.get(Frontpage.BASEURL + data + "/rand/" + rand + "/value/"
+ value + "/time/" + Math.random(), function(result) {
Frontpage.resetPane(pane);
var $newrow = $(into).find('div:first');
// c.log($newrow);
$($newrow).after(result);
var retValue = $('#returnData', pane).html();
c.log(retValue);
$('#returnData', pane).remove();
$('#zebra_content_pane_back_button').attr('href', retValue);
$('#zebra_content_pane_back_button').attr('rel', retValue);
Frontpage.hideBackButton();
if (callbackFn) {
if (typeof callbackFn == 'function') {
callbackFn.call(this);
}
}
delete result;
});
好的,现在更详细地了解问题本身:
发生的情况是,在发出 ajax 请求时, session 数据会以某种方式丢失。由于应用程序用户必须登录系统才能执行任何操作,因此在调用 getPaneContent()
函数之后(即在进行 ajax 调用之后)将显示登录屏幕。我用页面的一部分对此进行了测试,我不要求 session ,我发现 session 是空的。由于我没有清除数据,并且 session 超时尚未发生,因此肯定是 session ID 在执行 Ajax 请求时以某种方式发生了更改,因此新的 session ID 没有任何关联的数据有了它。
现在,问题是 - 如果我不使用 jQuery.address 插件,则不会发生注销。 ajax 工作得很好,但每个 ajax 响应都有一个 Set-Cookie
header 集,它会更改主屏幕的 session ID。我确实认为,这可能以某种方式涉及到这个问题。 如何避免注销?
此外,只有当我从 $.address.change()
函数调用 f.selectFromLeftPanel()
时,才会发生注销。如果我忽略此调用,ajax 会工作, session ID 仍然会更改,但不会注销。
最佳答案
看来我已经找到解决办法了。
在 ajax 请求期间,我调用了一个扩展 Zend_Auth
的类,我用它来确定用户。好吧,在这个扩展类的 init()
函数中,我调用了 Zend_Session::rememberMe(60 * 60 * 24 * 7)
,因为我认为这是什么所做的是延长我的 session 的生命周期,而实际上,它会生成一个新的 session 来接收这个新的生命周期。
虽然我已经解决了这个问题,但它让我想知道,为什么它以前没有失败,为什么现在开始失败。
关于php - 在 Zend 中重写 session ID 的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6479961/
嗨,我有一个包含此代码的 Zend 表单 $field = new Zend_Form_Element_Submit('submit'); $field->setAttrib('class', 'bt
我现在正在尝试使用 zend expressive 并研究如何处理数据库。我在看this ,但不清楚。我使用 composer 安装 zend-db,它提到在 dependencies.global.
我已经通过 Zend auth 创建了一个登录系统,这里是代码 // userAuthentication public function authAction(){ $reque
好的,所以我对 Zend 比较陌生。我已经创建了一个新的应用程序并开始构建基于 a guide 的身份验证系统.但是,服务器正在踢出一个内部服务器错误。 检查 PHP 错误日志后,我得到以下两个错误:
编辑:: 问题是由 Zend 路由引起的,请检查更新 我正在使用 xml 文件进行导航。 编辑::以下代码来自layout.phtml文件 $config = new Zend_Config_Xml(
我想将变量从 Controller 传递到表单。如何实现?谁能帮我解决这个问题。 谢谢。 最佳答案 只是一个活生生的例子: class Admin_Form_Product extends Admin
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
我使用默认 Zend_Rest_Route 来生成 Rest 路由: 所以鉴于我只是把 resources.router.routes.rest.type = Zend_Rest_Route在 app
是否存在类似于 Zend Validator Identical 的 Zend Filter? 我应该过滤 input=='test' 的情况 $el->addFilter('Identical','
在/application 文件夹中创建了几个文件夹(例如表单和模型),然后开始向这些文件夹添加类之后,如何使这些类的代码自动完成在我的各种其他文件(例如我的文件)中可用IndexController
我正在尝试删除隐藏表单元素上的默认装饰器。默认情况下,隐藏元素显示如下: Hidden Element Label (if I had set one) 我不希望隐藏元素占用页面上的空间。我想删除所
我是框架新手,但我在安装 zend 1.x 版本等方面没有任何困难。但是ZF2真的搞不懂......任何资源告诉我使用 zend 工具创建项目,即 bin 目录中的 zf.bat 或 zf.sh,但与
我想使用装饰器将下面的 Zend_Form 格式化为表格,在第一列中放置描述并 Zend_Form_Element_Radio 的选项在第二列中和 在每一行中添加 2 个选择,您可以在稍后的 html
当您查看 在下面的标记中,您会看到有一个带有 id 地址标签的 dt 和以下 dd,我想删除这些但保留 字段集。 要添加显示组,我在其中使用了这个 $this->addDisplayGroup(arr
我已经阅读了所有关于路由和 Zend 文档的帖子,但我仍然无法解决这个问题。 我有一个包含两个模块的多语言应用程序:default 和 admin。语言选择工作正常(在 Controller rout
/* Form Elements & Other Definitions Here ... */ $this->setAction("auth") ->setMethod("post")
我正在按照官方教程在 Zend 服务器上部署示例 Zend 应用程序。无论我部署什么,我唯一可以访问的是 hello world 页面(Hello world 打招呼)。 如何访问真实应用程序? ho
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 3年前关闭。 Improve thi
在 Zend 中使用命名空间的最佳实践是什么? 如何管理存储库、服务等的命名空间? 我在 Zend 文档 here 中找到了一个通用的目录结构,但它没有描述在哪里放置存储库和其他服务! 请将其视为 M
我有问题,以下 Zend 表单会引发错误。 问题是"file"元素和使用 setElementDecorators。 class Products_AddForm extends Zend_F
我是一名优秀的程序员,十分优秀!