我有一个表单并尝试在表中插入数据。数据以适当的方式插入。 但是在插入查询后单击浏览器重新加载时,它会在表中插入重复的条目。 我尝试了重定向功能。但是没有工作。
我的表单是:
<?php
if(isset($_POST['insertcourse']))
{
$userprofileobj->insert_course($_POST['c_name'],$_POST['c_description']);
}
?>
<form action="" method="POST">
<div class="control-group">
<label class="control-label">Course Name :</label>
<div class="controls">
<input type="text" class="span11" placeholder="First name" name="c_name" />
</div>
</div>
<div class="controls">
<label class="control-label">Course Description :</label>
<textarea class="textarea_editor span12" rows="6" placeholder="Enter text ..." name="c_description"></textarea>
</div>
<div class="form-actions">
<input type="submit" value="SAVE" name="insertcourse" class="btn btn-success">
</div>
</form>
我的classes.php是:
<?php
class operations{
public $user_name;
public $error;
public $con;
public function __construct()
{
$this->con = new mysqli("localhost","root","","admin_with_oops");
}
public function insert_course($c_name,$c_description)
{
$date1 = date("Y-m-d");
$result = $this->con->query("insert into courses (c_name,c_description,date1,status1) VALUES ('$c_name', '$c_description', '$date1','1')");
if($result)
{
$alertmsgs = "Inserted Successfully";
$this->alertmsg($alertmsgs);
}
}
public function alertmsg($alertmsgs)
{
echo"<div class='alert alert-error'>
<button class='close' data-dismiss='alert'>×</button>
<strong></strong> $alertmsgs </div>
</div>";
}
}
答案 0 :(得分:1)
您可以generate a guid并将其放入表单中的隐藏输入中。初始提交时ID的数据库,不允许第二次插入。
<input type="hidden" value="<?php com_create_guid() ?>">
它比post-redirect-get更加简单,并且会减少用户体验,特别是在高延迟网络上。