我创建了一个HTML表单,需要将输入表单的数据直接插入到mySQL的表中。
newuser.php文件
<?php
//including the connection page
include('./DB_Connect.php');
//get an instance
$db = new Connection();
//connect to database
$db->connect();
//fetch username and password
$usertype = $_POST['userType'];
$firstname = $_POST['firstName'];
$lastname = $_POST['lastName'];
$username = $_POST['userName'];
$password = $_POST['password'];
$address1 = $_POST['add1'];
$address2 = $_POST['add2'];
//write the sql statement
$query = "INSERT INTO USERS (usertype, fname, lname, username, password, add1, add2)
VALUES ('$usertype', '$firstname', '$lastname', '$username', '$password', '$address1', '$address2')";
mysql_query($query,$db);
if (($query) == TRUE) {
echo "New record created successfully";
header("Location: login.php", true);
exit();
}
else
{
echo "Error: " . $sql . "<br>" . $conn->error;
header("Location: register.php", true);
exit();
}
//close once finished to free up resources
$db->close();
?>
使用以下html表单:
<form action="newuser.php" method="POST" class="form" id="registerForm">
<label> Type of user: </label> <br>
<input type="radio" name="userType" id="itemSeeker">Item Seeker </input>
<input type="radio" name="userType" id="itemDonor">Item Donor </input>
<input type="radio" name="userType" id="peopleSeeker">People Seeker </input>
<input type="radio" name="userType" id="peopleDonor">People Donor </input>
<br>
<br>
<div class="form-inline">
<div class="form-group">
<input type="text" name="firstName" placeholder="First Name: " align="center" class="form-control" ></input>
</div>
<div class="form-group">
<input type="text" name="lastName" placeholder="Last Name: " align="center" class="form-control" ></input>
</div>
</div>
<br>
<input type="text" name="email" placeholder="Email Address: "align="center" class="form-control" ></input>
<br>
<div class="form-inline">
<div class="form-group">
<input type="text" name="userName" placeholder="Username: " align="center" class="form-control" ></input>
</div>
<div class="form-group">
<input type="password" name="password" placeholder="Password: " align="center" class="form-control" ></input>
</div>
</div>
<br>
<!-- <label> Address 1: </label>-->
<input type="text" name="add1" placeholder="Address 1: " align="center" class="form-control" ></input>
<!-- <label> Address 2: </label>-->
<input type="text" name="add2" placeholder="Address 2: " align="center" class="form-control" ></input>
<br>
<button class="btn btn-primary" name="submitReg" type="submit">Submit</button><br>
<br>
<a href="login.php" >Already have an account?</a>
</form>
USERS表
上面两段代码和我正在使用的代码。
我的问题是,在提交表单时,数据实际上并没有输入到表中。请注意,第一次提交实际上确实有效。第一个提交后的所有提交似乎都没有在数据库中输入任何内容。
我不太确定我的代码有什么问题导致它无法正常工作。它确实发到了&#39; login.php&#39;页面,这意味着没有任何错误和查询正确提交。
有人可以告诉我我做错了什么,谢谢。
答案 0 :(得分:0)
现在你有比插入问题更多的麻烦。你的代码完全不安全。 (mysql注入)。
不要使用mysql_ *函数使用pdo代替预备语句!
在发送标题之前输出空格,如果有输出,则无法发送标题。你的重定向不会工作。不要在客户端重定向中继使用可能会禁用它,因此输出您希望用户去的链接。
另一个你的单选按钮没有值检查html语法 var_dump($ _ POST)并检查是否提交了所有内容。还要检查isset或empty befor assign variables。做某种验证。看看一些php框架,它们提供了更多的灵活性和错误检查
不要通过自己的程序方式在10年或更长时间内写下自己的方式重新发明轮子