2011-03-18 43 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等價物。