【发布时间】:2014-09-23 14:30:48
【问题描述】:
我目前正在制作一个允许将记录添加到 phpmyadmin 数据库的 PHP 提交表单。我已经创建了这段代码,并且整晚都在试图找出它有什么问题
当我在表单中输入字段的名称(用于虚拟数据)时,我得到了这个:
您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 靠近“密码”、“名字”、“姓氏”、“地址”、“电子邮件”、“卡” Number', 'CCV' )' 在第 1 行
<!DOCTYPE html>
<html>
<head><title>Insert Users</title></head>
<body>
<h2>Insert User Confirmation</h2>
<form action="<?php $_SERVER['PHP_SELF']?>" method="post"/> <br>
<?php
require_once('connection.php');
echo "<label for='memberID' >Member ID:</label>";
echo "<input type='text' name='memberID' id='memberID' />";
echo "<br /><br />";
echo "<label for='username' >Username:</label>";
echo "<input type='text' name='username' id='username' />";
echo "<br /><br />";
echo "<label for='password' >Password:</label>";
echo "<input type='password' name='password' id='password' />";
echo "<br /><br />";
echo "<label for='fName' >Firstname:</label>";
echo "<input type='text' name='fName' id='fName' />";
echo "<br /><br />";
echo "<label for='lName' >Lastname:</label>";
echo "<input type='text' name='lName' id='lName' />";
echo "<br /><br />";
echo "<label for='address' >Address:</label>";
echo "<input type='text' name='address' id='address' />";
echo "<br /><br />";
echo "<label for='email' >Email:</label>";
echo "<input type='text' name='email' id='email' />";
echo "<br /><br />";
echo "<label for='cardnumber' >Card Number:</label>";
echo "<input type='text' name='cardnumber' id='cardnumber' />";
echo "<br /><br />";
echo "<label for='ccv' >CCV:</label>";
echo "<input type='text' name='ccv' id='ccv' />";
echo "<br /><br />";
echo "<input type='submit' name='submit' value='Submit' />";
echo "<input type='reset' value='Clear' />";
echo "<br /><br />";
?>
</form>
<?php
if(!isset($_POST['submit'])) {
echo 'Please Register';
}
else {
$memberID = $_POST['memberID'];
$username = $_POST['username'];
$password = $_POST['password'];
$fName = $_POST['fName'];
$lName = $_POST['lName'];
$address = $_POST['address'];
$email = $_POST['email'];
$cardnumber = $_POST['cardnumber'];
$ccv = $_POST['ccv'];
$query = "INSERT INTO `members` (MemberID, Username, Password, FirstName, LastName, StreetAddress, Email, CardNumber, CCV) VALUES ('$memberID', '$username, '$password', '$fName', '$lName', '$address', '$email', '$cardnumber', '$ccv' )";
mysqli_query($connection, $query)
or die(mysqli_error($connection));
$rc = mysqli_affected_rows($connection);
if ($rc==1)
{
echo '<h4>The database has been updated with the following details: </h4> ';
echo 'MemberID: '.$memberID.'<br />';
echo 'Username: '.$username.'<br />';
echo 'Password: '.$password.'<br />';
echo 'First Name: '.$firstname.'<br />';
echo 'Last Name: '.$lastname.'<br />';
echo 'Address: '.$address.'<br />';
echo 'Email: '.$email.'<br />';
echo 'Card Number: '.$cardnumber.'<br />';
echo 'CCV: '.$ccv.'<br />';
}
else
{
echo '<p>The data was not entered into the database this time.</p>';
}
}
?>
</body>
</html>
【问题讨论】:
-
亲爱的上帝,不要不要存储抄送数据...
-
使您的查询多行以更好地查看哪个部分有问题
-
如果您确实存储了信用卡号码,则必须遵循 PCI 准则。这些准则由支付卡行业制定,定义了您可以做什么和不可以做什么。
-
PCI Compliance 这么多
-
如果他们在大学里教你这些鲁莽的习惯,他们应该被禁止教任何与信用卡处理有关的东西。想象一下,如果医学院是这样的草率。 “手术前要洗手吗?不,只要在裤子上擦手就行了。”你想知道gigantic hacks 是怎么发生的吗?它以此开头。