嘿,过去几天我一直在努力让这段代码运行。我不知道是什么问题。每当我运行代码时,我都能看到它在运行,但插入了一个空行。基本上,我尝试对数据进行硬编码,然后插入数据。这是 HTML 表单:
<form action="register.php" id="contactForm" type="post">
<div class="row">
<div class="form-group">
<div class="col-md-6">
<label>First name *</label>
<input type="text" class="form-control" name="fname" >
</div>
<div class="col-md-6">
<label>Last name *</label>
<input type="text" class="form-control" name="lname" >
</div>
</div>
</div>
<div class="row">
<div class="form-group">
<div class="col-md-6">
<label>Gender *</label><br>
<select name="gender">
<option> Male </option>
<option> Female </option>
</select>
</div>
<div class="col-md-6">
<label>Stream *</label><br>
<select name="stream">
<option> B-Tech </option>
<option> M-Tech </option>
</select>
</div>
</div>
</div>
<div class="row">
<div class="form-group">
<div class="col-md-6">
<label>Email *</label>
<input type="text" class="form-control" name="email" >
</div>
<div class="col-md-6">
<label>Mobile *</label>
<input type="text" class="form-control" name="mobile">
</div>
</div>
</div>
<div class="row">
<div class="form-group">
<div class="col-md-6">
<label>College *</label>
<input type="text" class="form-control" name="college" >
</div>
<div class="col-md-6">
<label>Job Kind *</label>
<input type="text" class="form-control" name="job" >
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
    
<input type="submit" value="Register" class="btn btn-primary btn-lg"
data-loading-text="Loading..." name="submit">
</div>
</div>
</form>
这是registration.php
<?php
$connection = mysql_connect("EDITED by billy, was an I.P and port number", "user", "password"); // Establishing Connection with Server
$db = mysql_select_db("Registrations_connect", $connection); // Selecting Database from Server
$first_name = $_POST["fname"];
$last_name = $_POST["lname"];
$sex = $_POST["gender"];
$field = $_POST["stream"];
$contact = $_POST["mobile"];
$eaddress = $_POST["email"];
$institute = $_POST["college"];
$naukri = $_POST["job"];
$query = mysql_query("insert into students(fname, lname, gender, stream, mobile, email, college, job)
values ('$name', '$last_name', '$sex', '$field','$contact', '$eaddress', '$intitute', '$naukri')");
echo "<br/><br/><span>Data Inserted successfully...!!</span>";
mysql_close($connection); // Closing Connection with Server
?>
运行后;在检查元素中,我检查了响应:- 它显示数据已成功插入,但实际上插入了一个空行。基本上我认为我无法正确地从表单中正确获取数据。有人可以请检查是什么问题。这将是一个很大的帮助。
最佳答案
属性是method
,不是type
。此拼写错误导致您的表单处理 GET
而不是 POST
。所以你所有的变量赋值都是错误的。
$first_name = $_POST["fname"];
会是
$first_name = $_GET["fname"];
或者你可以使用$_REQUEST
;或者您可以只更正属性,
<form action="register.php" id="contactForm" method="post">
您的代码对 SQL 注入(inject)也很开放,并且正在使用已弃用的 mysql_
函数。您应该更新到 mysqli
或 pdo
并使用带有参数化查询的准备好的语句。
有关 SQL 注入(inject)的更多信息:
http://php.net/manual/en/security.database.sql-injection.php
How can I prevent SQL injection in PHP?
https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet#Defense_Option_1:_Prepared_Statements_.28Parameterized_Queries.29
关于php - 一个空行被插入到数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34234467/