我找到了很多关于这个问题的答案,但没有解决我的问题 - 所以我想告诉你我的代码,希望有人能找到错误..
我有一个标准的HTML公式,它给一些带有POST的数据到下一个.php文件,我得到它并将其保存到会话变量中。我使用会话变量有两个原因:
以下是代码:
session_start(); // Handle Variables on post and reloaded-page if(isset($_POST["locId"]) && isset($_POST["dateId"]) ) { $locId = htmlspecialchars($_POST["locId"]); $dateId = htmlspecialchars($_POST["dateId"]); $_SESSION["locId"] = $locId; $_SESSION["dateId"] = $dateId; echo "Session variables are set: locId = " . $_SESSION["locId"] . " dateId = " . $_SESSION["dateId"]; } elseif(isset($_SESSION["locId"]) && isset($_SESSION["dateId"])) { echo "get it from session"; $locId = $_SESSION["locId"]; $dateId = $_SESSIOn["dateId"]; } else { $load_error = 1; $status = "alert alert-danger"; $message = "shit, no variables here"; }
frist调用正常 - 会话变量已设置且echo提供正确的值。重新加载页面后,我得到回声"从会话中获取#34;但我的变量没有价值。
我还在第一次调用时检查了我的session_id()并重新加载..它们不一样。
我测试了一个简单的test.php文件,其中我用变量启动会话并在下一个文件中请求变量。它工作正常: - /
上面的代码只是一个问题。我认为我的网络服务器正在处理。但是有什么理由会导致会话ID失败并失去会话变量值?
答案 0 :(得分:2)
<强>该死!写得正确就是一切......
我发现了我的错误。
查看我的问题中的代码。第二个session-variable是$ _SESSIOn [“dateId”] .. n是小写的!如果我正确地写它并在大写中完成它它正在工作。
此外,session_id不再是chaging,我可以根据需要输出session_id()..但$ _SESSIOn中的一个错误会改变一切。每次通话都会有新的session_id,......很奇怪。
再次学到了一些东西:-)感谢大家的答案和时间!我希望将来可以帮助你
答案 1 :(得分:0)
嗯,你的错误很容易找到。事实上,您的代码完美无缺。但看看这部分:
echo "get it from session";
$locId = $_SESSION["locId"];
$dateId = $_SESSIOn["dateId"];
好吧,你将会话值设置为两个变量,但事实上,你只是错过了将它们输出到任何地方。这就是为什么你得到#34;从会议中得到它&#34;但是什么都没有显示,你需要echo
他们。
只需添加echo
即可完美显示您的变量:)
echo "get it from session";
$locId = $_SESSION["locId"];
$dateId = $_SESSIOn["dateId"];
echo $locId;
echo $dateId;
答案 2 :(得分:-1)
试试这个:
SESSION_ID();
在session_start();