1

ユーザーが何でも入力できる入力フィールドまたはテキストエリアがあるとしましょう。これは、ユーザーがそこに置くことができることを意味します:

  • 文章
  • 空白
  • マルチライン
  • HTML タグ
  • 一重引用符と二重引用符
  • スラッシュ
  • などなど...

私の現在のコードはこれを行います:<?php $data = addslashes($content_of_input); ?>

そしてそのすぐ後に…

<?php
    $php_generate_javascriptArray .='
        javascriptArray[0] ="'.$data.'";
    ';
?>
<script>
    javascriptArray = [];
    <?php echo $php_generate_javascriptArray; ?>
</script>

残念ながら、スラッシュを追加するだけでは十分ではありません。たとえば、ユーザーが複数の行や HTML リンクを挿入すると、Javascript が壊れます。それを防ぎ、それでもJavascript 配列に LINK、MULTIPLE LINES、HTML TAGS を含める方法はありますか ユニバーサルフィルターを探しています。

4

2 に答える 2

6

json_encodePHP データ構造 (または文字列、または数値) を適切な JavaScript データ構造に変換し、HTML ドキュメント内のスクリプト要素に安全に挿入できるようにします (スラッシュをエスケープすることにより)。

<script>
    var data = <?php echo json_encode($data); ?> ;
</script>
于 2012-09-07T11:24:26.213 に答える
1

より高度な保護が必要なPHP 関数urlencode(...) またはbase64_encode(...)を使用します。

私は通常 urlencode を使用し、Javascript 側では unescape を使用して URL 形式のデータをデコードします。

于 2012-09-07T11:28:02.963 に答える