将变量从PHP传输和存储到JS / jQuery的最佳方法

时间:2011-02-02 15:30:00

标签: php jquery dom variables

我有各种重要的变量需要在同一页面加载时从PHP转移到JS。我目前正在将这些变量存储在DOM元素属性中,并使用jQuery来抓取它们。

这很好用,虽然有些信息非常重要,但我宁愿这在DOM中并不公开,而且“隐藏在窥探之中”。

所以我的问题是:如何将变量从PHP传输到JS或DOM并让它们隐藏起来?

干杯,希望你能帮忙!

5 个答案:

答案 0 :(得分:2)

最终用户可能会看到JS中发生的一切。如果它是您试图隐藏的安全数据,也许您需要重新设计您的方法。

答案 1 :(得分:1)

在页面加载时使用ajax请求。这是jQuery的shell:

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

必须在某个时候将所有信息下载到此人的计算机上。您可以将其隐藏在javascript中,但最终用户可以轻松使用firebug或类似的东西来查看该数据。

答案 2 :(得分:1)

您希望将数据发送给用户而不是同时发送给用户吗?

答案 3 :(得分:1)

如果数据是敏感的,则无法将其交给客户端处理,同时保证其安全。这根本不是网络的运作方式。您交给客户的所有内容必须是客户可读的。您可以使用SSL等技术来保护数据不被截获,但目标收件人必须能够读取它。您应该处理任何敏感数据服务器端,并仅输出供公众使用的结果。

如果你只想在隐藏凌乱的实现细节的同时为页面提供数据,那么有很多选择:

  • 使用<input type="hidden" />字段
  • 通过输出var myValue = <?= $serverside_value ?>或使用json_encode
  • 等内容直接在JavaScript中存储您的值
  • 通过AJAX
  • 请求值

答案 4 :(得分:1)

向客户端(HTML / JS)提供重要信息并不是很好。

但是要回答你的问题 - 你可以使用jQuery's AJAX方法向PHP发布请求,从PHP中,你可以将json_encode()'ed数据返回给jQuery。 如果你想让它们隐藏在视线之外,或者说“足够加密”,你可以通过SSL通道运行它。 另一种选择是自己进行加密或使用public-private key encryption.

的一些公共库

例如使用jQuery post:

$.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);