我试图防止用户刷新页面时多次提交表单。这是我的代码:
<form action="#" method="post">
<table border="0">
<tr>
<td id="tb-w_a"><p>Kategori</p></td>
<td>:</td>
<td>
<select name="kategori">
<?php
$query = "SELECT id, title FROM forum_kategorier";
$result = $mysqli->query($query);
while(list($id, $title) = $result->fetch_row())
{
echo "<option value=\"$id\">$title</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td id="tb-w_a"><p>Title</p></td>
<td>:</td>
<td><input type="text" name="title"></td>
</tr>
</table>
<textarea name="tekst_indhold" style="width:716px; height:170px;"></textarea><br />
<input type="hidden" value="<?php echo $_SERVER['PHP_SELF'] ?>" name="return_page">
<input type="submit" value="Opret indhold" name="godkendt">
</form>
<?php
if ($stmt = $mysqli->prepare('INSERT INTO `forum_traede` (`kategori_id`, `bruger_id`, `tekst`, `dato`, `titel`) VALUES (?, ?, ?, NOW(), ?)')) {
$stmt->bind_param('ssss', $katgori_id, $bruger_id, $tekst, $titel);
$katgori_id = $_POST["kategori"];
$bruger_id = $_SESSION["user_id"];
$tekst = $_POST["tekst_indhold"];
$titel = $_POST["title"];
$stmt->execute();
$stmt->close();
if (isset($_POST['return_page'])) {
$return_page = $_POST["return_page"];
} else {
header('Location: http://xxxx.dk/bruger-forum-opret/');
}
} else {
echo 'Der opstod en fejl i erklæringen: ' . $mysqli->error;
}
?>
提交表单后,我收到以下错误:
警告:无法修改标头信息 - 第 78 行 /home/jesperbo/public_html/xxx.dk/xxx.php 中的标头(输出开始于 /home/jesperbo/public_html/xxx.dk/xxx.php:27)
这显示在页面顶部。
我还尝试将表单处理代码移动到单独的 .php 文件中,但随后出现此错误:
致命错误:在第 2 行的 /home/jesperbo/public_html/xxx.dk/bruger_forum-indhold-godkendt.php 中的非对象上调用成员函数 prepare()
提交表单后如何将浏览器重定向到新页面?