简体   繁体   English

PHP无法进入foreach循环

[英]php not getting inside foreach loop

I swear this script worked fine last night but can't get it to work today. 我发誓昨晚这个脚本运行良好,但今天无法正常运行。 It's not getting inside of the foreach loop though and i don't know why. 虽然它没有进入foreach循环,但我也不知道为什么。 the $_FILES array is null even if i select a file and click submit. $ _FILES数组为空,即使我选择一个文件并单击提交。

Basically this script has a file input tag and using jquery, if a user selects a file, it adds another file input tag. 基本上,此脚本具有文件输入标签,并且使用jquery,如果用户选择文件,则会添加另一个文件输入标签。 When the submit button is clicked, the PHP is called. 单击提交按钮后,将调用PHP。

<?php
//used for firePHP
include('PHP/FirePHPCore/fb.php');
ob_start();


$success = false;
$error = "";
$allowable_types = array(
    'image/jpeg',
    'image/pjpeg',
    'image/jpg',
    'image/jpe',
    'image/gif',
    'image/png'
);



#################################################################
//NOT GETTING INSIDE THE FOREACH LOOP. $_FILES array is always null
##################################################################
//loops through the files that the user has chosen to be uploaded them and moves them to the Images/uploaded folder
foreach($_FILES as $key => $value) {
    if(!empty($_FILES[$key])) {
        if($_FILES[$key]['error'] == 0) {
            if(in_array($_FILES[$key]['type'], $allowable_types) && ($_FILES[$key]['size'] < 5000000)) {
                if(!file_exists("Images/uploaded/".$_FILES[$key]['name'])) {
                    move_uploaded_file($_FILES[$key]['tmp_name'], "Images/uploaded/".$_FILES[$key]['name']);
                    $success = true;
                } else {
                    $error = "<h3 class=\"bad\">At least one of the files already exists</h3>";
                }
            } else {
                $error = "<h3 class=\"bad\">At least one of the files you've selected is either too large or not the correct file type</h3>";
            }
        } elseif($_FILES[$key]['error'] == 4) { 

        } else {
            $error = "<h3 class=\"bad\">An error occurred while trying to upload one of the files</h3>";
        }
    } else {
        $error = "<h3 class=\"bad\">You need to select a file</h3>";
    } 
}



?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="refresh" content="1205">
<link rel="stylesheet" type="text/css" href="CSS/reset.css" />
<link rel="stylesheet" type="text/css" href="CSS/uploadFile.css" />
<link rel="stylesheet" type="text/css" href="CSS/galleria.css" />
<script type="text/ecmascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="JS/galleria.jquery.js"></script>

<script type="text/javascript"> 


    $(document).ready(function() { 

        var i = 1;

        //gives the first li the class .active so that it shows the large version as if it's been clicked. 
        //-- used for the gallery page
        $('#content ul.gallery li:first-child').addClass('active');

        //fades the links on hover -- used for the nav links
        $('#header ul li a').hover(function() {
            $(this).fadeTo(300, 0.3);
        },function() {
            $(this).fadeTo(300, 1);
        });



            $('input:file:last').live('change',function() {
                var file = $(this).val();
                if(file !== null && file !== "") {
                    if(i < 6) {
                        $(this).after("<input type=\"file\" name=\"uploadedFile"+i+"\" value=\"\" />");
                        i++;
                    }
                }
            });
    }); 
</script>
<meta name="keywords" content="Steph Mcclisch Photography Portfolio Pictures" />
<title>Steph McClish Photography</title>
</head>

<body>
<div id="floater"></div>
<div id="wrapper">

    <div id="content">
        <?php 
        if($success) {
        echo "<h3 class=\"good\">Files Uploaded Successfully!</h3>";
        } elseif ($error) {
        echo $error;
        }
    ?>
        <h4>Choose the files to be uploaded</h4>
        <form action="<?php $_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data">
            <input type="hidden" name="MAX_FILE_SIZE" value="500000" />
            <input type="file" name="uploadedFile0" value="" />
            <button type="submit" name="login">Submit</button>
        </form>
        <h5><a href="PHP/Manage.php">Manage Files/Folders</a></h5>
    </div>


</div>
</body>
</html>

It all had to do with my Wamp server setup. 所有这些都与我的Wamp服务器设置有关。 On the wamp icon in the menu bar i went php>php settings>file uploads. 在菜单栏中的wamp图标上,我转到了php> php settings>文件上传。 Just clicked that once and it fixed everything. 只需单击一次即可修复所有内容。

On windows XP, SP2, Explorer at times fails to upload files without extensions. 在Windows XP,SP2上,资源管理器有时无法上传没有扩展名的文件。

$_FILES array is null in that case. 在这种情况下,$ _FILES数组为null。 Microsoft says its a security feature(!) 微软表示其安全功能(!)

The only solution we could come up is to enforce uploaded file to have an extension. 我们唯一能想到的解决方案是强制上载文件具有扩展名。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM