我的例子,请访问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>";
?>
答案 0 :(得分:4)
按照 Alex Lunix
指定的相反顺序使用它$username = htmlspecialchars(str_replace(array("'", "\""), "", $_POST['username']));
答案 1 :(得分:1)
之前的回答是正确的。
您应用第一个htmlspecialchars函数。它将每个双引号转换为&amp; quot;和#039;每一个单引号。这些特殊字符在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>";
}
?>