尝试使用注册表单中的 PHP/Html 将数据输入 SQL 表
Posted
技术标签:
【中文标题】尝试使用注册表单中的 PHP/Html 将数据输入 SQL 表【英文标题】:Trying to input data into SQL table using PHP / Html from Registration form 【发布时间】:2015-11-03 10:07:35 【问题描述】:我尝试了很多不同的方法,并进行了多次搜索,但都没有解决方案。我正在尝试使用 html 表单将数据提交到 sql 表。
这是我的 register.php 文件的代码。
$con = mysqli_connect("localhost", "database_name", "password" "database_user");
if($con === false)
die("ERROR Could not Connect." . mysqli_connect_error());
$lasty= mysqli_real_escape_string($_POST['laz']);
$namez=mysqli_real_escape_string($_POST['namer']);
$emailAddr=mysqli_real_escape_string($_POST['emaila']);
$userName=mysqli_real_escape_string($_POST['usrn']);
$passwo=mysqli_real_escape_string($_POST['passw']);
$sqql = "INSERT INTO 'database_name' . table' (UserID, FirstName, LastName, Email, UserName, Password)
VALUES (NULL, '$namez', '$lasty', '$emailAddr', '$userName', '$passwo')";
if (mysqli_query($con, $sqql))
echo "Successfull";
else
echo "Did not work!" . $con->error;
mysqli_close($con);
我的 HTML 文件是:
<form action="register.php" method="POST">
First Name: <input type="text" name="namer" placeholder="First Name"/> <br>
Last Name: <input type='text' name='laz' /> <br>
Email Address: <input type='text' name='emaila' /> <br>
UserName: <input type='text' name='usrn' />
Password: <input type='password' name='passw' />
<input type='submit' id='button' value='Submit' name='login' />
</form>
我为这些奇怪的变量提前道歉,我担心其他文件会打断我在这里尝试做的事情。
【问题讨论】:
mysqli_connect("myhost","myuser","mypassw","mydb")
检查您的连接设置。
【参考方案1】:
mysqli_real_escape_string()需要两个参数第一个是你的connection
,另一个是你的escapestring
mysqli_real_escape_string(connection,escapestring);
所以添加$con
作为第一个参数
mysqli_real_escape_string($con,$_POST['laz']);
还要将表名中的引号括起来。使用反引号
INSERT INTO `database_name` . `table`
要检查页面中的错误,请使用
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);
并阻止您通过sql injection查询
【讨论】:
【参考方案2】:$con = mysqli_connect("localhost", "database_name", "password" "database_user"); //open connection
if (mysqli_connect_errno()) //if connection failed
die("Connect failed: ", mysqli_connect_error());
exit();
$lasty = mysqli_real_escape_string($con, $_POST['laz']); //added $con needs two parameter (connection, input)
$namez = mysqli_real_escape_string($con, $_POST['namer']);
$emailAddr = mysqli_real_escape_string($con, $_POST['emaila']);
$UserName = mysqli_real_escape_string($con, $_POST['usrn']);
$password = mysqli_real_escape_string($con, $_POST['passw']);
$sqql = "INSERT INTO `table_name`(UserID, FirstName, LastName, Email, UserName, Password)
VALUES (NULL, '$namez', '$lasty', '$emailAddr', '$userName', '$passwo')";
if (mysqli_query($con, $sqql))
echo "Row inserted";
else
die("Error: ". mysqli_sqlstate($con));
mysqli_close($con);
【讨论】:
以上是关于尝试使用注册表单中的 PHP/Html 将数据输入 SQL 表的主要内容,如果未能解决你的问题,请参考以下文章