我必须在表单中创建一个用户将插入用户名和密码的登录。我必须确保不处理html实体,并且我也不能允许处理单引号或双引号。我必须回显输入到表单中的数据并显示它。
我必须使用htmlentities和str_replace。我的htmlentities正确,但我不确定如何利用str_replace函数来替换用户可能在表单中输入的单引号和双引号。任何帮助都会很棒。
这是我目前的PHP(有效)
<?php
$username = htmlspecialchars($_POST['username']);
$password = htmlspecialchars($_POST['password']);
$comment = htmlspecialchars($_POST['comment']);
?>
<html>
<body>
Your username is: <?php echo $username; ?><br />
Your password: <?php echo $password; ?><br />
Your Comment was: <?php echo $comment; ?>
答案 0 :(得分:14)
我想你想要this way..,请检查
$yourPostVariable = "scor\"pi'on";
//$name = str_replace(array("'", "\""), "", htmlspecialchars($yourPostVariable ) );
echo str_replace(array("'", "\"", """), "", htmlspecialchars($yourPostVariable ) );
答案 1 :(得分:2)
$username = htmlentities(str_replace(array('"', "'"), '', $_POST['username']));
答案 2 :(得分:1)
$username = str_replace(array("'", "\""), "", htmlspecialchars($_POST['username']));
答案 3 :(得分:0)
尝试使用以下代码替换双引号
str_replace(chr(34), "replace_with", $content);
单引号
str_replace("'", "replace_with", $content);
答案 4 :(得分:0)
要删除引号,您可以使用:
$search = 'cars "black" in ...';
$search = str_replace("\"", "", $search);
// result: "cars black in ..."
答案 5 :(得分:0)
$username_test = $_POST['username'];
$username = str_replace(array("'", "\"", """), "",htmlspecialchars($username_test) );
//same for password :)