我有一个简单的脚本,使用php会话变量设置货币,但是只要它将用户返回到之前的目录,就不再设置会话..
(此脚本位于根文件夹/index.php中)
<?php
if (isset($_POST[product_currency])) {
$postCurrecy = $_POST[product_currency];
session_destroy();
session_start();
$_SESSION[currency] = $postCurrecy;
echo $_SESSION[currency].' = '.$_POST[product_currency];
echo "<meta http-equiv='refresh' content='1;URL=$_SERVER[HTTP_REFERER]'>";
die();
}
?>
它返回的文件夹是/ products /,其中包含:
<?php if (empty($_SESSION[currency])) { echo 'uh oh'; } else { echo $_SESSION[currency]; } ?>Currencies:
<form id="select-form" action="/" method="post">
<select class="inputbox" name="product_currency" size="1" >
<option value="EUR" >€ Euro</option>
<option value="USD" selected="selected">$ US Dollar</option>
<option value="GBP" >£ GBP</option>
</select>
<input class="button" type="submit" name="submit" value="Change" />
</form>
$_SESSION[currency]
返回'呃哦',因为它是空的:(
答案 0 :(得分:0)
这个答案应归功于@Michael Berkowski
您需要在访问会话的所有脚本的顶部调用session_start()
。