-1

当用户向网站提交名称和城市字段的数据时,我可以在哪里放置允许显示标点符号的加斜杠或魔术引号编码?

if(isset($_POST['submit'])) {   
$name=$_POST["element_1"];
$xxx=$_POST["element_2_1"];
$xxxxx=$_POST["element_2_2"];
$xxxxx=$_POST["element_2_3"];
$xxxxx=$_POST["element_3_1"];
$xxxxxd=$_POST["element_3_2"];
$xxxxxx=$_POST["element_3_3"];
$xxxxx=$_POST["element_4_1"];
$xxxxx=$_POST["element_4_2"];
$city=$_POST["element_4_3"];
$xxx=$_POST["element_4_4"];
$xxp=$_POST["element_4_5"];
$desc=$_POST["element_5"];
//$file=$_FILES['element_6'];
$link=$_POST["element_7"];
$stdate=$stdatemm."-".$stdatedd."-".$stdateyy;
$endate=$endatemm."-".$endatedd."-".$endateyy;
$user=$_POST["postuser"];
4

1 回答 1

1

您需要在将用户提交的内容保存到数据库时对其进行转义。

// Your var with `"/'` chars
$name=$_POST["element_1"];

// Escape it for database storage
$name_escaped = mysql_real_escape_string($name);

// Use the escaped version in your query
mysql_query("INSERT INTO table (column) VALUES ('" . $name_escaped . "')");

注意:mysql_real_escape_string()必须在初始化 MySQL 连接之后、执行 MySQL 查询之前调用该函数。

注意:从 PHP 5.5 开始不推荐使用这种执行 MySQL 查询的方式,因此您应该使用MysqliorPDO方法。

在任何情况下,当从数据库中检索内容时,它不应该被转义,因此如果你想在 HTML 页面上显示它,请确保使用htmlspecialchars()像“”这样的字符<不会破坏 HTML:

<html>
<body>
    <div>
        <?php echo htmlspecialchars($name_fromDB); ?>
    </div>
</body>
</html>
于 2013-08-16T00:30:53.400 回答