如何解决PHP会话仅在每个页面上显式请求时存储
我是PHP新手。我的代码位于所有页面的顶部,旨在通过GET链接选择存储货币。
<?php
session_start();
if (isset($_GET['currency'])) {
$_SESSION['currency'] = $_GET['currency'];
}
?>
我还在所有页面上使用以下内容显示所选的货币(如果未选择货币,则使用美元):
<?php print isset($_SESSION['currency']) ? "{$_SESSION['currency']}" : 'usd'; ?>
但是会话似乎只是在我选择它的页面上设置货币。假设我在index.php上选择了EUR,然后导航到page2.php-但是它将显示USD。如果我返回index.php,它仍然保存为EUR,但是如果我在其他页面之一上选择了EUR,则需要所有页面来保存EUR。
我将session_start放在每个页面的顶部,我的编码是UTF-8,没有BOM,没有错误显示,我强制使用https和www,以便始终将其视为一个站点。
我在做什么错?如何获得我的会话以保存整个站点?如果有帮助,该站点将运行PHP 7.4
解决方法
如果您有这样的话:
<?php
session_start();
if (isset($_GET['currency'])) {
$_SESSION['currency'] = $_GET['currency'];
}
?>
在所有页面的顶部,您没有将货币作为查询参数传递,然后在每个页面上,您将用空的 $ _ GET ['currency']
替换会话> ,尝试一下
objectId
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。