将参数从服务器端PHP传递到客户端JavaScript的最安全的方法是什么 [英] What is the safest way of passing arguments from server-side PHP to client-side JavaScript

查看:141
本文介绍了将参数从服务器端PHP传递到客户端JavaScript的最安全的方法是什么的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的应用程序中,我非常依赖JavaScript来增强用户界面,但所有数据都来自数据库并由PHP处理。默认情况下,我使用'echo'语句来及时替换所需的值,如下所示:

In my application I rely heavily on JavaScript to enhance the user interface, but all of the data comes from a database and is processed by PHP. By default I use 'echo' statements to substitute the required values "just in time" like so:

var myVariable = <?php echo $myVariableInPHP ?>

然而,这并没有让我感到非常优雅,我担心这种情况的稳定性和可维护性代码。

This, however, does not strike me as very elegant and I am concerned about stability and maintainability of such code.

我在这里有其他选择吗?

Do I have any alternatives here?

对于服务器端,我使用的是Symfony 1.4 PHP框架。

For server-side, I am using the Symfony 1.4 PHP framework.

谢谢,

推荐答案

我最喜欢的方式是:

<?php

$var = array(
  'prop1' => 'value1',
  'prop2' => 'value2',
  // ...
);

?>
<script type="text/javascript">
   var varNameSpace = <?php echo json_encode($var); ?>;

   alert( varNameSpace.prop1 ); // -> 'value1'
</script>

使用 json_encode()确保值传递给Javascript的是转义和格式良好的。使用公共变量容器还可以防止过度使用全局空间(窗口)。

Using json_encode() ensures that the values passed to Javascript are escaped and well formatted. Using a common variable container also prevents from over using the global space (window).

这篇关于将参数从服务器端PHP传递到客户端JavaScript的最安全的方法是什么的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆