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

How to properly escape tags in input text

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

<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>

例如,如果我将 "My input text >" 添加为输入值,则 nextpage.php 将被破坏。 我尝试使用 for:value="<?php echo strip_tags($_POST['input_name']);?>" 或 :value="<?php echo htmlspecialchars($_POST['input_name']);?>" 但其中 none 有效.. 为什么会这样以及如何避免?谢谢

试试这个

<?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;

首先,为了安全起见,您应该清理 posted 值,但除此之外,php 提供了一个自动转义称为 addslahes http://php.net/manual/en/function.addslashes.php 的特殊字符的功能,保存您的 post 使用 addslashes 函数将值赋给一个变量,然后使用该变量作为您的值。

试试这个:

<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>