【问题标题】:Passing PHP variables to Javascript将 PHP 变量传递给 Javascript
【发布时间】:2015-02-20 12:53:34
【问题描述】:

有许多关于在 Javascript 中传递 PHP 变量的教程 (for example)。我知道有 3 种替代方法:

  1. 使用 AJAX:使用单独的 Javascript 文件加载所需数据,然后在需要时加载到所有 HTML(或 PHP)页面中
  2. 隐藏表单输入:例如<input type="hidden" id="X" value="<?php echo $X;?>"/> 然后使用Javascript获取值
  3. 将 Javascript 注入返回的 HTML:例如<script> var X = "<?php echo $X;?>";</script>

但我担心这些方法并不真正安全(编辑:我需要的是从源代码中隐藏变量,更多是不可能的),并且当数字时会变得混乱要传递的变量很大。

从 PHP 到 Javascript 传递大量变量是否有任何提示或技巧?主要网站(维基百科、谷歌等)使用什么方法?

EDIT2:例如
想象一下,我要将项目的根路径和一些表单键传递给 js
在这种情况下,我正在传递 rootpath,因此我无法链接它之前的所有内容(我无法使用外部 JS)
拥有这样的东西真的是不合适

<script>
     rootpath = "example/foo";
     KEY1 = "example";
     KEY2 = "example";
</script>

还有这个:

<input type="hidden" id="rootpath" value="example/foo"/>
<input type="hidden" id="KEY1" value="example"/>
<input type="hidden" id="KEY2" value="example"/>

考虑一个更大的项目,需要传递大量变量

【问题讨论】:

  • 你是什么意思他们没有“安全”?您对 JavaScript 的期望是什么安全性 - 它是在客户端机器上执行的。它可以由客户编辑。页面访问者可以看到 JavaScript 使用的所有数据。
  • 我的错!我的意思是代码的显示,最后没有可靠的方法来保护 JS 中的变量,但我正在寻找一种方法来隐藏它的源代码

标签: javascript php html


【解决方案1】:

如果使用一些常识并在这里和那里进行几次检查,Javascript 可以是完全安全的,但隐藏变量对我来说似乎不切实际(或者可能是矫枉过正)。

但是,这并不意味着您在指定变量时无法实现目标。也许您可以尝试使用mcrypt_encrypt() 之类的方法将变量定义为加密值,并在服务器端使用mcrypt_decrypt() 来获取您尝试隐藏的值。

不要误会我的意思...这就像隐藏或混淆代码一样矫枉过正,而且您必须将初始化向量和密钥存储在某个地方,以便能够在返回的路上解密该值。

所以它更像是步骤 C 和 A 之间的混合。加密你的变量,通过 AJAX 将它们发送到 PHP,然后再解密。

希望有帮助:)

【讨论】:

    【解决方案2】:

    试试这个代码...

    <?php
      $php_var="Hello World";
    ?>   
    
    <script>
    
       var js_var = "<?php echo $php_var; ?>";
       alert(js_var);
    </script>
    

    【讨论】:

      猜你喜欢
      • 2011-08-31
      • 1970-01-01
      • 1970-01-01
      • 2015-11-01
      • 2019-07-07
      • 2014-01-11
      • 2011-06-12
      • 2016-02-23
      相关资源
      最近更新 更多