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)"是"}

,但如果在此之后立即调用第二个文件,我会得到这个:数组(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

只是想在2021年加入一个更新。我正在使用Cloudways托管,并有这个完全相同的问题。我终于看到了这篇文章,并在Cloudways中禁用了清漆,现在一切都如预期的那样工作了。谢谢你!希望这对将来的人有所帮助。

这可能会帮助别人…主机提供商是BlueHost,在几封来回的电子邮件中,他们指责开发,他们承认这可能是因为Varnish,他们默认启用Wordpress优化包。https://my.bluehost.com/cgi/help/turn_varnish_off

关闭后,会话和cookie似乎工作