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>
一切正常,除了反斜杠'\'添加到每个单引号和双引号。 如何设置一些设置以防止添加反斜杠?
答案 0 :(得分:2)
禁用魔术引号 - 请参阅http://php.net/manual/en/security.magicquotes.php - 如果您在共享主机上并且您的主机是愚蠢的并且不想/允许您更改它(请参阅该页面了解它为何愚蠢),请使用{对于stripslashes()
数组中的每个值,我都会{1}}。
在旁注中,不要将输入值(包括$_GET, $_POST, $_COOKIE
)回显到HTML输出而不通过PHP_SELF
发送,否则您会遇到安全问题。有关详细信息,请参阅http://en.wikipedia.org/wiki/Cross-site_scripting。
答案 1 :(得分:2)
经过长时间的搜索,我解决了这个问题:
在您要显示textarea内容的页面中,只需添加此
即可< ? php echo stripslashes($shortcode_name) ? >
当然,您需要将$shortcode_name
替换为您的短代码。
就这些。
解决
答案 2 :(得分:0)
您也可以使用stripslashes。
<textarea name="input" cols="60" rows="20"><?php echo stripslashes($_POST['input']); ?></textarea>