2014-02-15 252 views
0

因此,當我填寫表單並提交表單時,如果我重新加載頁面,它將重新提交表單。這裏是我的代碼:重新加載頁面重新提交表單(PHP)

頁面頂部:

include_once "connect.php"; 

     $kickErrorMessage = "Please fill in all the fields."; 
     $banErrorMessage = "Please fill in all the fields."; 



if(isset($_SESSION['user_id']) && isset($_SESSION['email']) &&   isset($_SESSION['password']) && isset($_SESSION['rank'])) { 
      if(isset($_POST['banUsername']) && isset($_POST['banReason']) && isset($_POST['banEvidence']) && isset($_POST['banDuration']) && isset($_POST['banSubmit'])) { 

       $email = $_SESSION['email']; 
       $punisherId = $_SESSION['user_id']; 

       $username = $mysqli->real_escape_string($_POST['banUsername']); 
       $reason = $mysqli->real_escape_string($_POST['banReason']); 
       $evidence = $mysqli->real_escape_string($_POST['banEvidence']); 

       //Etc... 

我也試着在代碼的最後取消設置值,但似乎沒有任何工作。我也嘗試了array_key_set(或者其他所謂的),而不是isset,但這似乎也不起作用。

  unset($_POST['banSubmit']); 
      unset($_POST['banUsername']); 
      unset($_POST['banReason']); 
      unset($_POST['banEvidence']); 
      unset($_POST['banDuration']); 

這是我的HTML表單,它與我的PHP代碼在同一頁上。我只是不明白爲什麼它不起作用。

<form style="width: 80%;" id="banPlayer" method="post"> 
<p id="error"><?php echo $banErrorMessage; ?></p> 
       Username: <input type="text" name="banUsername"><br> 
       Reason: <textarea name="banReason"></textarea><br> 
       Evidence: <input type="text" name="banEvidence"><br> 

       Duration: <select name="banDuration" style="margin-bottom: 30px;"> 
        <option value="oneDay">1 Day</option> 
        <option value="twoDay">2 Days</option> 
        <option value="threeDay">3 Days</option> 
        <option value="fourDay">4 Days</option> 
        <option value="fiveDay">5 Days</option> 
        <option value="sixDay">6 Days</option> 
        <option value="oneWeek">1 Week</option> 
        <option value="twoWeek">2 Weeks</option> 
        <option value="threeWeek">3 Weeks</option> 
        <option value="oneMonth">1 Month</option> 
        <option value="twoMonth">2 Months</option> 
        <option value="threeMonth">3 Months</option> 
        <option value="fourMonth">4 Months</option> 
        <option value="fiveMonth">5 Months</option> 
        <option value="sixMonth">6 Months</option> 
        <option value="sevenMonth">7 Months</option> 
        <option value="eightMonth">8 Months</option> 
        <option value="nineMonth">9 Months</option> 
        <option value="tenMonth">10 Months</option> 
        <option value="elevenMonth">11 Months</option> 
        <option value="oneYear">1 year</option> 
        <option value="permanent">Permanent</option> 
       </select> 



<span style="margin-left: 4%; margin-top: 60px;"> 
       <a class="button" onClick="showPunishmentWarning();" href="#">Terms and conditions</a> 
       <a class="button" onClick="showHelpScreen();" href="#">Help! I incorrectly punished someone!</a> 
      </span> 

      <input style="margin-top: -8px;" type="submit" value="Ban Player" name="banSubmit"> 


     </form> 

我希望別人能發現我的錯誤。我不知道這裏發生了什麼。

+2

您通常使用'header(「Location:anotherpage.php」);'以避免在實現頁面重新提交時重新提交表單。我的意思是:使用你的PHP來保存/處理數據,然後重定向到另一個。 –

+0

這是我的問題,但因爲我想讓用戶留在同一頁面:/ –

+1

然後指向同一頁面。 – Mave

回答

2

onclick="return confirm('Confirm submit?')"除非確認,否則不會提交表格。

相關問題