0

我想在按下按钮时存储一些 div 内容。我需要/想要保存 html 标签以便重用。

当我用任何类型的字符串替换 post 变量时,它可以完美地工作。我尝试从换行符中清除 html 变量,但它没有这样做,还尝试将 $HTML 帖子放入 a 中$var = <<<HTML HTML,但这也不起作用。

这是javascript:

$("#save").click(function(){
var pageHTML = $("#page_wrap").html();
var name_page = "name";
jQuery.ajax({
  type: "POST",
  url: "php/saveModel.php",
  data: {   nHTML: pageHTML,
            page : name_page
        },
    success:function(data){
      var responseData = jQuery.parseJSON(data);
      var new_div = responseData.message;
      $("#page_wrap > *").remove();
      $("#page_wrap").prepend(new_div);
      $('.editable').aloha();
    }
})
})

这是 php :

<?php

mysql_connect('localhost','name','pwd');  
mysql_select_db('db');
mysql_query("SET NAMES 'utf8'");

$id = $_POST['page'];
$HTMLpost = $_POST['nHTML'];

$insertSignup = mysql_query("UPDATE Table_name SET model_test='$HTMLpost' WHERE    identifiant='$id'");

if($insertSignup){ 
$status = "success";
$message = "OK";
}
else {
$status = "error";
$message = "NOT OK";
}

//return json response
$data = array(
    'status' => $status,
    'message' => $message
);

echo json_encode($data);
exit;
?>

谢谢 !

4

1 回答 1

3

简单的答案:用于mysql_real_escape_string()更改引号以使其安全地进入数据库。

$HTMLpost = mysql_real_escape_string($_POST['nHTML']);
$insertSignup = mysql_query("UPDATE Table_name SET model_test='$HTMLpost' WHERE    identifiant='$id'");

更长的答案:您不应该使用 mysql_() 函数,因为它们正在折旧。改为使用 PDO 或 mysqli 查看准备好的语句——它们会为您安全地处理这个问题(并且它们不会被贬值)。

阅读: http: //php.net/manual/en/pdo.prepared-statements.php或谷歌了解更多 - 周围有很多例子。当 mysql_() 函数确实被删除时,最好在你被刺痛之前立即学习。

于 2012-09-11T13:07:33.377 回答