嵌套if(isset)未按预期工作

时间:2015-08-20 18:55:18

标签: php if-statement

我有一个嵌套的if (isset),但它似乎并没有像我预期的那样工作。我也试过了if (!empty)。请参阅下面的代码。

if (isset($_POST['submit'])){
   if(isset($_FILES['userFile'])){
     //upload file, make tumbnail, then put info to the the tables on the database
     //header location
   } else if (isset($_POST['comment'])){
     //put info to the tables on the database
     //header location

   } else {
     die("you didn't write a comment or upload a file");
   }
}

我的目的是让用户在没有评论的情况下上传图片,或者在不上传图片的情况下让他或她发表评论,显然不会让用户发送空表格。我搜索了一下,但我没有找到关于嵌套isset或空的很多信息。

我是否在正确的轨道上?如果是这样;我怎样才能使这个工作?

因为当我在不设置userFile的情况下尝试上述代码时,它仍然会从userFile部分给出错误,部分如下所示:

if($imagesize2 > $max_size2) {
    die("your file is bigger than max size");
} else if($safe_imagetype2 =='image/jpeg' || $safe_imagetype2 =='image/png' || $safe_imagetype2 == 'image/jpg' || $safe_imagetype2 == 'image/gif') {
    move_uploaded_file($safe_uploadTmp2, "./images/$safe_uploadName2");
} else {
    die("it must be gif, jpg or png");
}

任何帮助表示感谢。

2 个答案:

答案 0 :(得分:2)

这就是你要找的东西。

if(isset($_FILES['userFile']) && strlen($_FILES['userFile']['inputNAME']) > 1)

答案 1 :(得分:2)

您应该以这种方式检查the error during the file upload

if (isset($_FILES['userFile']) && UPLOAD_ERR_OK == $_FILES['userFile']['error']) {
    // The file has been uploaded successfully
}