繁体   English   中英

java中的PHP会话变量

[英]PHP Session variables in java

在我的服务器-客户端模型中,我使用 java 作为客户端,使用 php5 进行服务器端脚本。

对于通信,我使用简单的 http 协议。

在服务器中,我有一些 $SESSION 变量(在 php 中)。 我想在我的 java 客户端中访问这些变量。

怎么可能?

提前致谢。

AFAIK 会话变量是服务器端变量,可以通过会话 ID 访问。 您必须重构您的应用程序(使 java-client 没有服务器端信息)或手动将它们(变量)从服务器发送到客户端。

如果您打算将其发送到客户端,则应使用cookie而不是会话变量。

您的 Java 客户端将向服务器发出请求,而服务器将像 Web 服务一样运行,对吗?

如果是这样,请在服务器发送回客户端的 XML/json/whatever 响应中包含您可能需要的所有/任何 $_SESSION 变量,类似于:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<reply>
  <request>
    <method>getUsers</method>
    <param name="page">1</param>
    <param name="apiKey">API_KEY</param>
    <param name="sessId">SESSION_ID</param>
  </request>
  <response>
    <status>
      <code>0</code>
      <message>OK</message>
    </status>
    <users>
      <!-- Request reply here -->
    </users>
    <session>
      <variable1>$_SESSION['var1']</variable1>
      <!-- Additional session variables you might need on the client here[...] -->
    </session>
  </response>
</reply>

问题是,会话变量是服务器用来跟踪哪个客户端现在正在访问它,并将数据与该特定客户端相关联的东西。 如果您需要客户端上的此信息,也许您可​​以重构应用程序以在客户端上创建此数据并将其传递给服务器以防服务器需要该数据?

简单的。

<script type="text/javascript">
    var variable = '<?php echo $SESSION["variable_name"];?>';
</script>

您唯一需要了解的是会话变量与任何其他 PHP 变量没有区别。
因此,您也必须从 PHP 请求它。
当然,提供带有会话标识符的请求是从先前的调用中获得的。 仅此而已,不是火箭科学。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM