首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在php中正确地对表单进行编码

问如何在php中正确地对表单进行编码
EN

Stack Overflow用户
提问于 2011-04-12 23:15:35
回答 2查看 131关注 0票数 0

在my site上,用户可以通过表单向数据库添加内容。我希望用户能够在表单中键入任何内容,并将其全部添加到数据库中,就像他们输入的那样。目前,我遇到了一些字符的问题,即斜杠、&、?等。

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

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-12 23:18:22

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

代码语言:javascript
复制
<?php
$text = mysql_real_escape_string($_POST['text']);
mysql_query('INSERT INTO table(text) VALUES("'.$text.'")');
?>

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

代码语言:javascript
复制
<?php
// ...fetch $text from db here...
echo htmlspecialchars($text);
?>
票数 1
EN

Stack Overflow用户

发布于 2011-04-12 23:17:33

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

您还可以使用nl2br()保留文本区域元素的换行符:

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5637553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档