Поэтому, когда я заполняю форму, и я отправляю форму, если я перезагружаю страницу, она повторно возвращает форму. Вот мой код:
Начало страницы:
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>
Я надеюсь, что кто-то еще сможет определить мою ошибку. Я понятия не имею, что здесь происходит.
onclick="return confirm('Confirm submit?')"
не будет отправлять форму, если она не подтверждена.
header("Location: anotherpage.php");
чтобы избежать повторной отправки формы при перенаправлении страницы. Я имею в виду: используйте ваш PHP для сохранения / обработки данных, а затем перенаправьте на другой.