重新加载浏览器后停止重复输入

时间:2018-05-26 09:11:39

标签: php

我有一个表单并尝试在表中插入数据。数据以适当的方式插入。 但是在插入查询后单击浏览器重新加载时,它会在表中插入重复的条目。 我尝试了重定向功能。但是没有工作。

我的表单是:

<?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>";
}
}

1 个答案:

答案 0 :(得分:1)

您可以generate a guid并将其放入表单中的隐藏输入中。初始提交时ID的数据库,不允许第二次插入。

<input type="hidden" value="<?php com_create_guid() ?>">

它比post-redirect-get更加简单,并且会减少用户体验,特别是在高延迟网络上。