$ _postを使用してinsert.phpページにアクセスするフォームがあります。私がしますprint_r質問が挿入されていない列を挿入する
Array (
[extension] => Array (
[0] => 100
[1] => 101
[2] => 102
)
[secret] => Array (
[0] => a467ca4044f298eff15a26e59f39fe21
[1] => 0c4275de171ef363b77aa6aae27afff1
[2] => c1951bfb07ed6a833d6d785ff4e19123
)
[phone] => Array (
[0] => 80828703658A
[1] => 80828703D858
[2] => 80828703F866
)
[template] => Array (
[0] => Another 600 Template
[1] => Another 600 Template
[2] => Another 600 Template
)
)
insert.phpページのみを拡張し、秘密のデータを挿入を行う際に$ _POST情報は、次のようになります。電話機やテンプレートのデータではありません。電話機とテンプレートのデータは、元の形式のドロップダウンボックスによって配列に格納されます。ここに私が使用しているコードがあります
// Escape user inputs for security
$ext = mysqli_real_escape_string($link, $_POST['extension']);
$secret = mysqli_real_escape_string($link, $_POST['secret']);
$macaddress = mysqli_real_escape_string($link, $_POST['phone']);
$templatename = mysqli_real_escape_string($link, $_POST['template']);
// attempt insert query execution
$sql = "INSERT INTO assignments
(id, extension, secret, macaddress, template)
VALUES (null,'$ext', '$secret', '$macaddress', '$templatename')";
if(mysqli_query($link, $sql)){
echo "Records added successfully.";
} else{
echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
// close connection
mysqli_close($link);
?>
どこが間違っていますか? おかげ
あなたのスクリプトは、[SQLインジェクション攻撃](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)の危険にさらされている はを見てください[Little Bobby Tables](http://bobby-tables.com/)にも何が起こったのですか?Even [あなたが入力をエスケープしている場合、それは安全ではありません!](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string) [準備されたパラメータ付きステートメント](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) – RiggsFolly