3

私の例については、http://jflaugher.mystudentsite.net/cmweb241/cmweb241_lab2.htmlにアクセスしてください。

動作する htmlspecialchars と、二重引用符と一重引用符を削除する str_replace 関数が必要なだけです。なぜこれがうまくいかないのですか?私はPHPに非常に慣れていません:/

 <?php
  $username = str_replace(array("'", "\""), "", htmlspecialchars($_POST['username']));
  $password = str_replace(array("'", "\""), "", htmlspecialchars($_POST['password']));
  $comment = str_replace(array("'", "\""), "", htmlspecialchars($_POST['comment']));

  echo " <p>Your Username is: $username . </p>";
  echo " <p>Your Password is: $password . </p>";
  echo " <p>Your Comment was: $comment . </p>";

?>
4

2 に答える 2

4

Alex Lunixの指定に従って逆の順序で使用する

$username = htmlspecialchars(str_replace(array("'", "\""), "", $_POST['username']));
于 2013-02-08T04:20:06.150 に答える
1

前の答えは正しいです。

最初の htmlspecialchars 関数を適用します。すべての二重引用符を " に変換します。' へのすべての一重引用符。これらの特殊文字は、Web ブラウザーではそれぞれ二重引用符と単一引用符として表示されます。

最初に str_replace を適用する必要があります。以下のコードは正しいです。

<?php
foreach(array('comment', 'password', 'username') as $key) {
    $$key = empty($_POST[$key]) ? null : htmlspecialchars(str_replace(array("'", '"'), '', $_POST[$key]));
    echo " <p>Your " . $key. " is: " . $$key . "</p>";
}
?>
于 2013-02-08T04:39:10.867 に答える