![](/img/trans.png)
[英]How to parse the information from mysql database to html page using php
[英]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
}
檢查您的屬性名稱以您的形式: Address
, Address2
, Address2
Address3
具有大寫Address3
A。 別忘了在每個$ _POST歸因中也包括分號...
但是請確保將整個腳本代碼包含在此IF語句中,因為只有在設置了 $_POST
下,它們才需要執行。
注意如果聲明中有多余的中號,則請同樣刪除
我也注意到您錯過了SQL語句中的一些單引號。 但是首先,我想警告您:
“考慮將mysqli
與預備語句一起使用,或將PDO與預備語句一起使用 , 它們會更安全 。”
$query = "INSERT INTO card VALUES ('$card','$cardnumber', '$expiry', '$securitycode', '$name', '$address', '$address2', '$address3', '$twon' )";
希望對您有幫助。
您不會檢測到表單已提交。 您需要在“提交”按鈕中添加名稱:
更改
<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個錯誤:
當你寫
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"])
第二個錯誤是PHP代碼中if語句的末尾還有多余的分號?
$town = $_POST['town'];;}
這里也缺少分號
$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.