如果输入字符串后面跟着一些不带空格的文本,例如<abc
,为什么在提交表单时切断输入文本。但是当<
后面有一个空格时,例如< abc
,它可以很好地工作
HTML
<form name="testform" method="post">
<input type="text" name="title" />
<input type="submit" value="Submit"/>
</form>
如果您提供输入值为This is a sample <string
和submit。通过POST接收的值为This is a sample
。但是,当您提交This is a sample < string
(注意<后面的空格)时,它将被正确接收。
服务器端(PHP)
<?php
if(isset($_POST['title'])) {
echo '<pre>';
print_r($_POST); // outputs "This is a sample " instead of "This is a sample <string"
}
?>
这是什么原因呢?
发布于 2016-03-07 11:30:50
原因可能是<符号是一个特殊字符。大概在你的帖子中,你会剔除任何可能有害的东西,可能是htmlentities
,而你的验证可能会把它视为潜在的威胁,所以它从字符串中删除了标签。
https://stackoverflow.com/questions/35842490
复制相似问题