将 PHP 变量传递给 Javascript

Posted

技术标签:

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

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

    使用 AJAX:使用单独的 Javascript 文件加载所需数据,然后在需要时加载到所有 html(或 PHP)页面中 隐藏表单输入:例如<input type="hidden" id="X" value="<?php echo $X;?>"/> 然后使用Javascript获取值 将 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 中的变量,但我正在寻找一种方法来隐藏它的源代码 【参考方案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>

【讨论】:

以上是关于将 PHP 变量传递给 Javascript的主要内容,如果未能解决你的问题,请参考以下文章

将 HTML 选择传递给 PHP 变量

通过 ajax 将 Javascript 变量传递给 PHP

Laravel 使用 AJAX 将 Javascript 变量传递给 PHP 并检索那些

将 php 变量传递给 xmlhttp.responseText

如何从 Blade 格式 HTML 将 PHP 变量传递给 JavaScript 函数

将 PHP 变量传递给模态窗口