我有一个问题,我到处查看它,但我似乎仍然卡住了。
如果我通过post -> variable -> database
提交表单,然后重定向到另一个表单
在重定向和我需要的时间内使用header(location:page.php);
的页面
单击提交按钮,它仍然会将重复数据插入数据库。
如何防止这种情况发生?当我阅读令牌时,我看不出它是怎么回事 将无法处理我在其他页面上的表单数据,我不想这样做 去做。
请参见下面的html:
<form name="frmall" class="col s12" action="" method="post">
<!--basic info------------------------------------------------------------------------------------------------------------->
<div class="divider"></div>
<div class="section">
<h5>Basic Member Information</h5>
<div class="row">
<div class="input-field col s6">
<input id="first_name" name="txt_name" type="text" class="validate"
value="<?php if(isset($_POST['btnContinue'])){echo $_POST['txt_name']; } ?>">
<label for="first_name">First Name</label>
</div>
<div class="input-field col s6">
<input id="last_name" type="text" name="txt_surname"
class="validate"
value="<?php if(isset($_POST['btnContinue'])){echo $_POST['txt_surname']; } ?>">
<label for="last_name">Last Name</label>
</div>
<div class="input-field col s6">
<input id="icon_telephone" type="tel" name="txt_number"
class="validate"
value="<?php if(isset($_POST['btnContinue'])){echo $_POST['txt_number']; } ?>">
<label>Telephone</label>
</div>
<div class="input-field col s6">
<input id="email" type="email" name="txt_email" class="validate"
value="<?php if(isset($_POST['btnContinue'])){echo $_POST['txt_email']; } ?>">
<label for="email" data-error="wrong" data-success="right">Email</label>
</div>
<div class="input-field col s6">
<input id="idnumber" type="text" name="txt_idnumber"
class="validate"
value="<?php if(isset($_POST['btnContinue'])){echo $_POST['txt_idnumber']; } ?>">
<label>ID Number</label>
</div>
</div>
<button class="btn waves-effect waves-light" type="submit"
name="btnCancel">Cancel</button>
<button class="btn waves-effect waves-light" type="submit"
name="btnContinue">Continue</button>
</div>
</Form>
PHP(请不要仅仅为例子):
if (isset($_POST['btnContinue'])) {
$Conn->insert_main_member($name, $surname, $number, $idnumber, $email);
header(location:page.php);
}
那么如何在不禁用按钮的情况下阻止双重提交?请协助。