簡體   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