2016-10-08 4 views
0

Phpmakerに問題があり、解決方法がわかりません。私はMySQLデータベース(InnoDB)とPHPMakerインターフェイスを作成し、IMDBサイトで生成されたHTMLコードをこのURLにコピーしました:www.imdb.com/pluginsPHPMaker Mysql Issue

このコードは、ユーザーからの映画の評価を私に与えます。テキストエリアの入力フィールドに貼り付けて保存します。 MySQLの列に保存されたデータは、コードの途中で<x>を受け取ります。

これはIMDBから元(コピー)コードである:

<span class="imdbRatingPlugin" data-user="ur21152180" data-title="tt3228904" data-style="p3"> 
    <a href="http://www.imdb.com/title/tt3228904/?ref_=plg_rt_1"> 
     <img src="http://g-ecx.images-amazon.com/images/G/01/imdb/plugins/rating/images/imdb_37x18.png" alt=" Empire (2015) on IMDb" /> 
    </a> 
</span> 
<script> 
    (function(d,s,id){ 
     var js,stags=d.getElementsByTagName(s)[0]; 
    if(d.getElementById(id)){return;} 
    js=d.createElement(s); 
    js.id=id; 
    js.src="http://g-ec2.images-amazon.com/images/G/01/imdb/plugins/rating/js/rating.min.js"; 
    stags.parentNode.insertBefore(js,stags);}) 
    (document,'script','imdb-rating-api'); 
</script> 

そして、これは、MySQLに保存されているものである。

<span class="imdbRatingPlugin" data-user="ur21152180" data-title="tt3228904" data-style="p3"> 
<a href="http://www.imdb.com/title/tt3228904/?ref_=plg_rt_1"> 
    <img src="http://g-ecx.images-amazon.com/images/G/01/imdb/plugins/rating/images/imdb_37x18.png" alt=" Empire (2015) on IMDb" /> 
</a> 
</span> 
<s<x>cript> 
    (function(d,s,id){ 
     var js,stags=d.getElementsByTagName(s)[0]; 
     if(d.getElementById(id)){return;} 
     js=d.createElement(s); 
     js.id=id; 
     js.src="http://g-ec2.images-amazon.com/images/G/01/imdb/plugins/rating/js/rating.min.js"; 
     stags.parentNode.insertBefore(js,stags);}) 
    (document,'script','imdb-rating-api'); 
</script> 

<x><script>タグの中央に挿入されています。

誰もがこの問題を明らかにすることはできますか?

+0

dbにデータを挿入する場所にPHPコードを追加してください –

答えて

0

phpmakerは<x>を「スクリプト」ワードに挿入します。たぶん、セキュリティ上の理由から。

私は、この問題をサーバーサイドスクリプトを使用してphpmaker10で解決しました。

ここにあります。

最初に、左側から必要なフィールドを選択します。私はそれをテキスト(テキスト)にしました。 次に、コード(Server Events、client Scripts ...)という名前のタブをクリックします。 次に、「サーバーイベント」セクションで、「表固有」を展開し、「共通」を展開してから「Row_Rendered」をクリックします。現在のコードを次のように置き換えます。

// Row Rendered event 
function Row_Rendered() { 
    // To view properties of field class, use: 
    //var_dump($this-><FieldName>); 

    $string = $this->text->ViewValue;    
    $correctedText = str_replace("<x>","",$string); 
    $this->text->ViewValue = $correctedText;   

} 

他の方法もありますが、これもその1つでした。

0

PHPMakerはセキュリティ上の脅威として扱われており、問題が発生しています。エスケープ文字を使用してエスケープする必要がありますが、それは動作しますが、データとそのセキュリティメジャーを損なう可能性のあるスクリプトコードをデータベースに挿入することを迂回する標準的な方法として提案されていません。