簡體   English   中英

Mysql不斷輸入空白字段,有人可以幫助我解決此問題嗎?

[英]Mysql keeps entering blank fields, can anyone help me fix this?

我正在嘗試學習php和mysql,並且運行良好,但是我試圖使用$ _POST方法從另一頁向數據庫中插入內容,當我檢查數據庫以查看其是否起作用時,它會創建另一行但沒有信息。

第一頁

<html>
<body>

    <form action="InsertExternal.php" method=post>
        First Name: <input type="text" name="firstname" />
        Last Name: <input type="text" name="lastname" />
        Age: <input type="text" name="age" />
        <input type="submit" />
    </form>

</body>

第二頁

<?php
$con = mysql_connect("localhost","root","root");
    if (!$con)
        {
            die('Could not connect: ' . mysql_error());
        }

mysql_select_db("Learning", $con);

$sql="INSERT INTO Persons (FirstName, LastName, Age)
    VALUES
        ('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";

if (!mysql_query($sql,$con))
    {
        die('Error: ' . mysql_error());
    }
    echo "1 record added";

mysql_close($con)
?>

謝謝你的幫助。 我想象它缺少一些簡單的東西。

確保您沒有直接聯系此頁面。 在這種情況下,在進行實際插入之前,請檢查字段中是否有值:

     if(isset($_POST['firstname']) && isset($_POST['lastname']) && ..

第二件事,在插入數據庫之前,您必須清理輸入內容:使用:

        $firstname = mysql_real_esacpe_string($_POST['firstname']);

您還可以在語句中使用或with:

      mysql_query($q)
             or die(mysql_error());

您從不檢查表單是否在第二頁上提交,什么也沒有“巨大”,但可能只是刷新發生並且有空數據輸入。第二,您應該真正更改插入部分,因此您不必從不用單引號引起來的索引索引$_POST數組周圍,得到大量的“未定義的常量通知”。

<?php
    if (empty($_POST['age'])) {
        echo "Sorry, you appear to have omitted a few items. Try again!";
        exit;
    }

$con = mysql_connect("localhost","root","root");
    if (!$con)
        {
            die('Could not connect: ' . mysql_error());
        }

mysql_select_db("Learning", $con);

$sql="INSERT INTO Persons (FirstName, LastName, Age)
    VALUES
        ('{$_POST['firstname']}','{$_POST['lastname']}','{$_POST['age']}')";

if (!mysql_query($sql,$con))
    {
        die('Error: ' . mysql_error());
    }
    echo "1 record added";

mysql_close($con)
?>

對於SQL注入,還有一個明顯的擔憂,如果您打算真正想要使用MySQL,那么您應該閱讀並學習防止它的適當方法。

<?php
$con = mysql_connect("localhost","root","root");
    if (!$con)
        {
            die('Could not connect: ' . mysql_error());
        }

mysql_select_db("Learning", $con);

$sql="INSERT INTO Persons (FirstName, LastName, Age)
    VALUES
        ('" . $_POST["firstname"] . "','" . $_POST["lastname"] . "','" . $_POST["age"] . "')";

if (!mysql_query($sql,$con))
    {
        die('Error: ' . mysql_error());
    }
    echo "1 record added";

mysql_close($con)
?>

沒有正確引用全局變量

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM