2011-11-14 7 views
1

MySQLデータベースの一部のフィールドを更新する必要があります。これらのフィールドには、PHPコードとHTMLコードが含まれています。私はこれが危険であるという事実を認識しています。ただし、アプリケーションはイントラネット上で実行されているため、このディスカッションには問題はありません。

私の問題は、データベース内のコードを取得することが(私のために)不可能に思えることです。文字列の一部が切り捨てられます。次のように私のコードの一部は、(問題が発生した)である:MySQLテーブルに保存するときにPHP/MySQLコードが途切れます

$sql = ("UPDATE `database`.`table` SET `code` = '<iframe width='100%' height='100%' src='http://URL?rel=0&autoplay=1' frameborder='0' allowfullscreen></iframe>') WHERE `table`.`id` =4 LIMIT 1 ;"); 

問題は、最初の「IFRAME」の最初の「<」で始まります。その背後にあるものはすべて、実行時に解釈されません。コードを単語、つまり「テスト」に置き換えると、コードは正しく解釈され、うまく保存されます。

ありがとうございました。
ロブ

+1

私はあなたがテスト作品ではiframeを交換するので、あなたのコンテンツ内の単一引用符をエスケープしていると仮定します。あなたは保存されたデータを見ていますか? –

答えて

1

HTMLコード

$sql = ("UPDATE `database`.`table` SET `code` = '<iframe width=\'100%\' height=\'100%\' src=\'http://URL?rel=0&autoplay=1\' frameborder=\'0\' allowfullscreen></iframe>') WHERE `table`.`id` =4 LIMIT 1 ;"; 

または少しシンプルな内部apostrophsをエスケープしてみてください。

$sql = ("UPDATE `database`.`table` SET `code` = \"<iframe width='100%' height='100%' src='http://URL?rel=0&autoplay=1' frameborder='0' allowfullscreen></iframe>\") WHERE `table`.`id` =4 LIMIT 1 ;"; 

も、paranthesysは間違っになります

$sql = "UPDATE `database`.`table` SET `code` = \"<iframe width='100%' height='100%' src='http://URL?rel=0&autoplay=1' frameborder='0' allowfullscreen></iframe>\" WHERE `table`.`id` =4 LIMIT 1 ;"; 
+1

DBが警告しないのは奇妙ですね。しかし、これはトリック、1アップを行う必要があります。 – zrvan

+0

本当に素早い応答をありがとう。 私はチューダーの2番目のソリューションを使用しました。それは私のために最高の仕事でした。だから、閉鎖した。 楽しんでください、 ロブ – RobN

0

を関数htmlentities()を使用する

$orig = "I'll \"walk\" the <b>dog</b> now" 

$a = htmlentities($orig); 

echo $a; // I'll &quot;walk&quot; the &lt;b&gt;dog&lt;/b&gt; now; 

とがhtml_entity_decode()

$b = html_entity_decode($a); 

echo $b; // I'll "walk" the <b>dog</b> now 
関連する問題