2011-03-18 45 views
0

我正尝试使用Javascript数组创建视频幻灯片。该数组需要从数据库循环中填充。视频数据库通过CMS创建。返回从PHP数据库循环到Javascript数组的字符串

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

<% 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 %> 
+3

我想你还在使用除JS和PHP之外的其他一些技术,请为你的问题添加必要的标签和句子。 – vbence 2011-03-18 16:31:11

+0

'<% %>'对于php不是最佳实践,使用''......将您希望与w/JS进行交互的变量回显出来 – kjy112 2011-03-18 16:32:10

回答

1

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

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

和将其插入JavaScript作为JSON数据:

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

的JSON编码将转向该护理字符串转换为有效的JS表示。

现在,你已经有了SQL注入的PHP/Javascript等价物。