[英]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.