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;
}

そして、私は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。

4

0 に答える 0