簡體   English   中英

如何使用php將信息從html表單發布到數據庫

[英]How to post information from an html form to a database using php

我想使用php從html插入信息,然后使用phpmyadmin將其添加到數據庫中。 我有許多選擇框和文本框,我正在使用插入查詢,但無法使其正常工作。

這是我的代碼

來自

 <!DOCTYPE html> <!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]--> <!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]--> <!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]--> <!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]--> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>Payment</title> <meta name="description" content=""> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body> <form method="POST" action="paymentback.php"> Card Type <br> <br> <select name="card"required> <option value="visa">Visa</option> <option value="mastercar">MasterCard</option> <option value="visadebit">Visa Debit</option> <option value="maestro">Masestro</option> </select> <br> <br> Card Number <br> <input type="text" name="cardnumber"required> <br> <br> Expiry Date <br> <br> <select name="expiry" required> <option value="01">01</option> <option value="02">02</option> <option value="03">03</option> <option value="04">04</option> <option value="05">05</option> <option value="06">06</option> <option value="07">07</option> <option value="08">08</option> <option value="09">09</option> <option value="10">10</option> <option value="11">11</option> <option value="12">12</option> </select> <select name="expiry"required> <option value="2015">2015</option> <option value="2016">2016</option> <option value="2017">2017</option> <option value="2018">2018</option> <option value="2019">2019</option> <option value="2020">2020</option> <option value="2021">2021</option> <option value="2022">2022</option> </select> <br> <br> Card Security Code <br> <input type="text" name="securitycode" required> <br> Cardholder's Name <br> <input type="text" name="name"required> <br> Address line 1 <br> <input type="text" name="Address1"required> <br> Address line 2 <br> <input type="text" name="Address2"> <br> Address line 3 <br> <input type="text" name="Address3"> <br> Town/City <br> <input type="text" name="town"required> <br> <br> <input type="submit"> </form> </body> </html> 

這是后端PHP代碼

 <?php if($_POST["submit"]) { $card = $_POST['card']; $cardnumber = $_POST['cardnumber']; $expiry = $_POST['expiry'] $securitycode = $_POST['securitycode']; $name = $_POST['name']; $address = $_POST['address']; $address2 = $_POST['address2']; $address3 = $_POST['address3']; $town = $_POST['town']; ;} $query = "INSERT INTO card VALUES ('$card',$cardnumber, $expiry, $securitycode, '$name', '$address', '$address2', '$address3', '$twon' )"; /*query to insert the new values into the database*/ if (!mysqli_query($con,$query)) { die('Error: ' . mysqli_error($con)); } echo "<script type='text/javascript'>alert('1 record added')</script>"; /*Displays a messgae to tell the user thatone record has been added to the database*/ mysqli_close($con); } ?> 

這是php_error_log中的錯誤:

[2015年3月17日15:34:52歐洲/柏林] PHP解析錯誤:語法錯誤,/Applications/MAMP/htdocs/paymentback.php中第5行出現意外的'{'

[2015年3月17日15:35:47歐洲/柏林]不推薦使用PHP:mysql_connect():不推薦使用mysql擴展,以后將其刪除:在/ Applications / MAMP / htdocs / myconnect中使用mysqli或PDO代替。第7行的php

[17-Mar-2015 15:39:56歐洲/柏林] PHP解析錯誤:語法錯誤,/Applications/MAMP/htdocs/paymentback.php中第6行出現意外的'$ card'(T_VARIABLE)

[2015年3月17日19:38:42歐洲/柏林] PHP解析錯誤:語法錯誤,/Applications/MAMP/htdocs/paymentback.php中第38行的文件意外結束

檢查您的HTML表單,您需要為“提交”按鈕添加屬性name

<input type="submit" name="submit">

提交按鈕后...您需要為$_POST['submit']使用isset()empty()函數,如下所示:

if(isset($_POST["submit"]))
{
    $card = $_POST['card'];
    $cardnumber = $_POST['cardnumber'];
    $expiry = $_POST['expiry'];
    $securitycode = $_POST['securitycode'];
    $name = $_POST['name'];
    $address = $_POST['Address1'];
    $address2 = $_POST['Address2'];
    $address3 = $_POST['Address3'];
    $town = $_POST['town'];

    // The rest of your code including SQL Statements

}

檢查您的屬性名稱以您的形式: AddressAddress2Address2 Address3具有大寫Address3 A。 別忘了在每個$ _POST歸因中也包括分號...

但是請確保將整個腳本代碼包含在此IF語句中,因為只有在設置了 $_POST下,它們才需要執行。

注意如果聲明中有多余的中號,則請同樣刪除

我也注意到您錯過了SQL語句中的一些單引號。 但是首先,我想警告您:

希望對您有幫助。

您不會檢測到表單已提交。 您需要在“提交”按鈕中添加名稱:

更改

<input type="submit">

<input type="submit" name="submit">

而且因為提交在這里沒有價值,所以更改

if($_POST["submit"])

if(isset($_POST["submit"]))

否則,您的陳述將被評估為false。

另外,您有兩個具有相同名稱“ expiry”的選擇元素-必須區分以獲取年份和月份。

順便說一句,使用mysqli_real_escape_string清理輸入。

<input type="submit">

Submit元素需要一個名稱。

<input type="submit" name="submit">

您犯了3個錯誤:

  1. 當你寫

     if($_POST["submit"]) 

那么,您在引號中寫的字意味着它是某物的名稱。 在這種情況下,您要告訴PHP代碼“ submit”是某物的名稱,但是由於沒有將此名稱賦予任何東西,所以出現了問題。

通過此PHP代碼,您想要定位:

<input type="submit">

但這是錯誤的,因為它沒有任何名稱。 因此,您應該寫:

<input type="submit" name="Your Desired Name">

然后,您的PHP代碼將變為:

if($_POST["Your given name to input Button"])
  1. 第二個錯誤是PHP代碼中if語句的末尾還有多余的分號?

     $town = $_POST['town'];;} 
  2. 這里也缺少分號

    $expiry = $_POST['expiry']

一條建議:

在此PHP代碼中

if (!mysqli_query($con,$query))
{
    die('Error: ' . mysqli_error($con));
}
echo "<script type='text/javascript'>alert('1 record added')</script>"; /*Displays a messgae to tell the user thatone record has been added to the database*/

您也應該寫else語句。 由於如果將代碼放入if語句中,那么將運行die查詢可能不會產生太大影響,但是,使用else語句是一種良好的編程習慣。

您已經用大寫字母輸入了輸入名稱,並在$ _POST ['']中將其取小了; 更正php或html中的每個位置,然后嘗試

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM