Php 会话变量在新页面上丢失

Php 会话变量在新页面上丢失,php,security,session,web,Php,Security,Session,Web,我目前正在为一个客户端开发一个web应用程序,该客户端的web空间托管在one.com上 我已经实现了自己的安全登录系统,一切正常。当我登录某人时,变量可用,但只要我通过href进入新页面,我的所有会话变量都将丢失。对于类似的问题,我几乎尝试了所有推荐的方法,但都不起作用 我不能直接编辑我的php.ini,这是标准的phpinfo: 另外,在我调用的每个站点的开头 ini_set("session.cookie_secure", 0); 因为在开始时,这(本地)总是设置为true 我使用以

我目前正在为一个客户端开发一个web应用程序,该客户端的web空间托管在one.com上

我已经实现了自己的安全登录系统,一切正常。当我登录某人时,变量可用,但只要我通过href进入新页面,我的所有会话变量都将丢失。对于类似的问题,我几乎尝试了所有推荐的方法,但都不起作用

我不能直接编辑我的php.ini,这是标准的phpinfo:

另外,在我调用的每个站点的开头

 ini_set("session.cookie_secure", 0);
因为在开始时,这(本地)总是设置为true

我使用以下代码在每个页面上启动安全会话:

$session_name = 'sec_session_id';   // Set a custom session name
$secure = true;
// This stops JavaScript being able to access the session$id.
$httponly = true;
// Forces sessions to only use cookies.
if (ini_set('session.use_only_cookies', 1) === FALSE) {
    header("Location: ../error.php?err=Could not initiate a safe session (ini_set)");
    exit();
}
// Gets current cookies params.
$cookieParams = session_get_cookie_params();
session_set_cookie_params($cookieParams["lifetime"],
    $cookieParams["path"], 
    $cookieParams["domain"], 

    $secure,
    $httponly);
// Sets the session name to the one set above.
session_name($session_name);
session_start();            // Start the PHP session 
session_regenerate_id(true);    // regenerated the session, delete the old one. 
我只是不明白为什么我的会话变量总是丢失。我会很高兴能得到每一个帮助

编辑:一些人建议最后一行:

session_regenerate_id(true);
可能会导致问题,但移除后仍不起作用。还可能是什么?

我很确定这一行(底线)是破坏会话的那一行:

session_regenerate_id(true);  // regenerated the session, delete the old one

删除该行,您的会话将被重新培训。

um…
session\u regenate\u id(true);//重新生成会话,删除旧的。
…您说每次都会删除会话数据吗?我想这个调用只会删除旧的易受攻击的变量。不是这样吗?会话cookie是否安全地从服务器接收并发送回?如何检查?我认为此调用只会删除较旧的易受攻击的变量。不是这样吗?当移除线路时,同样的情况仍在发生。还可能是什么?