2017-03-09 58 views
0

我想知道的是,當表單數據直接從onClick =「insert.php」POST到php服務時,那麼它是安全的。請詳細解釋你的答案。 例如:從onClick調用php服務安全嗎?

<form role="form" method="POST" enctype="multipart/form-data"> 
      <div class="form-group"> 
       <label>User Id</label> 
       <input class="form-control" name="First Name"> 
      </div> 
      <div class="form-group"> 
       <label>City Id</label> 
       <input class="form-control" name="Last Name"> 
      </div> 
<button type="submit" class="btn btn-primary" onclick="allowStory.php">Allow</button><button type="submit" class="btn btn-primary" onclick="insert.php">Insert</button> 
</form> 

它還通過執行PHP服務,因爲我想回到同一頁。但問題是這是安全的嗎?這種類型有什麼缺點?如果是,那麼這些是什麼?

+1

它不會做任何事情。 'onclick'屬性必須包含要執行的Javascript代碼。 – Barmar

+1

如果你打開你的控制檯,你會發現每次點擊按鈕時都會出現錯誤。 – Barmar

+0

是的,控制檯確實會給出錯誤。但數據也被插入到數據庫中。 – Rohit

回答

5

將文件名放入onclick不會做任何事情,onclick屬性必須包含Javascript代碼。

如果您希望提交按鈕轉到特定腳本而不是表單操作,請使用formaction屬性。

<button type="submit" class="btn btn-primary" formaction="allowStory.php">Allow</button><button type="submit" class="btn btn-primary" formaction="insert.php">Insert</button> 

這是完全安全要做到這一點,它是從指定的<form>標籤的action="scriptname.php"屬性的表單的動作沒有什麼不同。

+0

這不是對問題的回答,而是一個建議。你應該留下評論而不是回答。不是說這是一個很好的問題。 – Shogunivar

+0

@Shogunivar這個答案既是對這個問題的回答,也是對似乎是OP的意圖的建議。 – Jonathon

+1

@Shogunivar我已經添加了一些關於做他明顯想要做的事情的安全性。 – Barmar

0

使用下面的HTML

   <form role="form" method="POST" id="formsend" enctype="multipart/form-data"> 
     <div class="form-group"> 
      <label>User Id</label> 
      <input class="form-control" name="First Name"> 
     </div> 
     <div class="form-group"> 
      <label>City Id</label> 
      <input class="form-control" name="Last Name"> 
     </div> 
      <input type="submit" name="submit" value="Submit" /></form> 

      <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script> 
      <script> 
      $(document).on('submit', '#formsend', function() 
     { 
     $.post('savedate.php', $(this).serialize(), function(data) 
     { 

    $("#sent").html(data); 


     }); 

    return false; 

    }); 

並創建一個savedata.php或任何其他名稱,並把你的PHP代碼將數據保存在裏面。你不能給文件名onclick事件

+0

感謝您的回覆。 – Rohit