我通过 PHP 脚本将字符串从 JS 传递到 MySQL 数据库,如下所示:
JavaScript:
var text = getElementById('inputBox').value; //"how are you? ()#@&^""''źćż@**$&#@(~(_(@#$)__0"
var rray = {
type = "someText";
message : addslashes(text);
}
var json = JSON.stringify(rray);
在哪里:
function addslashes(str) {
str=str.replace(/\\/g,'\\\\');
str=str.replace(/\'/g,'\\\'');
str=str.replace(/\"/g,'\\"');
str=str.replace(/\0/g,'\\0');
return str;
}
我正在向 PHP 发送 json:
var result = get_content("http://url.com/script.php?action=" + encodeURIComponent(json) );
并将 json 保存到 MySQL 数据库(PHP):
$data = mysql_escape_string($_REQUEST['data']);
$query = "INSERT INTO datas (data) VALUE ('$data')";
execute($query);
接下来我像这样从数据库中取回它:
$data = "SELECT DATA from datas WHERE ID = 1";
(...) getting from database
echo $row['DATA'];
我使用 PHP 中的 Javascript 得到它:
var result = get_content("http://url.com/script.php?get=y");
var data = jeval(result);
var action_data = jeval(stripslashes(data.action));
var message = stripslashes(action_data.message);
在哪里:
function stripslashes(str) {
str=str.replace(/\\'/g,'\'');
str=str.replace(/\\"/g,'"');
str=str.replace(/\\0/g,'\0');
str=str.replace(/\\\\/g,'\\');
return str;
}
和:
function jeval(str)
{
lastEvalString = str;
return eval('(' + str + ')');
}
并显示它:
getElementById('inputBox').value = message;
大多数普通文本都被传递到数据库并成功返回。但是在使用符号(和)或其他特殊字符时出现奇怪的错误,例如:
unexpected token: )
illegal token
script error
您能否查看代码并帮助我找出我做错了什么?我找不到它...谢谢。