if($ _POST)总是返回false

时间:2016-09-05 17:14:04

标签: php html

我在表格上遇到了一些麻烦。它包含用于上传图像的输入类型文件,以及用于选择放置此图像的位置的选择标记。 代码是这样的:

<?php
require_once("functions.php");
if(isset($_COOKIE['user']))
  {
    $username= checkcookie($_COOKIE['user']);
  }
  if (isset($_SESSION['user'])) {
if ($_POST) {

    $errors = array();
    $errors = SomeValidation();

    if (empty($errors )) {
      UpdateImages();
      exit;
    }else {
      Header ("location: somefile.php?error=There was an error");
      exit;
    }
}else{
  var_dump("error");
} ?>

<!DOCTYPE html>
<html lang="en">
  <head>
  </head>

  <body>
         <form method="post" action="" enctype="multipart/form-data">

          <?php if(isset($_GET['error']))  {?>
            <div class="alert alert-danger" role="alert">
                <ul>
                    <li><?php echo $_GET['error'] ?></li>
                </ul>
            </div>
        <?php } ?>

              <div class="cbp-mc-column">

                <label>Choose new Image</label>

                <select id="code" name="code">
                  <option value="1" >First</option>
                  <option value="2" >Second</option>
                  <option value="3" >Third</option>
                </select>
                <br/>
                <input type="file" name="newimage" value="" />
                <br>
                <input type="submit" name="update" value="Update">
                <br>
              </div>

           </form>

         <!-- Bootstrap Core JavaScript -->
         <script src="../js/bootstrap.min.js"></script>
     </body>
</html>
<?php }else
{
  header('location: panel.php');
}
?>

if($_POST)我总是得到假,当我提交表格时也是如此。 知道为什么吗?

编辑:我忘了提及,我通过帖子发送select值,因此我可以选择上传哪个文件,并且它总是空的。

3 个答案:

答案 0 :(得分:1)

上传图片或任何其他文件,你需要检查$ _FILES数组而不是帖子, 这个问题可能会有所帮助

How do you loop through $_FILES array?

答案 1 :(得分:0)

最好检查输入而不是请求方法..所以使用

if (!empty($_POST["update"])) {
    ....
}

答案 2 :(得分:0)

首先,您需要检查是否点击了提交按钮:isset($_POST['update'])

接下来,检查是否已选择文件:isset($_FILES['newimage']['tmp_name'])

if (isset($_POST['update'])) {

   if (isset($_FILES['newimage']['tmp_name'])) {

        $errors = array();
        $errors = SomeValidation();

        if (empty($errors )) {
            UpdateImages();
            exit;
        } else {
             Header ("location: somefile.php?error=There was an error");
             exit;
        }
   } else {
        echo "No file selected.";
   }

} else {

     echo "Not a POST request.";
}