相关疑难解决方法(0)

如何在30分钟后使PHP会话到期?

我需要让会话保持30分钟,然后将其销毁.

php cookies session

1017
推荐指数
11
解决办法
93万
查看次数

如何在PHP中更改会话超时?

我想在php中扩展会话超时

我知道可以通过修改php.ini文件来实现.但我无法访问它.

那么有可能只用PHP代码吗?

php session session-timeout

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

我的会议会持续多久?

有人可以告诉我我的会话将持续多长时间从下面的数据? - 我不确定哪一个告诉我

session.auto_start  Off Off
session.bug_compat_42   Off Off
session.bug_compat_warn On  On
session.cache_expire    180 180
session.cache_limiter   nocache nocache
session.cookie_domain   no value    no value
session.cookie_httponly Off Off
session.cookie_lifetime 0   0
session.cookie_path /   /
session.cookie_secure   Off Off
session.entropy_file    no value    no value
session.entropy_length  0   0
session.gc_divisor  1000    1000
session.gc_maxlifetime  1440    1440
session.gc_probability  1   1
session.hash_bits_per_character 5   5
session.hash_function   0   0
session.name    PHPSESSID   PHPSESSID
session.referer_check   no value    no value
session.save_handler    files   files
session.save_path   /var/lib/php/session    /var/lib/php/session
session.serialize_handler   php php
session.use_cookies On  On
session.use_only_cookies    Off …
Run Code Online (Sandbox Code Playgroud)

php session timeout

44
推荐指数
4
解决办法
10万
查看次数

登录ISP Config会永远破坏我的PHP会话和cookie

要解释我的问题,我必须添加一些上下文信息:

我们有一个网站,它与会话一起工作,已经工作了7年没有任何问题,除了我们的服务器管理员,他无法登录,我们从来不知道为什么......直到现在......

我们的服务器管理员正在度假,所以我不得不做他的一些工作,它包括登录ISP Config,它位于同一服务器和域使用不同的端口(8080),我在那里登录,检查一些值,然后当我回到我们的网站时,我无法登录,就像我们的服务器管理员一样.

做一些调试我发现在每次刷新session_id()更改时会话都有问题.

使用ini_get我得到session.cookie_domain并且session.cookie_secure是空的.

如果我做了一个print_r($_COOKIE)没有PHPSESSID,如果我把它设置为任何值,它消失,即使我写了一个很长的到期它没有保存,如果我设置2个像这样的cookie:

setcookie("PHPSESSID", "MYSESSION", time()+365*24*60*60, '/');
setcookie("a", "b", time()+365*24*60*60, '/');
Run Code Online (Sandbox Code Playgroud)

然后print_r($_COOKIE);我明白了:

Array ( [a] => b )
Run Code Online (Sandbox Code Playgroud)

我没有任何.htaccess,所以我身边没有规则,似乎ISP配置中的某些内容改变了我存储cookie的方式.

我可以在webmasters.stackexchange.com上询问,但是当有人登录ISP配置后登录我的网站时,我需要一个PHP答案来设置新值.

这是我目前要测试的代码:

<?php
session_set_cookie_params(3600,"/");
session_start();
//$_SESSION[b_id]=1;
setcookie("PHPSESSID", "GTS", time()+365*24*60*60, '/');
setcookie("a", "b", time()+365*24*60*60, '/');
echo "<div>b_id: $_SESSION[b_id]</div>";
echo "<div>session_id: ".session_id()."</div>";
echo "<div>cookie_domain: ".ini_get('session.cookie_domain')."</div>";
echo "<div>save_path: ".ini_get('session.save_path')."</div>";
echo "<div>cookie_secure: ".ini_get('session.cookie_secure')."</div>";
print_r($_COOKIE);
/*echo "<pre>";
print_r(ini_get_all());
echo "</pre>";*/
?>
Run Code Online (Sandbox Code Playgroud)

这是输出,(session_id值每次都改变):

b_id:
session_id: du95eljbkct54qktvcd18a7ej0
cookie_domain:
save_path: /var/lib/php/sessions …
Run Code Online (Sandbox Code Playgroud)

php session-cookies ispconfig

15
推荐指数
1
解决办法
384
查看次数

即使我正在工作,会话生命周期,Ajax和Symfony2,会话也会过期

如果用户在10分钟内不执行任何操作,我已将应用程序配置为在超时时关闭会话.在config.yml我有这样的:

session:
    handler_id:  ~
    cookie_lifetime: 600 # 10 minutes
    gc_maxlifetime: 600 # 10 minutes
    gc_probability: 1
    gc_divisor: 1
Run Code Online (Sandbox Code Playgroud)

我每隔一分钟进行一次Ajax调用,以检查会话是否即将到期或不会过期,这是我检查的内容:

public function isLoggedInAction(Request $request)
{
    $response = array();
    $response['authenticated'] = FALSE;
    $status = 200;
    $securityContext = $this->container->get('security.context');
    if ($securityContext->isGranted('IS_AUTHENTICATED_FULLY')) {
        $response['authenticated'] = TRUE;
    }

    return new JsonResponse($response, $status ?: 200);
}
Run Code Online (Sandbox Code Playgroud)

由于一些不知情的原因不起作用,每10分钟会话都关闭,无论我是在使用页面还是不在,为什么?我错过了什么?

编辑1尝试新值,仍然无效:

session:
    handler_id:  ~
    cookie_lifetime: 1800
    gc_maxlifetime: 600
    gc_probability: 1
    gc_divisor: 100
Run Code Online (Sandbox Code Playgroud)

当我在页面上工作,执行Ajax调用和一些其他任务时,会话已关闭,因此无法正常工作.显然对我来说唯一有用的价值就是设置cookie_lifetime: 86400 #1 day,这对我来说很疯狂!

编辑2在 …

php ajax session symfony

8
推荐指数
1
解决办法
2476
查看次数

为什么我的会话比我设定的时间更早到期?

可能重复:
PHP会话快速超时

在我设置的.htaccess文件中

php_value session.gc_maxlifetime 14400 
Run Code Online (Sandbox Code Playgroud)

即4小时

如果我确认使用echo ini_get('session.gc_maxlifetime');我得到14400.但我的会话仍然会在不到2小时内到期.

你认为这里出了什么问题?任何帮助赞赏.谢谢

php session

2
推荐指数
1
解决办法
1228
查看次数