如何在php中正确编码表单

时间:2011-04-12 15:15:35

标签: php forms character-encoding decode encode

my site上,用户可以通过表单向数据库添加内容。我希望用户能够在表单中键入任何内容,并将所有内容添加到数据库中,以便他们输入它。目前我遇到了许多字符的问题,即斜杠,&,?等

允许将所有字符正确添加到数据库的最佳方法是什么?

另外,在显示它们时是否必须对它们进行解码才能正常工作?如果是这样,我该怎么做?

2 个答案:

答案 0 :(得分:1)

保存时,使用mysql_real_escape_string(或PDO)来防止SQL注入攻击。这样就可以在不破坏SQL查询的情况下编写引号和反斜杠。

<?php
$text = mysql_real_escape_string($_POST['text']);
mysql_query('INSERT INTO table(text) VALUES("'.$text.'")');
?>

将数据打印到浏览器(带回声)时,首先通过htmlspecialchars运行以禁用HTML并解决当前问题:

<?php
// ...fetch $text from db here...
echo htmlspecialchars($text);
?>

答案 1 :(得分:0)

htmlentities()可以帮助您编码和decode html字符:

您还可以使用nl2br()来保留textarea元素的换行符:

此外,您应该使用PDO来满足您的数据库需求,因为它比旧的数据转义方法更安全,mysql_real_escape_string()