我想在按下按钮时存储一些div内容。我需要/想要保存html标记,以便重用。
当我用任何类型的字符串替换post变量时,它都能完美地工作。我尝试从换行符中清除html变量,但它没有做到,还尝试在$var = <<<HTML 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;
?>
谢谢!
简单答案:使用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_()函数被删除时,最好在被刺痛之前立即学习。