Php 重新加载浏览器后停止重复条目
我有一个表单,试图用类在表中插入数据。数据以正确的方式插入。 但当在insert查询之后单击“浏览器重新加载”时,它会在表中插入重复的条目。 我尝试了重定向功能。但不起作用 我的表格是:Php 重新加载浏览器后停止重复条目,php,Php,我有一个表单,试图用类在表中插入数据。数据以正确的方式插入。 但当在insert查询之后单击“浏览器重新加载”时,它会在表中插入重复的条目。 我尝试了重定向功能。但不起作用 我的表格是: <?php if(isset($_POST['insertcourse'])) { $userprofileobj->insert_course($_POST['c_name'],$_POST['c_description']); } ?> <form ac
<?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>
<?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>";
}
}
课程名称:
课程简介:
My classes.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>
<?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>";
}
}
您可以将其添加到表单中的隐藏输入中。在初次提交时使用该ID的数据库,不允许再次插入
<input type="hidden" value="<?php com_create_guid() ?>">
。。。您的代码也容易受到SQL注入的攻击。学习使用检查课程之前是否已经存在?谢谢回复。但我能在类中直接调用重定向函数吗?还有其他方法吗?我不知道在类中调用该函数是什么意思。隐藏guid输入的目的是在浏览器中放置一些独特的内容,以便在发布表单时识别表单。如果在POST操作期间计算了类中的guid,则会为每个POST重新生成guid,从而破坏guid的用途。如果您只是问是否可以出于组织目的在类中放置guid创建方法,我想肯定是这样。只需确保在GET请求中调用它来设置隐藏输入的值。