6

我必须以用户将插入用户名和密码的形式创建一个登录名。我必须确保不处理 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; ?>

4

7 回答 7

19

我猜你想要这样..,请检查

$yourPostVariable = "scor\"pi'on";

//$name = str_replace(array("'", "\""), "", htmlspecialchars($yourPostVariable ) );

echo str_replace(array("'", "\"", "&quot;"), "", htmlspecialchars($yourPostVariable ) );
于 2013-02-07T05:23:20.813 回答
5
 $keyItem = str_replace ("'","\'",$keyItem);

这用“转义”单引号 \' 替换单引号。

于 2015-08-25T10:34:57.887 回答
4
$username = htmlentities(str_replace(array('"', "'"), '', $_POST['username']));
于 2013-02-07T05:22:39.627 回答
2
$username = str_replace(array("'", "\""), "", htmlspecialchars($_POST['username']));
于 2013-02-07T04:55:55.377 回答
0

要删除引号,您可以使用以下命令:

$search = 'cars "black" in ...';
$search = str_replace("\"", "", $search);
// result: "cars black in ..."
于 2015-04-15T17:43:06.450 回答
0

尝试以下代码替换双引号

str_replace(chr(34), "replace_with", $content);

对于单引号

str_replace("'", "replace_with", $content);
于 2013-02-07T04:55:48.420 回答
0
$username_test = $_POST['username'];
$username = str_replace(array("'", "\"", "&quot;"), "",htmlspecialchars($username_test) );


//same for password :) 
于 2015-11-03T21:07:36.353 回答