0

次の問題、次のコードがあります。

$link = $_GET['link'];
$id = $_GET['block'];

echo "<p id='preview". $id ."'>The player will show in this paragraph</p>";
echo "<script type='text/javascript'>";

echo "var s" . $id . " = new SWFObject('" . COMPANY_URL . "/system/addons/player/player.swf','player". $id ."','210','170','9');";
echo "s" . $id . ".addParam('allowfullscreen','true');";
echo "s" . $id . ".addParam('allowscriptaccess','always');";
echo "s" . $id . ".addParam('wmode','opaque');";

echo "s" . $id . ".addVariable('file', '" . $link  . "&repeat=always&autostart=true');";
echo "s" . $id . ".addVariable('skin', '" . COMPANY_URL . "/system/addons/player/simple-sources.swf');";

echo "s" . $id . ".write('preview". $id ."');";   
echo "</script>";

これは、jQuery ロードによって毎回呼び出されます (これ echo "<p id='preview". $id ."'>The player will show in this paragraph</p>";は が表示されているため機能します)。

IE では、プレーヤーは「プレーヤーはこの段落に表示されます」をそのままにしますが、他のすべてのブラウザでは jw-player に置き換えられます。jw-playerのフォーラムやstackoverflowで解決策が見つかりません...

皆さんが助けてくれることを願っています!

生成されたソースの firebug を更新しました

<p><div class="videofile" id="856">
<p id="preview856"><embed width="210" height="170" flashvars="file=http://DOMAIN/data/productinfo/pressbyopie/long-line/leesdeel-verdraait/1242649976__video_longline-verdraait.flv&amp;repeat=always&amp;autostart=true&amp;skin=http://DOMAIN/system/addons/player/simple-sources.swf" wmode="opaque" allowscriptaccess="always" allowfullscreen="true" quality="high" name="player856" id="player856" src="http://DOMAIN/system/addons/player/player.swf" type="application/x-shockwave-flash"></p>  </div></p>
4

2 に答える 2

0

flv の解析に問題があったと思います。

これを追加したとき:

echo "s" . $id . ".addParam('type','flv');";

出来た :)

于 2010-09-23T08:12:11.733 に答える
0

問題の解決にはなりませんが、PHP はXSS攻撃であり、発生するのを待っていることを指摘せざるを得ません。

$id = $_GET['block'];

echo "<p id='preview". $id ."'>The player will show in this paragraph</p>";

HTML に直接エコーする前に、htmlspecialcharswithを使用してみてください。ENT_QUOTES$id

これが製品コードでなくても、他の人がコピー&ペーストできるようにインターウェブに投稿したままにしておくのは好きではありません ;)


PS: 「回答」を提供する代わりに、あなたの質問にコメントしたでしょうが、まだ十分な担当者がいません。

于 2010-09-23T01:53:36.213 に答える