我制作了一个普通的HTML表单,在提交时,将信息发送到另一个页面,该页面处理数据并将其添加到数据库中。但由于某种原因,如果我刷新包含表单的第一页,即使我看不到任何理由,也会在数据库中创建一个条目。
这是表格的代码:
<?php $owner = $_GET['user']; ?>
<h2 class="dotted"><?php _e('Add feedback for user','appthemes'); echo " - ".$owner;?></h2>
<form id='feedback' action='http://www.example.co.uk/add-feedback-response/?user=<?php echo $owner; ?>' method='POST' accept-charset='UTF-8'>
<fieldset >
<b>Your Username:</b> <?php echo $current_user->user_login; ?><br/><br/>
<b>Rating: </b>
<input type="radio" name="rating" value="positive" /> Positive
<input type="radio" name="rating" value="neutral" /> Neutral
<input type="radio" name="rating" value="negative" /> Negative<br/><br/>
<label for='item' ><b>Item bought:</b></label>
<input type="text" name='item' id='item' maxlength="500"/><br/><br/>
<label for='comment' ><b>Comment:</b></label>
<textarea name='comment' id='comment' maxlength="2500"></textarea><br/><br/>
<input type="submit" id="submit-button" value="Submit Feedback" />
</fieldset>
</form>
有什么我想念的吗?谢谢你的帮助
答案 0 :(得分:1)
可能是因为您尝试再次提交表单。浏览器是否提醒您再次发送数据?
限制此操作,请使用
header("Location: ".$_SERVER['HTTP_REFERER']);
处理表格
答案 1 :(得分:0)
如果您在提交一次表单后刷新表单,则表单将再次提交。 (浏览器会警告你,“你确定要再次提交页面吗?” - 不是吗?)刷新实际上是“重复上一次请求”。
如果您认为在您的网络应用中可以使用这种方案,则必须处理重复的请求。