【发布时间】:2016-01-17 05:54:13
【问题描述】:
我有一个带有一些文本输入的表单,然后我有一个 ajax 事件通过 POST 将此值发送到我的数据库 php 脚本,问题是我不知道如何从我的 ajax 事件发送特殊字符,如果字符串有 ' " \ 或类似字符,它不会将数据插入我的数据库,但如果字符串只包含数字/字母且没有特殊字符...我可以毫无问题地插入数据。
Ajax 事件
$$("#message").click(function(e) {
var nick_ = window.localStorage.getItem("username");
var message_ = $.trim(($("#msgtext").val()).replace(/(\r\n|\n|\r)/gm,""));
if (message_ .length>0 && message_ .length<=500)
$.ajax({type: "POST",
url: "insert.php",
data: ({nick: nick_, mensaje: message_ }),
cache: false,
dataType: "json",
success: function(data) {
if(data.status == 'success'){
$('input[type=text], textarea').val('');
}
}});
else myApp.alert('Min:1 Max:500','Chars:');
});
这是我的数据库脚本
<?php
//jSON
header('Access-Control-Allow-Origin: *');
header('Content-type: application/json');
//Connect to DB
include('con.php');
//POST vars
$nick=htmlspecialchars(trim($_POST['nick']));
$message=htmlspecialchars(trim($_POST['mensaje']));
$date=date("Y-m-d H:i:s");
//DB insert
$mysqli->real_query("INSERT INTO messages VALUES ('0','$nick','$message','$date')");
if ($mysqli) $response_array['status'] = 'success';
else
$response_array['status'] = 'error';
echo json_encode($response_array);
?>
【问题讨论】:
-
你是说如果你的 POST 有 `' " `,它不会把它添加到数据库中?
标签: javascript php mysql json ajax