3

对于我的示例,请访问http://jflagher.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 回答