次のように、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。