gpt4 book ai didi

PHP、MySQL、引号和输入字段

转载 作者:行者123 更新时间:2023-11-29 12:43:04 27 4
gpt4 key购买 nike

我正在尝试构建一个编辑页面来编辑标题。

此标题将显示在“h3”标签和输入字段中。当用户对标题感到满意时,他将其提交到 mysql 并保存。页面刷新,他可以在“h3”标签和输入字段中看到他的新标题。

问题是,当标题中包含引号时,我在“h3”标签和输入字段中没有得到相同的结果。

以下是我检索变量并将其发送到数据库的方法:

$title_set = $_POST['title'];

这是我如何在标签和输入字段中显示变量:

$title_get = $result['denomination'];

这里显示的是标题:L'appel de la "forêt"

$title_set = $_POST['title'];
$title_get = $result['denomination'];

<h3> -> No output
Input -> No output

变体1:

$title_set = addslashes($_POST['title']);
$title_get = $result['denomination'];

<h3> -> L'appel de la "forêt"
Input -> L'appel de la

变体2:

$title_set = addslashes($_POST['title']);
$title_get = stripslashes($result['denomination']);

<h3> -> L'appel de la "forêt"
Input -> L'appel de la

变体3:

$title_set = mysql_real_escape_string ($_POST['title']);
$title_get = $result['denomination'];

<h3> -> L'appel de la "forêt"
Input -> L'appel de la

显然,标题标签和输入字段管理显示带引号的动态数据的方式存在差异,输入字段的限制性更强。

那么,我该怎么办?

我的页面、脚本和数据库均采用 UTF_8 编码

最佳答案

在将数据插入数据库之前,请使用转义函数,例如 mysql_real_escape_string()。或者更好的是,切换到 PDO,以便您可以使用准备好的查询并将数据作为参数提交。这可以防止 SQL 注入(inject)。请参阅How can I prevent SQL-injection in PHP?

在将从数据库获取的动态内容回显为 HTML 之前,请使用 htmlspecialchars() 对其进行编码。这可以防止跨站点脚本(XSS)。请参阅How to prevent XSS with HTML/PHP?

进一步阅读:https://www.owasp.org/index.php/OWASP_Top_Ten_Cheat_Sheet了解有关注入(inject)和 XSS 风险及补救措施的更多信息。

关于PHP、MySQL、引号和输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25852834/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com