我的应用程序有问题:我的应用程序有很多表单,需要大约1小时才能完成此表单,因为表单是动态的(可以添加其他表单).问题是:我的Web服务器的会话是24分钟.当用户填写表单时,他们花了很多时间并且会话超时,因为服务器识别出用户处于非活动状态.当表单提交,大多数数据丢失并且用户返回登录页面时,这非常烦人.我尝试使用此代码在10小时内使会话过期:
ini_set('session.gc_maxlifetime', '36000');
Run Code Online (Sandbox Code Playgroud)
但它不能在我的服务器上工作,我的服务器可能会阻止ini_set()功能吗?
那么,我该怎么做才能解决这个问题呢?我可以阻止会话超时,以便会话可以扩展到10小时吗?或者我可以禁用会话到期吗?
谢谢
如果用户(admin)在wordpress站点中处于非活动状态15分钟,我希望会话到期,
任何人都可以告诉我什么是wordpress中的默认会话到期时间?以及如何更改默认过期时间.
我正在使用Ajax为我的网站构建一个简单的支持聊天.我想检查我当前正在聊天的用户是否离开了浏览器.
目前,我通过在客户端设置间隔功能来创建具有名称的文件,从而构建该功能: userId.txt
在管理区域中,我创建了一个检查是否userId.txt存在的区间函数.如果存在,则删除它.如果自定义间隔函数没有重新创建文件 - 下次admin函数将发现该文件不存在时,它会将customer标记userId为非活动状态.
抽象表示:
customer -> interval Ajax function -> php [if no file - create a new file]
admin -> interval Ajax function -> php [if file exists - delete the file] -> return state to Ajax function and do something
Run Code Online (Sandbox Code Playgroud)
我想知道是否有更好的方法来实现您能想到的这个功能?
我用PHP创建了一个项目,我正在管理会话.
我通过编写以下代码行在config.php文件中创建会话.
session_start();
Run Code Online (Sandbox Code Playgroud)
并且要销毁此会话,在logout.php文件中我写了以下行.
session_destroy();
Run Code Online (Sandbox Code Playgroud)
我没有在任何其他项目文件中提及任何会话代码,但问题是会话是活动的,直到我调用logout.php,
我想要的是如果用户15分钟不活动,会话应该到期.
任何人都可以帮助我,我是PHP的新手,请给出一些示例代码或链接来实现这一点..
虽然这个问题有多个重复,但我找不到合适的解决方案.需要一些帮助.
我ini_set('session.cookie_lifetime', 0);在配置文件中使用过.
但它并没有帮助我在浏览器关闭时销毁会话.
应用电流:
1)在认证页面中,如果用户有效,则使用生成新的会话标识符 session_regenerate_id(true);
2)控制转到welcome.php,我开始使用新会话 session_start();
3)在注销页面代码中
$_SESSION = array();
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
// Finally, destroy the session.
session_destroy();
Run Code Online (Sandbox Code Playgroud) 我想session.gc_maxlifetime从PHP服务器设置中检索值(在没有活动之后会话到期的时间).非常重要:我不想改变它,我只想检索它的值(可能是服务器到服务器的值不同),我想使用我做的PHP脚本来正确警告用户,具体取决于设置那些服务器.
谢谢.
我想知道最安全的cookie登录方式是什么?如果您只是将通行证(使用salt加密)和用户名存储在cookie中并根据用户表进行验证,则潜在的攻击者可以窃取cookie并登录.人们通常不会检查'上次在线'.
那么"记住我的饼干"有更好的方法吗?IP不是一个好选择,是吗?(有些机器一直在更换IP).
我们用什么在php中设置会话时间.我发现以下内容:
ini_set(session.cookie_lifetime, 3600);
ini_set(session.gc_maxlifetime, 3600);
Run Code Online (Sandbox Code Playgroud)
在php中为会话设置超时是否正确?或者我们有什么方法可以在htaccess文件中设置超时?
也许这是一个简单的问题,但我真的无法得到答案,甚至在SO,谷歌和php.net上尝试过,但没有直接的解决方案或代码.
如果用户在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在 …