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,现在一切都按预期工作。谢谢!希望这对以后的人有所帮助。
我在尝试让网站在 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,现在一切都按预期工作。谢谢!希望这对以后的人有所帮助。