当我提交包含撇号的值时,会返回2个撇号。
因此,当我打印$ _POST ['姓氏']时,如果O&#r; rourke进入文本框,我会看到O' Rourke。
这是代码
<?php
print_r($_POST);
?>
<form method=post action=<?php echo $_SERVER["PHP_SELF"] ?>>
Surname<input type='text' name='surname' value='' />
<input type='submit' value='Register'>
</form>
阻止这种情况的最佳方法是什么?显然我可以做一个字符串替换但是有更好的方法吗?例如,有一种方法可以在表单中而不是在操作中停止它。
请注意,这与MySQL无关。
请注意,传递一个由htmlentities输出的值仍会导致O&#39; Rourke被打印出来。我使用的代码如下所示。
<form method=post action=<?php echo $_SERVER["PHP_SELF"] ?>>
Surname<input type='text' name='surname' value="<?php echo htmlentities("O'Rourke") ?>"/>
<input type='submit' value='Submit'>
</form>
当用户在文本框中输入文本并点击提交时,我不确定这会有什么帮助。对不起,如果我误解了如何使用htmlentities。