私はCKEditorを利用した簡単なコンテンツエディタを作った。現時点では、私のローカルWebサーバー上では正常に動作しますが、リモートサーバーにアップロードすると、壊れてしまいます。mysql_real_escape_string?
以下は、私のローカルサーバーからの出力例です。
<img alt="" src="usrfiles/default_placeholder.png" style="width: 150px; height: 150px; " />
以下は、リモートサーバーから返される出力です。
<img alt="\&quot;\&quot;" data-cke-saved-src="\" src="\&quot;usrfiles/default_placeholder.png\&quot;" style="\&quot;width:" 150px;="" height:="" \"="">
私はローカルとリモートで使用するコードを変更しませんでした。もちろん、データベースポインター(サーバー、データベース名、ユーザー名など)を変更することはもちろんです。私の唯一の疑いのある人は、テキストの提出時に使用するmysql_real_escape_string()です。
私のローカルサーバーはPHPバージョン5.3.6を使用し、リモートサーバーはPHPバージョン5.2.13を使用します。 これらの2つのバージョンでmysql_real_escape_string()の動作との違いはありますか?
EDIT CodeCasterへの返信で 、 出力 『それはデータベースに格納されてどのように、どのようにあなたがそれを見ないか、保存し、それを盗んんから来て「これはどこに多くのコンテキストを提供してください』。おそらくmysql_real_escape_string()は魔法の引用符とhtmlentitiesのようには関係ありません。 "
出力はSQLクエリから取得されます。 TEXTデータ型としてデータベースに格納されます。これは、両方ともPHP SQLクエリを介して格納され、取得されます。私はデータをINSERTまたはUPDATEしている間、mysql_real_escape_string()を使用します。私のローカルサーバーでは、mysql_real_escape_string()内のクエリでINSERTして、格納されたデータに変更を加えずに取得し、データをHTMLコードとして出力します。リモートサーバーでは、このシステムは中断します。
は、私は本当にすべてを経験したhavent PHP 5.2.13またはPHP 5.3.6の違い。しかし、私はかなり肯定的ですが、それは問題です。 –
この「出力」がどこから来るのかをより詳細に記述してください。データベースにどのように格納されていますか、どのように保管して取り込みますか、どのように表示しますか。おそらく、mysql_real_escape_string()はマジッククォートやhtmlentitiesと同様に何もしません。 – CodeCaster