[英]Insert MYSQL PHP into database
我正在嘗試向我的數據庫中插入一些數據,但它只會插入一個唯一的 ID 和用戶 ID。 其余的屬性不會跟隨。 有什么建議?
<?php
if(isset($_POST['project']))
{
// Escape user inputs for security
$stripped = mysql_real_escape_string($_GET['id']);
$title = mysqli_real_escape_string($_POST['title']);
$about = mysqli_real_escape_string($_POST['about']);
$code = mysqli_real_escape_string($_POST['code']);
mysql_query("INSERT INTO cms_prosjekt (userid, title, about, code) VALUES
('".$_SESSION['user']['id']."', '".$title."', '".$about."', '".$code."')") or die(mysql_error());
}
?>
HTML
<form action="" method="post">
<input type="text" class="form-control" type="text" name="title" id="title" placeholder="Fullt navn" style="margin-bottom:10px">
<input type="text" class="form-control" type="text" name="about" id="about" placeholder="Kode bedrift" style="margin-bottom:10px">
<input type="text" class="form-control" type="text" name="code" id="code" placeholder="Passord" style="margin-bottom:10px">
<button type="submit" name="project" class="button" class="btn btn-success" style="margin-bottom:10px;">Register prosjekt nå</button>
</form>
您需要提供 $link 參數,這是您正確轉義您的值的連接。
mysqli_real_escape_string ( mysqli $link , string $escapestr )
看到您的代碼並且它只輸入一個值,這告訴我您正在使用mysql_
API 來連接,並且您將它們與mysqli_real_escape_string()
混合,並且需要一個數據庫連接作為第一個參數。
由於$stripped = mysql_real_escape_string($_GET['id']);
看到您的屏幕截圖后,所有內容都已輸入到數據庫中。
這些不同的 API 不會混合使用。 從連接到查詢,您需要使用相同的方法。
mysql_*
- mysql_real_escape_string()
。我建議您立即開始使用准備好的語句。
注意:使用mysql_real_escape_string()
並不能完全防止 SQL 注入。 閱讀有關該主題的以下問答;
腳注:
MySQL_ API 已從 PHP 7.0 中刪除。 如果您的服務器最終升級到它,您將無法再使用現有代碼。
是時候切換到使用 MySQLi_ 或 PDO API 並使用准備好的語句了。
參考:
您還應該檢查任何空字段。 isset()
您的提交按鈕使用isset()
是不夠的。
如果您的網站已上線或即將上線,則有人可能會輸入空值並可能觸發錯誤或在您的數據庫中插入空值,我相信您不會對此表示贊賞。
參考:
你已經使用了 mysqli 和 mysql 它應該是他們中的任何一個。
if (isset($_POST['project'])) {
$stripped = mysql_real_escape_string($_GET['id']);
$title = mysql_real_escape_string($_POST['title']);
$about = mysql_real_escape_string($_POST['about']);
$code = mysql_real_escape_string($_POST['code']);
mysql_query("INSERT INTO cms_prosjekt (userid, title, about, code) VALUES ('" . $_SESSION['user']['id'] . "', '" . $title . "', '" . $about . "', '" . $code . "')") or die(mysql_error());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.