2016-07-07 158 views
0

我試圖製作一個表單,它會將圖書添加到圖書館書籍的數據庫中,但對於我的生活,我無法使其工作。這裏是我的代碼:無法使用PHP提交表單正確提交

<div class="container-fluid"> 
    <div class="row"> 
     <div class="col-lg-12"> 
      <h2 class="page-header">Add Books</h2> 
      <br> 
<?php 
    if (isset($_POST['submit'])){ 
    $host="*****"; // Host name 
    $username="*****"; // Mysql username 
    $password="******"; // Mysql password 
    $db_name="******"; // Database name 

    $conn = mysqli_connect($host, $username, $password, $db_name); 

    $name=$_POST['Name']; 
    $author=$_POST['Author']; 
    $published=$_POST['Published']; 
    $isbn=$_POST['ISBN']; 
    $category=$_POST['Category']; 

    $sql="INSERT INTO Library (Name, Author, Published, ISBN, Category) 
    VALUES('$name', '$author', '$published', '$isbn', '$category')"; 
    $query = mysqli_query($conn,$sql); 
    if($query){ 
     echo "Successfully Added!"; 
    }else{ 
     echo "Error"."<br />".$sql.mysqli_error($con); 
    } 
} 
?> 
<br> 
<form name="addBookForm" action="" method="post"> 
    <fieldset class="form-group"> 
     <label for="frmName">Book Name</label> 
     <input type="text" class="form-control" id="frmName" placeholder="Name" name="Name"> 
    </fieldset> 
    <fieldset class="form-group"> 
     <label for="frmAuthor">Author</label> 
     <input type="text" class="form-control" id="frmAuthor" placeholder="Author" name="Author"> 
    </fieldset> 
    <fieldset class="form-group"> 
     <label for="frmPublished">Published</label> 
     <input type="text" class="form-control" id="frmPublished" placeholder="Published" name="Published"> 
    </fieldset> 
    <fieldset class="form-group"> 
     <label for="frmISBN">ISBN</label> 
     <input type="text" class="form-control" id="frmISBN" placeholder="ISBN" name="ISBN"> 
    </fieldset> 
    <fieldset class="form-group"> 
     <label for="frmCategory">Category</label> 
     <select class="form-control" id="frmCategory" name="Category"> 
      <option value="Politics/Philosophy">Politics/Philosophy</option> 
      <option value="History/Labour History">History/Labour History</option> 
     </select> 
    </fieldset> 
    <button type="submit" class="btn btn-secondary">Add Book</button> 
</form> 
     </div> 
    </div> 
</div> 

我一直在撞牆我的頭一整天,有人能夠告訴我我做錯了什麼?當我按提交按鈕時,它只是回發到頁面,沒有任何成功或錯誤消息,當我檢查數據庫時,未插入數據。這就像它只是刷新頁面。

+2

告訴我們發生了什麼問題。 –

+3

你很容易受到[sql注入攻擊](http://bobby-tables.com)的攻擊,並且你的表單中沒有'submit'元素,所以你的$ _POST ['submit']'檢查總是會返回假,無論如何跳過所有的DB代碼。 –

+0

試試看 - > if($ _ SERVER ['REQUEST_METHOD'] =='POST){< - 而不是 - > if(isset($ _ POST ['submit'])){ – IceJOKER

回答

3

你有一個if語句:

if (isset($_POST['submit'])){ 

$ _ POST [ '提交'] ...好吧,這是一個表單輸入,與提交的姓名。一個按鈕,也許? = P

<button type="submit" class="btn btn-secondary">Add Book</button> 

GASP!沒有名字!

<button type="submit" name="submit" class="btn btn-secondary">Add Book</button> 

我們走了。

+2

謝謝你,我是個白癡!很簡單! – necrofish666

+0

沒問題,朋友=) – awl19

+1

轉儲諸如$ _POST的超級全局變量來幫助你下一次調試。 – Progrock