This question already has answers here:
With “magic quotes” disabled, why does PHP/WordPress continue to auto-escape my POST data?
(6个答案)
上个月关闭。
我正在向数据库中插入一个
我将电子邮件正文保存到数据库单元中。当使用
我的问题可能与
我是
变成
我是
等等...
这让我发疯。我没有进行任何手动转义!
这就是我现在要做的:
在表单上:
插入它:
输出:
根据我所做的研究,无需取消数据库的输出。但是为什么输出所有反斜杠转义呢?
(6个答案)
上个月关闭。
我正在向数据库中插入一个
textarea
,但是在检索它时,每个引号前面都带有一个反斜杠。我将电子邮件正文保存到数据库单元中。当使用
wp_kses_post()
转义与HTML相关的所有内容时,我建议使用wp_editor()
转义所有内容,而将内容存储在数据库中时则不会。我的问题可能与
wp_kses_post()
有关,也可能没有。问题是,当我将内容检索到电子邮件中时,我在电子邮件中输入的所有带有引号的内容都带有斜线...所以我是
变成
我是
等等...
这让我发疯。我没有进行任何手动转义!
这就是我现在要做的:
在表单上:
<textarea id="cc-email" name="cc-email" cols="80" rows="10"></textarea>
插入它:
$cc_email = $_POST['cc-email'];
$query = "INSERT INTO wp_forms (formID, cc_email)
VALUES (?, ?)";
$stmt = mysqli_prepare($connection, $query) or error_log('stmt error: ' . mysqli_error($connection));
mysqli_stmt_bind_param($stmt, "is", $formID, $cc_email);
if (!mysqli_stmt_execute($stmt)) {
error_log('stmt error: ' . mysqli_stmt_error($stmt));
}
mysqli_stmt_free_result($stmt);
输出:
$query = "SELECT cc_email FROM wp_forms WHERE formID=?";
$stmt = mysqli_prepare($connection, $query) or error_log('stmt error: ' . mysqli_error($connection));
mysqli_stmt_bind_param($stmt, "s", $formID);
if (!mysqli_stmt_execute($stmt)) {
error_log('stmt error: ' . mysqli_stmt_error($stmt));
}
mysqli_stmt_bind_result($stmt, $cc_email);
mysqli_stmt_fetch($stmt);
mysqli_stmt_free_result($stmt);
根据我所做的研究,无需取消数据库的输出。但是为什么输出所有反斜杠转义呢?
最佳答案
我想到了。 WordPress自动转义$_POST
数据...
谁会想到
我在这里找到了:With "magic quotes" disabled, why does PHP/WordPress continue to auto-escape my POST data?
我想我必须使用stripslashes()
。
关于php - 从数据库存储和检索电子邮件正文时,在引号前加反斜杠。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43646767/