2011-01-06 1 views
0

テキストエリアを特定の文字数に制限し、残りの文字数を通知するJavaScript関数を記述します。この制限は、その特定のフィールドのMySQLで設定された制限に一致します。テキストエリアの文字制限 - エスケープされた引用符と二重引用符は、MySQLで2文字を占めます。

しかし、PHPとmysql_real_escape_string()を使ってコンテンツを保存すると、引用符と二重引用符(バックスラッシュと他のすべてのエスケープされたもの)がバックスラッシュで保存されるため、実際には2つのスペースJS関数を不正確にする。どのようにこれを回避するための任意の考えですか?

EDIT:Per decezeのアドバイスマジッククォートがオンで、get_magic_quotes_gpc()でチェックを使用しているかどうかを確認しました。

しかし、私はまた、ディレクトリの.htaccessファイルをチェックし、このフラグを発見した:どうやらマジッククオートをオフにされていない

php_value magic_quotes_gpc    0 

を。どんな考え?

答えて

1

余分なスラッシュを保存している場合、保存するテキストは実際に保存されません。
magic quotesが有効になっているようです。それらを無効にします。

+0

私が知る限り、魔法の引用符は有効になっていません。私が鈍いのであれば許してください。しかし、mysql_real_escape_string()を使って引用符を含む文字列をエスケープしないで、エスケープされた文字の前にバックスラッシュを追加しますか?それをMySQLに挿入するとバックスラッシュが保存されますか? 1文字(引用符)を2として保存することになります。 – zdyn

+0

@ZDYN mysql_real_escape_stringを使用してエスケープすると、テキストをdbに挿入するクエリを壊す文字のみがエスケープされます。余分なスラッシュは*データベースに保存されません*。簡略化された例: ''これらは\ "引用符\"です。 "は文字列が' 'これらの引用符 ''を意味します。スラッシュは文字列の一部ではなく、文字列リテラルを書くときに有効な構文に必要です。あなたはこの答えを受け入れたので、それはあなたの問題を解決したと思いますか? – deceze

+0

それはその特定の問題に対する正解ですが、私はなぜマジッククォートを無効にできないのかを理解している大きな問題があります。ローカル.htaccessファイルを上書きできるものはありますか? – zdyn

関連する問題