2011-02-02 49 views
1

我有各種重要的變量,我需要在同一頁面加載時從PHP轉換到JS。我目前將這些變量存儲在DOM元素屬性中,並使用jQuery來抓取它們。將變量從PHP傳輸和存儲到JS/jQuery的最佳方法

這工作正常,雖然作爲一些信息是相當重要的,我寧願這不公開可見的DOM和'隱藏從窺探'。

所以我的問題是:如何將變量傳遞給JS或從PHP的DOM,並保持它們隱藏的視線?

乾杯傢伙,希望你能幫助!

+4

我認爲那是不可能的你想要的方式。 – yoda 2011-02-02 15:31:17

回答

1

在頁面加載時使用ajax請求。這裏是一個jQuery的外殼:

$(function() 
{ 
    $.ajax("http://yoursite.com/phpscript.php", 
     { 
      method: "post", 
      dataType: "json", 
      success: function(data) 
       { 
        // do what you will with the data here 
       } 
     }); 
}); 

所有信息都必須下載到某人的電腦上。你可以保持它「隱藏」在JavaScript中,但最終用戶可以很容易地使用螢火蟲或類似的東西來查看數據。

+1

任何人使用螢火蟲仍然能夠看到正在通過的變數 – Serge 2011-02-02 15:41:38

2

在JS中進行的所有事情都可能被最終用戶看到。如果它是您想要隱藏的安全數據,則可能需要重新設計您的方法。

1

所以你想要將數據發送給用戶,而不是同時發送給用戶?

1

如果數據非常敏感,則無法將其交給客戶端處理,同時保證其安全。這根本不是網絡的工作原理。您交給客戶端的所有內容都必須能夠被客戶端讀取。您可以使用SSL等技術來保護數據不被攔截,但預期的收件人必須能夠閱讀。您應該處理服務器端的任何敏感數據,並僅輸出用於公共消費的結果。

如果你只是想使數據可用於同時hidding凌亂的實現細節的頁面,有很多選擇:

  • 在JavaScript中通過像var myValue = <?= $serverside_value ?>輸出的東西直接
  • 儲存你的價值觀使用<input type="hidden" />場或使用json_encode
  • 請求通過AJAX
1

這不是很好的值給我重要信息到客戶端(HTML/JS)。

但是要回答您的問題 - 您可以使用jQuery's AJAX方法向PHP發佈請求,並從PHP中,您可以將json_encode()'ed數據返回給jQuery。 如果你想讓它們隱藏不見,或者說「足夠加密」,你可以通過SSL通道運行。 另一種選擇是自己做加密或者使用一些公共圖書館public-private key encryption.

例如jQuery的崗位:

$.post("script.php", 
{requestKey : "requestValue"}, // $_POST["requestKey"] == "requestValue" 
function(response) { 
// if you receive JSON encoded data 
// you should use JSON decoder for javasript 
// or var obj = eval('(' + response + ')'); 
}, 
"json"); 

在PHP這將是:

$data = $_POST["requestKey"]; 
// do something 
echo json_encode($result); 
相關問題