【发布时间】:2016-08-04 11:40:37
【问题描述】:
我正在尝试将表单中提交的数据插入到 MySQL 数据库中,但在我的代码中看不到问题(除了 MySQL 注入,我将在实际能够插入任何数据后解决该问题)。我在 Stack Overflow 中进行了搜索,发现有人可能使用相同的手册,但我在 localhost 中工作,他在 GoDaddy 上。 The solution given there 不适合我。
这是我的 HTML 代码和 PHP 代码:
<?php
require'connection/connect.php';
?>
<?php
if(isset($_POST['Register'])){
session_start();
$Fname = $_POST['FirstName'];
$Lname = $_POST['LastName'];
$Email = $_POST['Email'];
$pw = $_POST['Password'];
$sql= $con->query("INSERT INTO user (Fname,Lname,Email,Password) values('{$Fname}', '{$Lname}', '{$Email}', '{$pw}')");
}
?>
<!DOCTYPE html >
<html>
<head>
<link href="css/Master.css" rel="stylesheet" type="text/css" />
<link href="css/Menu.css" rel="stylesheet" type="text/css" />
<title>Register</title>
</head>
<body>
<div class="container">
<div class="header">
</div>
<div class="menu">
<div id="NavBar">
<nav>
<ul>
<li>
<a href="Login.php">Login</a>
</li>
<li>
<a href="Register.php">Register</a>
</li>
</ul>
</nav>
</div>
</div>
<div class="leftBody"></div>
<div class="rightBody">
<form action="" method="post" name="RegisterForm" id="RegisterForm">
<div class="FormElement">
<input name="FirstName" id="FirstName" type="text" placeholder="First Name" class="TField">
</div><br>
<div class="FormElement">
<input name="LastName" id="LastName" type="text" placeholder="Last Name" class="TField">
</div><br>
<div class="FormElement">
<input name="Email" id="Email" type="email" placeholder="E-Mail" class="TField">
</div><br>
<div class="FormElement">
<input name="Password" id="Password" type="password" placeholder="Password" class="TField">
</div><br>
<input name="Register" id="Register" type="button" value="Register" class="regButton">
</form>
</div>
<div class="footer"></div>
</div>
</body>
</html>
这是我的 connection.php 文件: 它确实表明它已连接。
<?php
$host="localhost";
$username="root";
$password="";
$dataBase="users";
$con=mysqli_connect($host,$username,$password,$dataBase);
if (!$con) {
die("Could not connect: " . mysqli_error());
}
echo "Connected successfully";
?>
还有一张我在 phpMyAdmin 中的数据库图片: Database
出于某种原因,我也尝试过像这样使用这条线,但无济于事。:
$sql= $con->query("INSERT INTO user
(Fname,Lname,Email,Password)
values ('Fname', 'Lname', 'Email', 'pw')");
【问题讨论】:
-
('Fname', 'Lname', 'Email', 'pw')您正在尝试将这些值作为字符串而不是 POST 数组/变量输入。猜猜你在这里错过了什么?线索:想想“钱”;-) -
通过 PHP 和 MySQL 检查错误;你没有这样做。
-
@GordonM 不好的做法是的,但它们可以一起工作。
-
“找到了一个可能使用相同手册的人,但我在 localhost 中工作,他在 GoDaddy 上” - 这闻起来就像您以
file:///file.xxx访问而不是比http://localhost/file.xxx. -
@GrowingDev 好的,我看到了您的提交按钮,应该是
submit类型,而不是button,Sanjiv Dhakal 的回答对此有所了解,但我忽略了它。那应该可以。