刷新页面时php mysql重复插入

标签 php mysql

我有表单从用户那里获取一些数据和文件并将其插入到 mysql DB

就这样完成了。但是当我收到消息成功并且文件已上传时,如果我刷新页面,数据库内的相同数据会重复

当我刷新页面时,我不想在数据库中出现重复的数据

这是我的代码:

<?php
$Name=mysql_real_escape_string($_POST['nameofresearch']) ?
$_POST['nameofresearch'] : '';
$Dates=mysql_real_escape_string($_POST['dateofstart']) ?
$_POST['dateofstart'] : '';
$Datee=mysql_real_escape_string($_POST['dateofend']) ?
$_POST['dateofend'] : '';
$budget=mysql_real_escape_string($_POST['budget']) ?
$_POST['budget'] : '';
$Names=mysql_real_escape_string($_POST['requestedby']) ?
$_POST['requestedby'] : '';
$executingagency=mysql_real_escape_string($_POST['executingagency']) ?
$_POST['executingagency'] : '';
$projectstatus =mysql_real_escape_string($_POST['projectstatus']) ?
$_POST['projectstatus'] : '';
$projectmanager =mysql_real_escape_string($_POST['projectmanager']) ?
$_POST['projectmanager'] : '';
$briefdes =mysql_real_escape_string($_POST['briefdes']) ?
$_POST['briefdes'] : '';
if($_POST['expert'][0]) { $first_expert   = $_POST['expert'][0]; } else { $first_expert  = 0; }
if($_POST['expert'][1]) { $second_expert  = $_POST['expert'][1]; } else { $second_expert  = 0; }
if($_POST['expert'][2]) { $third_expert   = $_POST['expert'][2]; } else { $third_expert  = 0; }

include("../config.php");
if(is_uploaded_file($_FILES['fileupload']['tmp_name'])) { 
$fname = "ERI_db/".date("H-i-s").strstr($_FILES['fileupload']['name'],'.'); 
} else { echo "<BR>No file uploaded<BR>"; }

$sql="INSERT INTO " . ERI_TABLE . "    (id,nameofresearch,dateofstart,dateofend,budget,requestedby,executingagency, projectstatus,projectmanager,briefdes,filename,expert1,expert2,expert3) 
               VALUES(NULL, '$Name', '$Dates', '$Datee', '$budget', '$Names','$executingagency', '$projectstatus', '$projectmanager', '$briefdes','$fname','$first_expert','$second_expert','$third_expert')";
$result=mysql_query($sql); 
if($result)
{
    echo "<BR><b>Successful<BR>";
    echo "<BR>";
    //----------------------------------------
    if($_FILES['fileupload']['size']>0)
    {
        if(!in_array($_FILES['fileupload']['type'],$exten)){ $r.="امتداد الملف خطا -    <br>";} 
        if(file_exists($dir.$_FILES['fileupload']['name'])){ $r.="الملف موجودة مسبقا -<br>";}
        if($_FILES['fileupload']['size']>$bigsize){ $r.="حجم الملف اكبر من المسموح به -<br>";}
    }
    if($r)
    {
        echo $r;
        exit();
    }
    else
    {
        if($_FILES['fileupload']['tmp_name'])
        {
            copy($_FILES['fileupload']['tmp_name'],$dir.$fname);
            echo "<BR>File is uploaded<BR>";
            // echo "<BR>" . $dir.$fname . "<BR>"; // Print path to file 
            echo "<BR>";
        }}
} else {
echo "<BR>ERROR<BR>";
echo mysql_error();
}

我该怎么办? 请描述解决方案

最佳答案

and its done. but when i get message success and file is uploaded and if i refresh page same data duplicate inside DB

文件上传后,您应该将页面重定向到另一个位置,并显示成功错误消息,以防止出现此问题。

关于刷新页面时php mysql重复插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29070465/

相关文章:

mysql - Google Cloud SQL - MySQL 复制

php - MySQL - 查找有或没有特殊字符的记录

c++ - 我如何为用户生成个人访问 token ?

javascript - Ajax 响应不等于我认为应该的

php - 从缓存中禁用图像?

php - Jquery Ajax 动态表单

php - 在一个sql查询中更新多行

php - CodeIgniter 动态 URI 路由可能吗?

php - 删除行时Mysql id自动递增不为空筛选

php - 删除不在我的数据库中的文件