2017-02-21 18 views
0

予期せぬ「;」が続く。私は問題が何であるか把握できません。誰かが何か提案があれば、私はそれを非常に感謝します。SQLデータベースにフォームデータを書き込む

send_post.php

<?php 
//Create connect 
$connect = mysqli_connect("localhost","tasks","tasks15!","tasks"); 
//Sending form data to sql db. 
mysqli_query ($connect,"INSERT INTO tasks (CompanyName, ContactName, Address1, Address2, City, State, Zip, Phone1, Phone2, Fax1) 
VALUES ('$_POST[tasks_CompanyName]', '$_POST[tasks_ContactName]',  '$_POST[tasks_Address1]', '$_POST[tasks_Address2]' ,'$_POST[tasks_City]','$_POST[tasks_State],'$_POST[tasks_Zip]', '$_POST[tasks_Phone1]','$_POST[tasks_Phone2]','$_POST[tasks_Fax1]');" 

?> 

index.htmlを

<form action="send_post.php" method="post"> 
<h1>Customer Information</h1> 

<h3>Company Name</h3> <input type="text" name="tasks_CompanyName"> <br> 
<h2>Customer Name</h2><h3>First Name</h3> <input type="text" name="tasks_fname"><br> 
<h3> Last Name</h3><input type="text" name="tasks_lname"><br> 
<h3> Address 1 </h3> <input type="text" name="tasks_Address1"><br> 

<h3> Address 2</h3> <input type="text" name="tasks_Address2"><br> 

<h3>City</h3><input type="text" name="tasks_City"><br> 

<h3>State</h3> <input type="text" name="tasks_State"><br> 

<h3>Zip</h3> <input type="text" name="tasks_Zip"><br> 

<h3>Phone 1</h3><input type="text" name="tasks_Phone1"><br> 

<h3>Phone 2</h3> <input type="text" name="tasks_Phone2"><br> 

<h3>Fax 1</h3>  <input type="text" name="tasks_Fax1"><br> 


<input type="submit"> 
</form> 
+1

'$ _POST [tasks_Fax1]'); "to '$ _POST [tasks_Fax1]');"); –

答えて

1
mysqli_query ($connect,"INSERT INTO tasks (CompanyName, ContactName, Address1, Address2, City, State, Zip, Phone1, Phone2, Fax1) 
VALUES ('$_POST[tasks_CompanyName]', '$_POST[tasks_ContactName]',  '$_POST[tasks_Address1]', '$_POST[tasks_Address2]' ,'$_POST[tasks_City]','$_POST[tasks_State],'$_POST[tasks_Zip]', '$_POST[tasks_Phone1]','$_POST[tasks_Phone2]','$_POST[tasks_Fax1]');" 

この行のいくつかのエラーがあります。 $_POSTは配列なので、$_POST[tasks_Address1]ではなく$_POST["tasks_Address1"]など、キーの名前を使用して値にアクセスする必要があります。

また、最後に引用符の内側にセミコロン('$_POST[tasks_Fax1]');")があります。あなたはこのセミコロンを外側に入れたいと思うでしょう:'$_POST[tasks_Fax1]')";

SQLは潜在的にSQLインジェクションの対象となります。コードを悪意のある入力から安全にする方法については、How can I prevent SQL injection in PHPなどのリソースをお読みください。

+0

私は最後にセミコロンが(SQLステートメントを終了するので)残ることができると思うが、addidionalセミコロンは、PHPステートメントを終了する行の最後に置く必要があります – flynorc

+0

あなたは正しいです。 SQLステートメントの最後に1つを入れることはできますが、必須ではありません – CynePhoba12

0

");"あなたのmysqli_query行の最後には行方不明です。

send_post.php:5

<?php 
mysqli_query ($connect,"INSERT INTO tasks 
    (CompanyName, ContactName, Address1, 
    Address2, City, State, Zip, Phone1, 
    Phone2, Fax1) 
VALUES 
    ('$_POST[tasks_CompanyName]', '$_POST[tasks_ContactName]', 
    '$_POST[tasks_Address1]', '$_POST[tasks_Address2]', 
    '$_POST[tasks_City]',  '$_POST[tasks_State], 
    '$_POST[tasks_Zip]',  '$_POST[tasks_Phone1]', 
    '$_POST[tasks_Phone2]', '$_POST[tasks_Fax1]' 
);"); 
?> 

注それはXSSやSQLインジェクションハッキングにつながる可能性として、W/O検証POSTデータを記録するのは危険だということ。

関連する問題