将字符串从PHP数据库循环返回到Javascript数组

时间:2011-03-18 16:28:34

标签: php javascript

我正在尝试使用Javascript数组创建视频幻灯片。需要从数据库循环填充数组。视频数据库是通过CMS创建的。

我目前正在使用“推送”我的阵列,特色视频,但它不起作用。我怎么把返回的字符串放入数组?

<% control getFeaturedMedia %>
<script type="text/javascript">
FeaturedVideos.push('<div class="panel"><h3>$Title</h3><div class="videoBox"><% if Type = Vimeo %><iframe src="http://player.vimeo.com/video/$VideoID?title=0&amp;byline=0&amp;portrait=0" width="275" height="184" frameborder="0"></iframe><% else_if Type = YouTube %><iframe class="youtube-player" type="text/html" width="275" height="184" src="http://www.youtube.com/embed/$VideoID" frameborder="0"></iframe><% else %>$Image.SetSize(275,184)<% end_if %></div></div>');
</script>
<% end_control %>

1 个答案:

答案 0 :(得分:1)

您将PHP值直接插入到Javascript中。这可能会破坏javascript,特别是如果PHP生成的文本中有任何内容将由Javascript解释,特别是单引号'。要使这种直接插入安全,您应该单独生成整个字符串:

$js_value = "<div class=........ blah blah blah ....";

并将其作为JSON数据插入到Javascript中:

FeaturedVideos.push(<?php echo json_encode($js_value); ?>);

JSON编码将负责将该字符串转换为有效的JS表示。

现在,您已经获得了与SQL注入等效的PHP / Javascript。