繁体   English   中英

如何防止从表单输入中添加\\?

[英]How can I prevent \ from being added from the form input?

html表单接受textarea输入,我在显示它时使用$ _POST值将输入值放入textarea。 例如。

<html>
<?php if($_POST['input'){
<form method="post" action="<?=$PHP_SELF?>">
<textarea name="input" cols="60" rows="20"><?=$_POST['input']?></textarea>
<input type="submit" value="Test it">
</form>
<?php
} else {
?>
Please copy in a text of your choice
<br /><br />
<form method="post" action="<?=$PHP_SELF?>">
<textarea name="input" cols="60" rows="20"></textarea>
<input type="submit" value="Test it">
</form>
</html>

除了反斜杠'\\'添加到每个单引号和双引号之外,一切正常。 如何设置一些设置以防止添加反斜杠?

经过长时间的搜索,我解决了这个问题:

在要显示textarea内容的页面中,只需添加此内容即可

< ? php echo stripslashes($shortcode_name) ? > 

当然,您需要用$shortcode_name替换$shortcode_name shortcode_name。 就这些。 解决了

禁用魔术引号 - 请参阅http://php.net/manual/en/security.magicquotes.php - 如果您在共享主机上并且您的主机是愚蠢的并且不想/允许您更改它(请参阅该页面)为什么它是愚蠢的),在你从$_GET, $_POST, $_COOKIE数组中获得的每个值上使用stripslashes()

另外,不要将输入值(包括PHP_SELF )回送到HTML输出中而不通过htmlspecialchars()发送它们,或者您遇到安全问题。 有关更多信息,请参见http://en.wikipedia.org/wiki/Cross-site_scripting

你也可以使用stripslashes

<textarea name="input" cols="60" rows="20"><?php echo stripslashes($_POST['input']); ?></textarea>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM