虽然$ FILE超全球没有通过

时间:2014-04-21 01:34:35

标签: php superglobals

所以我正在处理一个文件上传表单,它似乎丢失了文件超级全局中的信息,从一个步骤到另一个步骤。所以我所做的是在通过验证码验证之前打印出超级全局文件,然后在我通过验证码验证后将其打印出来。在某些方面,我在验证验证码后丢失了信息。我已经尝试将信息存储在cookie和会话变量中,但没有运气。就cookie方向而言,只有当我在验证码验证之前点击刷新时,它才会将文件超级全局信息保存到cookie中。在会话存储方面,它在我验证捕获之前将信息存储在会话变量中,但在我验证了captach之后丢失了它。你们这些人能帮忙吗,并提前感谢。我的代码如下:

$DIRECTORY_NAME = "/home/www/xxx/xxxPhotos/";
$FILES = array();

$SPEAKER_STATUS_DROPDOWN = '<option value="">...</option><option value="Suggested">Suggested</option><option value="Invited">Invited</option><option value="Confirmed">Confirmed</option>';

if (empty($_SESSION['captcha']) || strtolower(trim($_REQUEST['captcha'])) != $_SESSION['captcha']) {
    $captcha = false;
} else {
    $captcha = true;
}

if (!empty($_POST) && $captcha) {

    $UNIQ_ID = $_POST['uniq_id'];
    $FORM_ID = $_POST['form_id'];

    //$uniqid = createuniqid();

    // Upload file
    if ($_FILES["file"]["name"] != "") {
        if ($_FILES["file"]["error"] > 0)
        {
            echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
            die();
        }
        else
        {
            $allowedExtensions = array("jpg","gif","tiff","pdf"); 
            if ($file["file"]['tmp_name'] != '') { 
              if (!in_array(end(explode(".", 
                    strtolower($file["file"]['name']))), 
                    $allowedExtensions)) { 
               die($file["file"]['name'].' is an invalid file type!<br/>'. 
                '<a href="javascript:history.go(-1);">'. 
                '&lt;&lt Go Back</a>'); 
              } 
            } 

            $filename = "AS_".$uniqid."". strrchr($_FILES["file"]["name"], '.');
            move_uploaded_file($_FILES["file"]["tmp_name"],
            $DIRECTORY_NAME . $filename);
            $filenamequery = ", attachment='$filename' ";
            $filenameemailbody = "<br>Attachment: <a href=\"http://www.verney.ca/viewabstract.php?filename=$filename\">http://www.verney.ca/viewabstract.php?filename=$filename</a>";
        }

        die('reached here');
    }

HTML表单

<form name="frmAbstract" id ="frmAbstract" method="post" action="storiesv.php" onSubmit="return validation();"  enctype="multipart/form-data" style="margin-left:20px;">
    <input type="hidden" name="uniq_id" value="">
    <input type="hidden" name="form_id" value="6">
    <div><label class="labelHeader"><strong><h1>Form</h1></strong></label><br/></div>
                <div class="formrow">
                    <label for="question_390">First Name of Submitter:  <span style="color:#FF0000">*</span></label>
                    <input type="text" id="question_390" name="question_390" style="width:500px" maxlength="255" value="">
                </div>                      

                <div class="formrow">
                    <label for="question_391">Last Name of Submitter:  <span style="color:#FF0000">*</span></label>
                    <input type="text" id="question_391" name="question_391" style="width:500px" maxlength="255" value="">
                </div>                      

                <div class="formrow">
                    <label for="question_392">Title:  </label>
                    <input type="text" id="question_392" name="question_392" style="width:500px" maxlength="255" value="">
                </div>                      

                <div class="formrow">
                    <label for="question_393">Organization:  </label>
                    <input type="text" id="question_393" name="question_393" style="width:500px" maxlength="255" value="">
                </div>                      

                <div class="formrow">
                    <label for="question_394">Phone:  </label>
                    <input type="text" id="question_394" name="question_394" style="width:500px" maxlength="255" value="">
                </div>                      

                <div class="formrow">
                    <label for="question_395">Email:  <span style="color:#FF0000">*</span></label>
                    <input type="text" id="question_395" name="question_395" style="width:500px" maxlength="255" value="">
                </div>                      

                <div class="formrow">
                    <label for="question_396">Involvement with the CBS:  </label>
                    <input type="text" id="question_396" name="question_396" style="width:500px" maxlength="255" value="">
                </div>                      

                <div class="formrow">
                    <label for="question_397">First became a CBS member in (yyyy):  <span style="color:#FF0000">*</span></label>
                    <input type="text" id="question_397" name="question_397" style="width:500px" maxlength="255" value="">
                </div>                      

                <div class="formrow">
                    <label for="question_398">Your story/experience/anecdote (limit of 250 words):  </label>
                    <textarea name="question_398" name="question_398" style="width:500px;height:200px;"></textarea>
                </div>                      

                <div class="formrow" >
                    <label>Do you have a photo / graphic to upload (scans of print photos are acceptable)?   </label>
                <div class="checkboxdiv"><input type="radio" style="width:20px;float:left;border:0px;"id="question_399_0" name="question_399[]" value="Yes"><label for="question_399_0">Yes</label></div><div class="checkboxdiv"><input type="radio" style="width:20px;float:left;border:0px;"id="question_399_1" name="question_399[]" value="No"><label for="question_399_1">No</label></div><strong><em></em></strong><div style="clear:both;"></div></div>
                    <div>
                        <label for="question_400">Attachment: (Only jpg, gif, tiff, pdf, will be accepted)  </label>
                        <input type="file" id="question_400" name="question_400" style="width:500px;">
                    </div>                      

                <div class="formrow">
                    <label for="question_401">For photos submitted, please include names of people in the photo, location, and date.  </label>
                    <textarea name="question_401" name="question_401" style="width:500px;height:200px;"></textarea>
                </div>                      

                <div class="formrow" >
                    <label>Do we have permission to publish this photo in a slide show to be featured at the 2014 CBS Conference and possibly in a printed collection of memoirs intended for past and present CBS members?   </label>
                <div class="checkboxdiv"><input type="radio" style="width:20px;float:left;border:0px;"id="question_402_0" name="question_402[]" value="Yes"><label for="question_402_0">Yes</label></div><div class="checkboxdiv"><input type="radio" style="width:20px;float:left;border:0px;"id="question_402_1" name="question_402[]" value="No"><label for="question_402_1">No</label></div><strong><em></em></strong><div style="clear:both;"></div></div><div><label class="labelHeader"><strong>Questions</strong></label><br/></div>
                <div class="formrow">
                    <label for="question_404">Tell us about your experience(s) with the CBS.  </label>
                    <input type="text" id="question_404" name="question_404" style="width:500px" maxlength="255" value="">
                </div>                      

                <div class="formrow">
                    <label for="question_405">How did you become involved in the CBS?   </label>
                    <input type="text" id="question_405" name="question_405" style="width:500px" maxlength="255" value="">
                </div>                      

                <div class="formrow">
                    <label for="question_406">What is your best memory of the CBS?  </label>
                    <input type="text" id="question_406" name="question_406" style="width:500px" maxlength="255" value="">
                </div>                      

                <div class="formrow">
                    <label for="question_407">Who have been your role models in the field?  </label>
                    <input type="text" id="question_407" name="question_407" style="width:500px" maxlength="255" value="">
                </div>                      

                <div class="formrow">
                    <label for="question_408">What has been the most significant accomplishment of Canadian bioethics?  </label>
                    <input type="text" id="question_408" name="question_408" style="width:500px" maxlength="255" value="">
                </div>                      

                <div class="formrow">
                    <label for="question_409">What is our biggest challenge going forward?  </label>
                    <input type="text" id="question_409" name="question_409" style="width:500px" maxlength="255" value="">
                </div>                      
            </fieldset>
    <div style="clear:both;"><br><input type="submit" name="btnSave" id="btnSave" value="Next" class="submitbutton" "></div>
    <p>&nbsp;</p>

</form>

所以上面的代码是我一直在使用的原始代码。它实质上是在验证验证码之后上传文件,这就是我丢失$ _FILES超级全局的地方

答案:感谢所有查看我问题的人。问题是验证码在自己的页面上有一个带有enctype集的表单。因此,$ _FILES超级全局覆盖了表单$ _FILES,当然没有设置。

1 个答案:

答案 0 :(得分:0)

您输入的文件名为question_400,因此您需要$_FILES["question_400"]["name"]等。