尝试使用注册表单中的 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 表的主要内容,如果未能解决你的问题,请参考以下文章

使用 bodyParser 和 Router() 无法检索表单输入

PHP将输入值发送到没有输入名称的表单

PHP/HTML:输入后保存表单数据

插入未发送到 MySQL 服务器的 PHP 表单数据

PHP, Html5, xampp

41.登录注册小案例实现(使用Django中的form表单来进行用户输入数据的校验;文末附源码)