0

文字列をデータベースに挿入するために、この関数を文字列に適用します。

$string = strip_tags($string);
$string = htmlspecialchars($string);
$string = preg_replace('/\s+/', ' ', $string); // removing multiple spaces :-)
$string = preg_replace('/(?:\s\s+|\n|\t)/', ' ', $string);
$string = mysql_real_escape_string($string);

アプリのテスト中にローカルホストで次のように入力します。Life's Interesting

正確な文字列が db (Life's Interesting) に保存されます。次に、アプリを実サーバーにアップロードしました。同じ文字列を入力するとLife\'s Interesting、データベースに保存されます。

これがローカル ホストではなく、サーバーだけで発生するのはなぜですか? ローカルホストで Wamp を使用しています。サーバーでどの構成を変更する必要があるので、データベースに正しく保存されますか?

前もって感謝します

4

1 に答える 1

3

なぜならmagic_quotes_gpc

var_dump(magic_quotes_gpc())

var_dump マジックは、両方のサーバーで gpc を引用します。あなたの実サーバーは、魔法の引用符がデフォルトで有効になっていると思います。

マジック クォートは、受信データを PHP スクリプトに自動的にエスケープするプロセスです。必要に応じて、魔法の引用符をオフにしてコーディングし、代わりに実行時にデータをエスケープすることをお勧めします。

PHPマニュアル - 魔法の名言

于 2012-11-29T08:56:04.250 に答える