[英]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.