我已經檢查並重新檢查了我的代碼,以瞭解我正在執行的教程,但我仍然無法弄清楚它有什麼問題。一些幫助將不勝感激。php和mysql代碼
我正在構建一個處理來自另一頁面的表單數據的頁面。下面是我遇到麻煩的部分標記。
<pre>
if (isset($_POST['submit'])) {
// Process the form
$subject_id = $_GET["subject"];
$pageName = $_POST["pageName"];
$pagePosition = $_POST["pagePosition"];
$pageVisible = $_POST["pageVisible"];
$pageContent = $_POST["pageContent"];
if (!empty($errors)) {
$_SESSION["errors"] = $errors;
redirect_to("new_page.php");
}
$query = "INSERT INTO pages (subject_id, menu_name, position, visible, content) VALUES ('{$subject_id}' , {$pageName}, {$pagePosition} ,{$pageVisible} ,{$pageContent})";
$result = mysqli_query($connection, $query);
if ($result) {
// Success
$_SESSION["message"] = "Page created.";
redirect_to("manage_content.php");
} else {
// Failure
$_SESSION["message"] = "Page creation failed.";
redirect_to("new_page.php?subject={$subject_id}");
}
</pre>
我已經簽出了提交到表單處理頁面並提交表單正確提交的頁面。我也檢查了我引用的所有外部函數,並且它們都工作。另外,使用$ _GET超全局的第一個變量工作得很好。問題是查詢以某種方式無法拉入4 $ _POST變量。如果我用硬代碼值替換所有變量值,查詢就會正常進行,並在我的表中創建一個新行。 任何與此有關的幫助將不勝感激,因爲我已經多次檢查並重新檢查了這一點,我確信我錯過了一些非常小的東西,但這讓我發瘋。 謝謝。
如果您已經在使用MySQLi,那麼您在SQL的變量周圍缺少引號,並且應該使用準備好的語句。您的代碼容易受到SQL注入和XSS – ILikeTacos 2014-09-23 15:19:21
使用縮進! – Edward 2014-09-23 15:22:53