2016-11-15 8 views
0

私はHTMLフォームから値を保存しようとしていて、JSON.stringifyを介してPHPファイルに保存/送信しています。JSON.stringifyからの値をmysqlに格納

これまでのところ、私は$ _POSTの値を受け取ることができたが、それは配列であり、このような:

["Test","Test2","Test3","Test4"] 

This is my PHP file now: 
$array = $_POST["input"]; 
$i_ment = $array[0]; 
$odd_ment = $array[1]; 
$em_ment = $array[2]; 
$mobi_ment = $array[3]; 


mysql_query("INSERT INTO team VALUES ('$i_ment', '$odd_ment', '$em_ment', '$mobi_ment')") 

しかしデシベルに来る値はこのように、矢印にまだある:

["Test","Test2","Test3","Test4"],["Test","Test2","Test3","Test4"],["Test","Test2","Test3","Test4"],["Test","Test2","Test3","Test4"] 
+0

データをjsonとして送信する場合は、最初に* decode *する必要があります。あなたのコードには 'json_decode'はありません。また、** mysql_'関数は廃止され、PHP7では削除されていますので**使用しないでください。代わりに 'mysqli_'または' pdo'を使用してください。 **あなたのクエリに直接ユーザーデータを含めないでください**あなたのコードはSQLインジェクションのために脆弱になり、代わりにパラメータ化されたクエリを使用します。 –

+0

ああ、私は馬鹿だと感じる。 PHPセキュリティとjsonに関するすべてのヘルプについての詳細な説明をありがとうございました。あなたのコメントを回答として入れることができます – T2Admin

答えて

2

JSONデータを受け取ったとき、それは単なる文字列であり、配列ではありません。

、あなたが実際にそれを使用する前に、それをデコードする必要があります。代わりに、オブジェクトの連想配列を作成するためにPHPを告げる真

$array = json_decode($_POST["input"], true); 

ノートを、。

また、mysql関数を使用しないでください。これは廃止され、PHP7では削除されました。あなたのコードはSQLインジェクションに対して脆弱です。

mysqli_およびPDOは、この種の攻撃からユーザーを保護するためのパラメータ化されたクエリを提供します。

関連する問題