【发布时间】:2014-11-09 06:17:41
【问题描述】:
我正在尝试构建一个编辑页面来编辑标题。
此标题将显示在“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 编码
【问题讨论】:
-
在打开
<?php标记error_reporting(E_ALL); ini_set('display_errors', 1);之后立即将错误报告添加到文件顶部。您很可能正在注入 SQL 不同意的字符。 -
看看这个stackoverflow.com/questions/25831176/…(如果是
input问题)。 -
我不相信,因为“h3”标签可以很好地显示它,而输入字段会部分显示它。所以看起来和SQL错误无关吧?
-
小费,
$_POST,$_GET,$_COOKIE,$_SESSION, ... , 使用 isset