【问题标题】:Why cant I check if something is not empty为什么我不能检查某些内容是否为空
【发布时间】:2021-03-01 21:37:35
【问题描述】:

我正在尝试验证图像是否已上传。 但自从 2 小时后我无法弄清楚这一点......:

输入:“”

我的代码:

$_SESSION["errorMessage"] = empty($image);

输出:1(真)

那我想看看是不是空的:

$_SESSION["errorMessage"] = !empty($image); // Or empty($image) == false

但是输出什么都不是?!?!

即使我尝试了第一个,当它应该是真的时,给出:“”

谁能帮我解决这个问题?

【问题讨论】:

  • 第一个解决了你的问题,它的返回真或假取决于 $image
  • 不,不是。它不起作用。如果它应该是真的,那么它会给出“”

标签: php file if-statement upload


【解决方案1】:

当您回显错误值时,它不会回显任何内容。你必须告诉 php 要显示什么,例如echo $_SESSION["errorMessage"] ? 'true' : 'false'; 在您的情况下,您可能希望将其转换为 int:$_SESSION["errorMessage"] = (int)empty($image); 您也可以使用 var_dump 进行验证,即 var_dump( $_SESSION["errorMessage"] );

【讨论】:

    【解决方案2】:

    您可以使用 UPLOAD_ERR_NO_FILE 值:

    function isset_file($file) {
        return (isset($file) && $file['error'] != UPLOAD_ERR_NO_FILE);
    }
    
    if(isset_file($_FILES['input_name'])) {
        // It's not empty
    }
    

    由于发送 $_FILES['input_name'] 可能会引发通知

    function isset_file($name) {
        return (isset($_FILES[$name]) && $_FILES[$name]['error'] != UPLOAD_ERR_NO_FILE);
    }
    
    if(isset_file('input_name')) {
        // It's not empty
    }
    

    另一个例子:

    if ($_FILES['theFile']['tmp_name']!='') {
        // do this, upload file
    } // if no file selected to upload, file isn't uploaded.
    

    【讨论】:

      猜你喜欢
      • 2016-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-30
      • 1970-01-01
      • 1970-01-01
      • 2019-01-10
      • 1970-01-01
      相关资源
      最近更新 更多