Php session_start()在每次刷新时创建新会话,无警告

Php session_start()在每次刷新时创建新会话,无警告,php,session,Php,Session,我对会话\u start()有问题。每次刷新/加载页面时,它都会创建一个新会话 以下是执行的完整脚本的代码: // Stuff added to see why a new session id is created. ini_set(display_errors, 1); error_reporting(E_ALL); $session_dir = session_save_path(); $last_session_id = file_get_con

我对
会话\u start()
有问题。每次刷新/加载页面时,它都会创建一个新会话

以下是执行的完整脚本的代码:

    // Stuff added to see why a new session id is created. 
    ini_set(display_errors, 1);
    error_reporting(E_ALL);
    $session_dir = session_save_path();
    $last_session_id = file_get_contents("$session_dir/last_session_id.txt");
    $message =  "Last session id : $last_session_id. -- ";
    if(!is_writable($session_dir)) $message .= "Directory $session_dir is not writable. --";
    if(headers_sent($file, $line)) $message .= "Headers already sent at $line in $file. --";
    // The code just start a session and output a message to see what is going on. 
    if (!session_start()) {
        $message .= "Failed to start the session. --";
    }
    else
    {
      $message .=  "New session id : " . session_id() . "<br>";
      file_put_contents("$session_dir/last_session_id.txt", session_id());
    }
    echo $message; // Last session id : hh3isj5cc1b964itlgek89vm13. -- New session id : 6hss2s8v340n5qad0smbmmlfm3

好的,我知道了。只是因为
session.cookie\u secure=On
而我没有使用https。所以,正如预期的那样,没有返回会话cookie,而是创建了一个新会话。不过,我觉得这可以帮助其他人看到这一点。我完全不明白为什么这样的问题被标记为重复的,甚至在人们有机会回答之前。考虑到“重复”问题显然没有令人满意的答案,这一点尤其难以理解。这里的一些人似乎有这样的态度,如果有些事情可能会出问题,那么不要问为什么。在每次重新加载时重新创建会话的方法不多。这个问题完全可以用问答的方式来解决。

为什么要投反对票?我承认,鉴于其他人被标记为重复的事实,我原以为它会被否决。我不同意他们应该被标记为重复。当我看到其中一个被标记为重复时,甚至在给出答案之前,我觉得这毫无意义。嘿,消息上说,
如果这些答案不能完全回答您的问题,请提出一个新问题。
这就是我们所做的,但人们一直将其标记为重复项,或者在没有解释的情况下对其进行投票,然后才能提供答案。有些人只是喜欢投反对票,不用太担心,除非你得到很多…这让我好奇,PHP是否有办法在不安全的域上使用
secure
标志输出错误:sessions/cookies。您是如何发现这个错误的?我不知道为什么PHP不输出E_通知级别的错误。我认为应该——只是一个简单的通知。有些人甚至说,http应该被弃用,而应该被https取代,这也是发布此类通知的另一个原因。我通过查看所有设置,寻找PHP创建新会话id的原因,发现了这个问题。拒绝使用HTTP非常复杂,也是一个非常有趣的讨论,主要是因为如果要使用HTTPS,那么每个网站都需要自己的域IP地址,而IP地址根本不够,因此,在英国,我尝试为客户端获取新的SSL证书,但成本过高,因为可供使用的IP越来越少,ISP公司在实际推出IPv6时非常缓慢和乏味。此外,正如SSLQuery实验室所示,HTTPS不是确保数据安全的灵丹妙药,而是一个有用的工具。我觉得这是一个很有趣的话题!
session.save_handler = files
session.save_path = "/var/www/html/php_session"
session.use_strict_mode = Off
session.use_cookies = 1
session.cookie_secure = On
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly = On
session.serialize_handler = php