将PHP变量传递给Javascript

时间:2015-02-20 12:53:35

标签: javascript php html

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

  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>
  4. 但是我担心这些方法并不是真正安全的(编辑:我需要的是只隐藏源代码中的变量,更多是不可能的),并且在编号时会变得混乱传递的变量很大。

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

    EDIT2:例如左 想象一下,我将把我的项目的根路径和一些表格键传递给js
    我在这种情况下通过了rootpath,所以我无法在它之前链接所有内容(我无法使用外部JS)
    并且它真的 Unbecoming 有这样的东西:

    <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"/>
    

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

2 个答案:

答案 0 :(得分:0)

如果在某些常识和一些检查中使用Javascript可以非常安全,但隐藏变量看起来对我来说是不切实际的(或者可能是矫枉过正的)。

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

不要误解我的意思......因为隐藏或混淆代码就像过度杀伤一样,而且你必须将初始化向量和密钥存储在某个地方才能在返回途中解密该值。

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

希望有所帮助:)

答案 1 :(得分:0)

试试这段代码......

<?php
  $php_var="Hello World";
?>   

<script>

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