如何正确转义输入文本中的标记

时间:2015-07-27 08:10:46

标签: php escaping htmlspecialchars strip-tags

看起来像普通问题,但找不到正确的解决方案。假设我有这样的形式:

<form name="form" action="nextpage.php">
<input type="text" name="input_name" value="<?php echo $_POST['input_name'];?>" />
<input type="submit" name="submit" value="Next"/>
</form>

例如,如果我添加“我的输入文字&gt;”作为输入的值,nextpage.php被破坏。 我尝试用于:value="<?php echo strip_tags($_POST['input_name']);?>"或 :value="<?php echo htmlspecialchars($_POST['input_name']);?>"但它们都不起作用..为什么这样以及如何避免它?谢谢

3 个答案:

答案 0 :(得分:1)

首先,您应该清理已发布的安全值,但除此之外,php提供了一个自动转义名为addslahes http://php.net/manual/en/function.addslashes.php的特殊字符的函数,使用addslashes函数将post值保存到变量中,然后使用变量作为你的价值。

答案 1 :(得分:0)

试试这个

<?php
        $_POST['input_name']="ddd";  ?>
        <form name="form" method="POST" action="nextpage.php">
    <input type="text" name="input_name" value="<?php echo $_POST['input_name'];?>" />
    <input type="submit" name="submit" value="Next"/>
    </form>

并在nextpage.php中

<?php

$name=$_POST['input_name'];

echo $name;

答案 2 :(得分:0)

试试这个:

<form name="form" action="nextpage.php" method="POST">
<input type="text" name="input_name" value="<?php echo $_REQUEST['input_name'];?>" />
<input type="submit" value="Next"/>

</form>