php 会话不会持续

php session does not persist

我在尝试让网站在 bluehost 上为某人工作时遇到了一个奇怪的情况。我构建了一个非常简单的示例来说明这一点。 我有两个文件:

<?php
session_start();

$_SESSION['x'] = 'yes';

var_dump($_SESSION);

和:

<?php

session_start();
var_dump($_SESSION);

现在的问题是,当我调用第一个文件时,我得到了这个: 数组(1) { ["x"]=> 字符串(3) "yes" }

但是如果在那之后我立即调用第二个文件,我会得到这个: 阵列(0){}

因此,会话似乎不会在调用之间持续存在。 知道是什么原因造成的吗?

phpinfo 会话设置为:

Session Support enabled
Registered save handlers    files user
Registered serializer handlers  php php_binary wddx

Directive   Local Value Master Value
session.auto_start  Off Off
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 4   4
session.hash_function   0   0
session.name    PHPSESSID   PHPSESSID
session.referer_check   no value    no value
session.save_handler    files   files
session.save_path   /tmp    /tmp
session.serialize_handler   php php
session.upload_progress.cleanup On  On
session.upload_progress.enabled On  On
session.upload_progress.freq    1%  1%
session.upload_progress.min_freq    1   1
session.upload_progress.name    PHP_SESSION_UPLOAD_PROGRESS     PHP_SESSION_UPLOAD_PROGRESS
session.upload_progress.prefix  upload_progress_    upload_progress_
session.use_cookies On  On
session.use_only_cookies    On  On
session.use_trans_sid   0   0

它可能会帮助其他人... 托管服务提供商是 BlueHost,在来回发送了几封电子邮件后,他们指责开发,他们承认这可能是因为 Varnish,他们默认启用了 Wordpress 优化包。 https://my.bluehost.com/cgi/help/turn_varnish_off

关闭后,session 和 cookie 似乎可以正常工作

只是想在 2021 年加入并为此添加更新。我正在使用 Cloudways 托管并遇到了完全相同的问题。我终于遇到了这个 post 并在 Cloudways 中禁用了 Varnish,现在一切都按预期工作。谢谢!希望这对以后的人有所帮助。