ini_set('session.use_only_cookies', 1) 设置为 1,但条件说没有
ini_set('session.use_only_cookies', 1) is set to 1, but condition says no
我有一个登录页面,我从那里提交我的表单数据,同时我创建了一个自制的会话函数,我在其中检查是否 (ini_set('session.use_only_cookies', 1 )).当数据被传递时,会话被创建,我检查登录数据是否正确,然后我重定向到 index.php。在index.php i 运行 session 函数中再次和运行 发生错误,即session.use_only_cookies 未设置为1,但它是。我检查了 phpinfo()
之前曾与 XAMPP 合作过,并且在那里工作过。最近切换到 Docker 和 php:7.2-fpm-alpine3.7 image
我的会话函数:
protected function sec_session() {
define("SECURE", true);
$session_name = 'sec_session_id'; // vergib einen Sessionnamen
$secure = SECURE;
$httponly = true;
if (!ini_set('session.use_only_cookies', 1)) {
//header("Location: /error.php?err=Could not initiate a safe session (ini_set)");
//The above doesn't work
echo("<script>location.href = '/error.php?err=Could not initiate a safe session (ini_set)';</script>");
//here is where i always land and i'm not sure why?
exit();
}
$cookieParams = session_get_cookie_params();
session_set_cookie_params($cookieParams["lifetime"],
$cookieParams["path"],
$cookieParams["domain"],
$secure,
$httponly);
session_name($session_name);
session_start();
session_regenerate_id();
}
这里的问题是 $secure 变量。它被设计为仅适用于 https 请求。这些设置适用于 php:7.1-apache Docker Image
我有一个登录页面,我从那里提交我的表单数据,同时我创建了一个自制的会话函数,我在其中检查是否 (ini_set('session.use_only_cookies', 1 )).当数据被传递时,会话被创建,我检查登录数据是否正确,然后我重定向到 index.php。在index.php i 运行 session 函数中再次和运行 发生错误,即session.use_only_cookies 未设置为1,但它是。我检查了 phpinfo()
之前曾与 XAMPP 合作过,并且在那里工作过。最近切换到 Docker 和 php:7.2-fpm-alpine3.7 image
我的会话函数:
protected function sec_session() {
define("SECURE", true);
$session_name = 'sec_session_id'; // vergib einen Sessionnamen
$secure = SECURE;
$httponly = true;
if (!ini_set('session.use_only_cookies', 1)) {
//header("Location: /error.php?err=Could not initiate a safe session (ini_set)");
//The above doesn't work
echo("<script>location.href = '/error.php?err=Could not initiate a safe session (ini_set)';</script>");
//here is where i always land and i'm not sure why?
exit();
}
$cookieParams = session_get_cookie_params();
session_set_cookie_params($cookieParams["lifetime"],
$cookieParams["path"],
$cookieParams["domain"],
$secure,
$httponly);
session_name($session_name);
session_start();
session_regenerate_id();
}
这里的问题是 $secure 变量。它被设计为仅适用于 https 请求。这些设置适用于 php:7.1-apache Docker Image