标签: session-timeout

如果PHP会话在请求中间超时,$ _SESSION数组会发生什么?

我一直想知道,如果一个PHP会话超时执行脚本的中部期间,将在$ _SESSION数组中的内容仍然可用,直到脚本执行结束?例如:

session_start();

if(! isset($_SESSION['name'])) {
    echo 'Name is not set';
    exit;
}

// imagine there is a bunch of code here and that the session times out while
// this code is being executed

echo 'Name is ', $_SESSION['name']; // will this line throw an error?
Run Code Online (Sandbox Code Playgroud)

将会话变量复制到本地作用域是否切实可行,以便稍后在脚本中读取它们而不必继续检查会话超时?就像是:

session_start();

if(isset($_SESSION['name'])) {
    $name = $_SESSION['name'];
} else {
    echo 'Name is not set';
    exit;
}

// bunch of code here

echo 'Name is ', $name;
Run Code Online (Sandbox Code Playgroud)

php session session-timeout

3
推荐指数
1
解决办法
1614
查看次数

如何让PHP会话在浏览器关闭或某段延长的时间内到期

当用户关闭浏览器时,我的php会话设置为过期,但我注意到如果我将浏览器长时间打开(例如24小时以上),会话仍然存在.

有没有办法可以让这些会话在浏览器关闭或延长一段时间后到期?

php session session-timeout

3
推荐指数
1
解决办法
7828
查看次数

如何通过Grails代码获取会话超时值

我想知道如何获得我的应用程序的会话超时值

我已经在web.xml文件中设置了会话超时值,并希望通过session.getSessionTimeout之类的代码获取此值

如果有人知道请在这里发布

我只想要2知道它在web.xml中为我的grails应用程序设置与否

grails groovy session-timeout

3
推荐指数
1
解决办法
1759
查看次数

HttpSessionListener未检测到会话超时

我有一个javax.servlet.http.HttpSessionListener的实现,它应该检测Struts项目中的用户会话失效/超时.

sessionDestroyed()似乎永远不会被调用,我可以通过删除我的JSESSIONID并刷新页面来重现这一点.我还发现让浏览器保持打开状态直到会话超时具有相同的效果.

该站点使用Java 1.5在JBoss 4.2.3.GA中运行.

我开始怀疑HttpSessionListener不能达到我的预期,我错过了什么?

编辑:

我的监听器在我的web.xml中注册如下:

<listener>
    <listener-class>com.domain.web.listener.LogoutListener</listener-class>
</listener>
Run Code Online (Sandbox Code Playgroud)

java session-timeout java-ee

3
推荐指数
1
解决办法
8944
查看次数

如何处理MVC 3中的会话超时

我遇到频繁的会话超时问题.

我想编写一个可以在每个控制器上使用的通用过滤器,过滤器应该将用户重定向到登录,并在登录后返回用户发送最后一个请求的位置.

asp.net-mvc session-timeout action-filter

3
推荐指数
1
解决办法
8312
查看次数

JSESSIONID持续时间

我有这个疑问,什么参数控制JSESSIONID的超时?特别考虑这个用例:我有一个移动客户端,它使用JSESSIONID标头发送cookie,但是客户端与应用程序交互并将其留在后台大约6个小时......存储在客户端的cookie不是'删除,然后再次发送回服务器...... JSESSIONID仍然有效吗?哪些参数或配置决定了服务器上cookie的超时?非常感谢.

java session servlets session-timeout

3
推荐指数
1
解决办法
4861
查看次数

JSF中的session-timeout

我使用以下代码在JSF中创建会话对象.问题是,在我尝试访问userdet对象的某个时候,它可能因为会话超时而给我异常.无论如何都要增加JSF中的会话超时.

            FacesContext context = FacesContext.getCurrentInstance();
            HttpSession session = (HttpSession) context.getExternalContext().getSession(true);
            session.setAttribute("userdet",user);
Run Code Online (Sandbox Code Playgroud)

当我使用servlet时,我使用以下代码但它是否也适用于JSF?

<web-app ...>
    <session-config>
        <session-timeout>20</session-timeout>
    </session-config>
</web-app>
Run Code Online (Sandbox Code Playgroud)

java jsf session-timeout jsf-2

3
推荐指数
1
解决办法
1万
查看次数

PayPal付款标准到期日

我使用PayPal付款标准从自定义购物车上传内容.即上传发生在页面重定向中,该页面重定向将隐藏的变量发布到客户完成交易的PayPal.交易完成后,PayPal使用"IPN"流程通知我已付款.

在这种情况下,同时进行预订.与出售有限库存商品相同.因为在那里竞争相同的时段而有多个PayPal交易是不好的,所以在客户被重定向到PayPal之前进行预订.

一旦客户在PayPal,他们可能会意识到他们没有任何钱并关闭窗口,导致需要超时和放弃的未付预订.

PayPal结账页面是否有保证的到期时间,之后可以丢弃预订而不会有被删除交易的意外付款风险?我意识到IPN有它自己的非确定性计时,但不知道甚至有一个有效期,有人可能会坐在网站上一天然后付钱.

paypal session-timeout paypal-ipn

3
推荐指数
1
解决办法
1006
查看次数

"刷新"Django会话变量以避免会话超时?

我有一个多页Django注册过程,其中用户执行以下步骤:

  1. 创建一个帐户(用户名,密码)
  2. 创建个人资料
  3. 上传一张照片
  4. 审核并批准/更改个人资料和照片
  5. 将用户名和用户ID传递给付款处理者
  6. 从支付处理器接收"付款确定或付款不正确"信号
  7. 如果"付款确定"则显示用户并显示网站的"主页"页面.

在上面的步骤1中,用户的ID和一些其他信息存储在会话中.然后在步骤2到4中必要时检查它们.用户ID和用户名也将在步骤5中传递给支付处理器.我正在考虑将会话超时时间设置为30分钟或1小时.这是我的问题.当用户获取上述每个页面时,我应该阅读并重新分配会话变量,以帮助用户避免会话超时吗?Django 文档说Django只在会话被修改时保存会话(即任何字典值已被分配或删除).我想如果我在用户的会话从一个页面移动到另一个页面时"刷新"该会话,那么它们将不太可能被超时并且因此将经历更平滑的注册过程.

有什么建议?谢谢.

django session session-timeout django-views

3
推荐指数
1
解决办法
2125
查看次数

有时,Vaadin不会在"会话超时"消息后使会话无效

在我的Vaadin应用程序中,当Vaadin在"会话超时"消息后没有使会话无效时,我遇到了问题.收到此消息后,用户有时可以单击链接或刷新页面并继续工作,就好像他们仍在登录一样.我使用以下参数:

closeIdleSessions=true
heartbeatInterval=60
session-timeout=15
Run Code Online (Sandbox Code Playgroud)

最后一个参数(会话超时)也在context.xml(session-timeout = 900)和web.xml(session-config/session-timeout = 15)中设置,因为我没有从vaadin文档中得到清楚,是否有这样的vaadin servlet的参数与否.

有人面对名义上的问题吗?

更新1:固定参数片段.

更新2:出现消息SessionDestroyListener.sessionDestroy时不会触发Session expired.

更新3:由于代码错误而出现上一个错误.现在SessionDestroyListener.sessionDestroy被调用,但我无法访问给HttpSession定的事件.

这是我的SessionDestroyListener代码(请注意其中一个if分支的评论):

private static class SynchronizerSessionDestroyListener implements SessionDestroyListener {
    @Override
    public void sessionDestroy(SessionDestroyEvent event) {
        if (event.getSession() != null){
            WrappedSession wrappedSession = event.getSession().getSession();
            if (wrappedSession instanceof WrappedHttpSession){
                WrappedHttpSession wrappedHttpSession = (WrappedHttpSession) wrappedSession;
                HttpSession httpSession = wrappedHttpSession.getHttpSession();
                if (httpSession != null){
                    try {
                        httpSession.invalidate();
                        logger.debug("Session '{}' was invalidated", httpSession.getId());
                    } catch (IllegalStateException …
Run Code Online (Sandbox Code Playgroud)

java session session-timeout vaadin

3
推荐指数
1
解决办法
2443
查看次数