问题描述
我是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