1

ローカルのMAMPセットアップでmysql_real_escape_stringを使用すると、正常に機能します。たとえば、テキストフィールドに「test」と入力すると、「test」と表示されます。

これをリモートサーバーに公開すると、文字列がエスケープされていないようです。「test」はデータベースに「test」として表示されます。

エスケープする前に、接続が開いていることをすでに確認しました。

コード例:

    global $db,$db_table_prefix; 

    mysql_connect($db_host, $db_user, $db_pass) or die(mysql_error());
    mysql_select_db("test") or die(mysql_error());

    $title = mysql_real_escape_string($_POST['title']);
    $content = mysql_real_escape_string($_POST['content']);

それは正しいデータベースにうまく保存されますが、\を追加していないように見えます。

4

2 に答える 2

4

それは m_r_e_s のやっていることではなく、magic_quotesです。
ローカル マシンでそれらが有効になっています。あなたのリモコンはそうではありません。ローカルで無効にする必要があります。

また、本当にmysqliまたはPDOの使用を開始する必要があります。

于 2012-08-30T20:16:56.903 に答える
3

magic_quotesローカル サーバーで有効になっている可能性があります。それらを無効にする必要があります。

無効化の詳細magic_quotes: http://www.php.net/manual/en/security.magicquotes.disabling.php

于 2012-08-30T20:17:39.913 に答える