我通过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;
}
我发送json到PHP:
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
你能看一下代码并帮我找到我做错的事吗? 我找不到它了... THX。