所以如標題所述,我試圖使用從指向此頁面的頁面給出的查詢變量以及來自THIS頁面的表單數據來操縱數據庫。我似乎無法正確理解,並且我不知道我做錯了什麼。代碼片段看起來是這樣的:嘗試使用查詢變量和表單數據來更改數據庫中的表格
<?php
$ware_number = $_GET['id'];
Echo "<form action='usernamecheck.php' method='post'>";
Echo 'Username:<br>';
Echo '<input type="text" name="usernamecheck" size="14"><br>';
Echo 'Password:<br>';
Echo '<input type="password" name="passwordcheck" size="14"><br>';
Echo '<input type="submit" value="Send">';
Echo '</form>';
if (isset($_POST['usernamecheck'])) {
$sql2 = "SELECT * FROM `storedata`.`users` WHERE `username` LIKE '$_POST[usernamecheck]'";
$found_user_id = mysql_query($sql2, $conn);
print $found_user_id;
}
if (isset($_POST['usernamecheck'])) {
$sql3 = "INSERT INTO `storedata`.`basket` (user_id, ware_id, number, complete)
VALUES
('$found_user_id', '$ware_number', 1, 0)";
$derp = mysql_query($sql3, $conn);
print $derp;
}
?>
文件本身是usernamecheck.php,而我只是打印嘗試和查找錯誤。當我檢查籃子表時什麼都沒有發生,即使沒有顯示錯誤。現在變量$ ware_number導致錯誤。我究竟做錯了什麼?
我還在storedata.basket表中創建了user_id和ware_id外鍵,因爲它們是各自表中的主鍵。這意味着它們只能是特定的值,但我使用這些值進行測試,主要是1和0 ...
你在哪裏$ ware_number設置什麼嗎?如果您發佈該表單,則不會設置$ _GET ['id']。你也有很大的SQL注入漏洞,你直接在SQL查詢中使用用戶提供的數據,而沒有任何企圖逃避它 – Anigel
是的,我知道這是相當脆弱的編碼,但它不適合在線使用,更多用於學習如何使用語言等 – Abeneezer
如果是作爲一種學習練習,我會建議最好學習如何安全和正確地使用它,而不是學習不良習慣,並希望以後忘掉它們。 – Anigel