我找到了很多关于这个问题的答案,但没有解决我的问题-所以我想给你看我的代码,希望有人能找到错误...
我有一个标准的超文本标记语言的形式,给一些数据与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"; }
第一个调用工作精细会话变量被设置,回声给出正确的值。重新加载页面后,我得到了回声“从会话中获取”,但我的变量没有值。
我还检查了第一次调用时的会话_id(),并重新加载。。它们不一样。
我做了一个简单的测试。php文件,其中我使用一个变量启动会话,并在下一个文件中请求该变量。它工作得很好:-/
这只是我上面代码的一个问题。我认为我的Web服务器处理得很好。但更改会话id和丢失会话变量值的原因是什么?
试试这个:
会话_id();
session_start();
嗯,你的错误很容易发现。事实上,您的代码工作得非常好。但看看这一部分:
echo "get it from session";
$locId = $_SESSION["locId"];
$dateId = $_SESSIOn["dateId"];
嗯,您将会话值分配给两个变量,但实际上,您只是错过了在任何地方输出它们。这就是为什么你从会话中获取它,但却什么也不显示,你需要回声它们。
只需添加一个echo
,它将完美地显示您的vars:)
echo "get it from session";
$locId = $_SESSION["locId"];
$dateId = $_SESSIOn["dateId"];
echo $locId;
echo $dateId;
该死写正确就是一切。。。
我发现了我的错误。
请看我问题中的代码。第二个会话变量是$\u session[“dateId”]。。n是小写的!如果我写得正确,并且用大写字母填写,它就可以工作了。
此外,session_id不再摇晃,我可以输出session_id(),只要是想要的...每通电话都session_id,...奇怪。
再次学到了一些东西:-)感谢每个人的答案和你的时间!我希望我以后能帮到你
问题内容: 我有登录功能 此函数用于将变量保存到会话中, 但是当新请求检查用户是否登录时 然后返回总是“注销”,因为会话已更改。我使用Redis来存储会话,我认为这是Redis的错误,因为当我停止使用Redis时,可以,请帮帮我! 问题答案: 最好的处理方式是始终让Express处理它(如果可以的话)。 https://flaviocopes.com/express-sessions/(更新了会话
我一直有一个问题,当请求来自域名而不是localhost时,会话变量不可用。例如,如果我设置一个用户变量: 当客户端发出另一个请求并且我尝试访问用户会话变量时,它返回null。 我注意到,在每个请求中,都会设置一个新的JSESSIONID cookie,并且ID值会更改。这是否意味着每次客户端访问服务器时都会创建一个新会话?如何在客户端之间保持相同的会话,以便我可以在Http会话中存储对象并访问它
对于我的JMeter测试,我希望测试中的所有线程都使用一个共享会话id。在开始测试作业之前,会话id是已知的。如何为JMeter测试指定特定的JSessionId? 我尝试过在 HTTP Cookie 管理器(在用户定义的 Cookie 下)、HTTP 请求默认值(在请求发送参数下)中附加一个 JSessionId 参数,并且我尝试从录制控制器下的“预处理器”选项卡添加“HTTP URL 重写修饰
问题内容: 如何解决在PHP中重定向后丢失会话的问题? 最近,我遇到了一个非常常见的问题,即在重定向后丢失会话。在搜索该网站后,我仍然找不到任何解决方案(尽管这是最接近的解决方案)。 更新资料 我找到了答案,我想将它发布在这里,以帮助遇到同样问题的任何人。 问题答案: 首先,执行以下常规检查: 确保在任何会话被调用之前被调用。因此,一个安全的选择就是将其放在页面的开头,紧接着在开始声明之后,再放在
问题内容: 我正在维护Java Web应用程序。 通过登录代码,它可以通过HttpServletRequest的getSession()方法从HttpServletRequest中获取一个HttpSession。(它在会话中使用一些值进行认证) 但是,我担心会话固定攻击,因此在使用初始会话后,我想开始一个新会话或更改会话ID。这可能吗? 问题答案: Servlet 3.0 API不允许您更改现有会
我们正在尝试使用Drool作为我们的规则引擎服务。我们到目前为止所做的如下 部署的工作台7.2.final 已部署的KIE服务器7.2.0。final 配置了一些数据对象、规则,将更改部署到KIE服务器,我们可以使用rest API执行规则 无状态会话满足了我们的大部分需求(给出一组数据,执行规则并返回数据,仅此而已)。但是使用无状态时,我们必须牺牲Drools有状态会话提供的许多重要特性。 我们