PHP文件自动将空白输入保存在我的数据库中


PHP File automatically saves blank inputs in my Database

Good Day,每次刷新php文件时,成功的警报总是会出现,甚至在按下提交按钮之前,因此在我的数据库中显示空数据。

我需要帮助,因为没有显示任何警告或错误。提前感谢您的帮助。

PHP:

session_start(
);
    require 'Connect.php';
if(empty($_POST['FirstName']))
    $FirstName = '';
else
    $FirstName = ($_POST['FirstName']);
if(empty($_POST['LastName']))
    $LastName = '';
else
    $LastName = ($_POST['LastName']);
if(empty($_POST['Gender']))
    $Gender = '';
else
    $Gender = ($_POST['Gender']);
if(empty($_POST['UserName']))
    $UserName = '';
else
    $UserName = ($_POST['UserName']);
if(empty($_POST['Password']))
    $Password = '';
else
    $Password = ($_POST['Password']);
if(empty($_POST['reEnterPassword']))
    $reEnterPassword = '';
else
    $reEnterPassword = ($_POST['reEnterPassword']);
if(empty($_POST['EmailAdd']))
    $EmailAdd = '';
else
    $EmailAdd = ($_POST['EmailAdd']);
if(empty($_POST['reEnterEmailAdd']))
    $reEnterEmailAdd = '';
else
    $reEnterEmailAdd = ($_POST['reEnterEmailAdd']);
    $sql = " INSERT INTO User(FirstName, LastName, UserName, Password, reEnterPassword, EmailAdd, reEnterEmailAdd)
             VALUES ('$FirstName', '$LastName', '$UserName', '$Password', '$reEnterPassword', '$EmailAdd', '$reEnterEmailAdd'); ";
    $result = mysql_query($sql);
        if (!$result){
          die('Invalid Input: ' . mysql_error().$sql);
        }  
        else{
          echo "<script> alert('Successfully Added'); </script> ";
        }
?>

这是因为您在数据库中插入了空变量。
$FirstName = (isset($_POST['FirstName'])&&$_POST['FirstName']!='')?$_POST['FirstName']:die("required");

对每个变量执行此操作。然后执行查询。它不会添加空数据。

正如@Machavity所说,为了防止SQL injection。看看这个:

http://php.net/manual/en/ref.pdo-mysql.php

绑定变量,而不是直接将其插入查询中。