【发布时间】:2011-05-05 20:16:13
【问题描述】:
我正在尝试使用 PHP 会话变量在多个页面上传输数据。我在我网站的许多部分都使用会话变量,但这是它们不起作用的第一个地方。
我是这样设置的:
$_SESSION["savedRetailerName"] = $foo;
然后这样称呼它:
echo $_SESSION["savedRetailerName"];
这两个页面之间的会话 ID 保持不变,我确信我正确设置了变量并且它们被正确调用。我正确启动了会话,即使在该特定页面上,其他会话变量也正确显示。
如何开始调试这种奇怪的行为?
编辑:
我目前正在处理两个不同的页面。 Page 2 设置会话变量,并且有一个按钮可以将用户返回到 Page 1。如果用户希望返回到 Page 1,则仍然填写 Page 1 中的字段。
这不是缓存问题,我可以在我的代码中与我未能返回这些变量的位置完全相同的位置返回其他会话变量。
唯一可能相关的其他代码是后退按钮处理程序 (jQuery):
$('#backButton').live('click',function() {
window.location.replace("page 1");
});
编辑 2:
我认为这不起作用,因为这里有一些变量:
<?php
$retailerName = $_REQUEST["retailerName"];
$description = $_REQUEST["description"];
$savingsDetails = $_REQUEST["savingsDetails"];
$terms = $_REQUEST["terms"];
$phone = $_REQUEST["phone"];
$address = $_REQUEST["address"];
$zone = $_REQUEST["zone"];
$dateExp = $_REQUEST["dateExp"];
$tag = $_REQUEST["tag"];
$_SESSION["rn"] = $retailerName;
$_SESSION["de"] = $description;
$_SESSION["sd"] = $savingsDetails;
$_SESSION["tm"] = $terms;
$_SESSION["ph"] = $phone;
$_SESSION["ad"] = $address;
$_SESSION["zo"] = $zone;
$_SESSION["ex"] = $dateExp;
$_SESSION["tg"] = $tag;
?>
我可以将任何会话变量设置为字符串,但不会设置为变量。
【问题讨论】:
-
您确定这是
$foo变量中的内容吗? -
让我们看看更多代码。
-
@Sennheiser 不,这就是您认为相关的全部内容。您可能忽略了某些东西。
-
如果它设置为一个字符串,那么会话不是你的问题!不要因为你传递垃圾而责备会话。
标签: php