0

朝、

データベースに情報を保存する小さなフォームを作成しました。

サーバーで magic_quotes_gpc をオフにしています。

ボックスに a"または£記号を入力すると、心配することなくデータベースに保存されます。

PHPでエコーバックすると表示されますが、入力フォームフィールドで値を使用すると、値フィールドが"閉じます。

<input type="text" name="variable" value="<?php echo $row[variable]; ?>" />

入力値の周りに htmlspecialchars を使用しましたが、機能します。

<input type="text" name="variable" value="<?php echo htmlspecialchars($row[variable]); ?>" />

しかし、私は参照としてオープンカートのソースを見てきました.htmlspecialcharsを使用していませんが、データを別の方法で保存しています.

彼らが使用したurlencodesメソッドを使用してみました:

urlencode(html_entity_decode($_POST[variable],ENT_QUOTES, 'UTF-8'));

しかし、これは正しく表示されなかった多くの数字と + 記号として保存されているようです。

私が使用している方法を使用する代わりに、更新データベースをエンコードしたいと思いますhtmlspecialschars

しかし、どの方法が最適かよくわかりませんか?

ありがとうございました

4

3 に答える 3

-2

HTML キャラクターを保存するには、チャーターを変更してから保存します。

<?php
      $new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
      echo $new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;
?>

正しい HTML 文字を取得するには、次のようにデコードします。

<?php
      $str = "<p>this -&gt; &quot;</p>\n";

      echo htmlspecialchars_decode($str);

      // note that here the quotes aren't converted
      echo htmlspecialchars_decode($str, ENT_NOQUOTES);
?>

詳細については、http://www.php.net/manual/en/function.htmlspecialchars.php を参照してください。

于 2013-03-27T09:35:46.520 に答える