1

我通过 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

您能否查看代码并帮助我找出我做错了什么?我找不到它...谢谢。

4

0 回答 0