gpt4 book ai didi

javascript - 使用 Javascript/jQuery 剥离转义字符

转载 作者:行者123 更新时间:2023-11-30 18:33:44 25 4
gpt4 key购买 nike

我将数据通过 ajax 发送到 Wordpress 数据库,并在成功时在 div 中显示写入数据库的文本,以便人们可以看到写入的内容

我的代码是这样的:

$.ajax({
type: "POST",
url: "<?php echo get_bloginfo('template_url').'/insert_comment.php';?>",
data: dataString,
cache: false,
success: function(html){
var returnedArray = html.split('|');
var newhtml = $.trim(unescape(returnedArray[0]));
$("#quote").fadeOut(200,function(){
$("#quote_cont").text(newhtml);
$("#quote span").text(returnedArray[1]) });
$("#quote").fadeIn(200);
}

例如,如果用户写下评论“我不明白!!”

div #quote 显示“我不明白!!”,但是当我查看数据库时,它是在没有“\”的情况下编写的..如果我使用 PHP 直接从数据库中提取内容,我没有得到“\”

编辑:

下面更改的 PHP 文件现在是正确的..非常感谢@deceze 对我的耐心,确保你的 mysql_real_escape_string() 在你的数据库连接之后出现

<?php  $con = mysql_connect("localhost","root","root");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("robomon_wbc", $con);
$order_id = mysql_real_escape_string($_POST['order_id']);
$email = mysql_real_escape_string($_POST['email']);
$name = mysql_real_escape_string($_POST['name']);

$comment = mysql_real_escape_string($_POST['comment']);
$comment = strip_tags($comment);
mysql_query("UPDATE wp_orderdata SET `comment`='".$comment."', `cus_name` = '".$name."' WHERE `order_id`='".$order_id."' AND `order_email`='".$email."';");
mysql_close($con);
echo $_POST['comment'].'|'.$_POST['name']; ?>

最佳答案

您将评论插入数据库的代码错误。它依赖于 Magic Quotes ,这就是您在输出值中看到斜杠的原因。请阅读前面关于 Magic Quotes 的文档,它们很糟糕,已弃用且不推荐。相反,您需要使用 mysql_real_escape_string 对值进行 SQL 转义或者使用更好的 MySQL 接口(interface)开始,它支持准备好的语句,比如 MySQLiPDO .

总而言之,斜杠是由 Magic Quotes 引起的,您可以在服务器上删除/禁用它,但如果这样做,您需要更改数据库代码以避免 SQL 注入(inject)漏洞。无论如何,您都应该更改数据库代码,因为即使使用 Magic Quotes,您仍然容易受到 SQL 注入(inject)攻击。

关于javascript - 使用 Javascript/jQuery 剥离转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8875466/

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