当'返回'重置复选框值被点击

时间:2016-02-09 00:21:01

标签: php html forms

我有一个允许用户将文件上传到文件夹的网站。首先,我检查文件是否存在,如果存在,则检查复选框的值以确定用户是否要覆盖现有文件。如果上传被击中并且未选中该框,我会执行一个有消息和后退按钮的die()。但是,当我回击时,选中复选框(文件仍然显示为已选中),然后再次提交,它不会覆盖该文件(但似乎没有死掉)。当我回击或其他什么时,复选框值是不是被改变或重置了?

也许值得一提的是,有一个表单(if method = post)和一个表单(else)但它们完全相同。

有人可以帮帮我吗?感谢。

这是我的代码:

表格:

<form id='upload' method='post' enctype='multipart/form-data' action='<?php $_server['PHP_SELF']; ?>'>
      <input type='file' name='file_upload'>
      <br><br>
      <label><input type="checkbox" id="overwrite" name="overwrite" value="Yes"> Overwrite file (if file exists)</label>
      <br><br>
      <input type='submit' value="Upload">
      </form>

休息:

if(file_exists($fullFileName)){ 
        $confirmation = $_POST["overwrite"];
        if($confirmation == "Yes") {        
            unlink($fullFileName); //overwrite confirmed, unlink old file
        }
        else {
            die("Upload aborted. Please check 'Overwrite file (if file exists)' box to overwrite existing file&nbsp;&nbsp;<input type='submit'  href='#' onclick='history.back();' value='Back'>");
        }
    }


if(!move_uploaded_file($_FILES['file_upload']['tmp_name'], '' . $_FILES['file_upload']['name'])){ //move new file into place
        die('Errrrrr! Error uploading file - check destination is writeable.');
    }

1 个答案:

答案 0 :(得分:1)

而不是die(),你可以只做一个PHP头重定向,它基本上可以清除表格&#34;并将是一个新的页面加载。如果要保留所选文件,可以将其作为GET值传回。