Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript/jQuery去除转义字符_Javascript_Jquery - Fatal编程技术网

使用Javascript/jQuery去除转义字符

使用Javascript/jQuery去除转义字符,javascript,jquery,Javascript,Jquery,我正在将数据ajax到Wordpress数据库,并成功地将写入数据库的文本显示在一个div中,以便人们可以看到写入的内容 我的代码如下所示: $.ajax({ type: "POST", url: "<?php echo get_bloginfo('template_url').'/insert_comment.php';?>", data: dataString, cache: false, success: f

我正在将数据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);
       }
$.ajax({
类型:“POST”,
url:“”,
数据:dataString,
cache:false,
成功:函数(html){
var returnedArray=html.split(“|”);
var newhtml=$.trim(unescape(returnedArray[0]);
$(“#quote”).fadeOut(200,function(){
$(“#quote_cont”).text(新HTML);
$(“#quote span”).text(returnedArray[1]);
美元("报价).法代因(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']; ?>
这应该可以:

var newhtml = $.trim(unescape(html));

将注释插入数据库的代码是错误的。它依赖于,这就是您在输出值中看到斜杠的原因。请阅读前面链接的有关魔引号的文档,它们是错误的、不推荐使用的,不推荐使用。相反,您需要使用SQL对值进行转义,或者使用更好的MySQL接口来访问begin,它支持准备好的语句,如或


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

显示服务器端代码,调用返回的确切内容以及斜杠添加到字符串的确切位置。我认为这不是需要剥离转义的问题,而是一开始在服务器端正确处理字符串的问题。不幸的是,这并没有帮助Yok,我接受您的问题是指您需要帮助处理javascript显示反斜杠。你不是你的错伴侣。我诊断错了。我觉得它似乎来自JS,谢谢你。好吧,谢谢!我很欣赏关于安全性的说明,并且已经更新,在我处理查询的变量周围包含mysql\u real\u escape\u字符串。但是这并不能修复返回的da由于我无法访问php.ini文件,因此添加了“php\u flag magic\u quotes\u gpc Off”到.htaccess文件是否有效?输出原始
$\u POST
数组。或者阅读手册部分,其中讨论了禁用/剥离魔术引号的不同方法。只需按照他们所说的操作。问题不在于insert_comment.php文件,我很确定当字符串到达AJA的成功部分时会发生什么XSLash不是凭空出现的。请对它们的确切出现位置进行逐步调试。最有可能的怀疑是神奇的引号。