未填写的表单输入就像填写处理PHP页面一样

时间:2013-06-07 09:47:49

标签: php html forms isset

我正在运行一个非常简单的HTML页面,其中包含表单。我通过POST方法发送数据并在PHP页面上处理它们。我做了一个简单的if语句来检查是否所有输入都已填满。如果没有,则返回为假。

问题是当某些输入没有填充时,那些字段就像填充PHP页面一样,如果语句返回TRUE和PAGE继续处理。我做错了什么?

HTML:

<form class="add_content grid_12 alpha" enctype="multipart/form-data"
    method="POST" action="add_content_2.php" name="excersise_upload">
      <ul>
        <li>
          <label for="excersise_name">Název cviku:</label><br />
          <input type="text" name="excersise_name" id="excersise_name">
        </li> 

        <li>
          <label for="selected_part">Partie cviku:</label><br />
          <select name="selected_part" id="selected_part">
          <?php
            get_parts();
          ?>
          </select>
        </li>

        <li>
          <label for="selected_difficulty">Vyber obtížnost cviku:</label>
          <br />
          <select name="selected_difficulty" id="selected_difficulty">
            <option value="1">začátečník</option>
            <option value="2">mírně pokročilý</option>
            <option value="3">pokročilý</option>  
          </select>
        </li>

        <li>
          <label for="excersise_info">Popis cviku:</label><br />
          <textarea name="excersise_info" id="excersise_info"></textarea>              
        </li>

        <li>
          <input name="MAX_FILE_SIZE" value="102400" type="hidden">
          <input type="file" name="excersise_image" accept="image/jpeg">
        </li>

        <li>
          <label for="image_name">Název obrázku:</label><br />
          <input type="text" name="image_name" id="image_name">
        </li>

        <li>
          <input type="submit" value="Přidat do databáze">
        </li>
      </ul>            
    </form>

PHP:

if ((isset($_POST['excersise_name'])) &&
        (isset($_POST['selected_part'])) &&
        (isset($_POST['selected_difficulty'])) &&
        (isset($_POST['excersise_info'])) &&
        (isset($_FILES['excersise_image'])) &&
        //(isset($_FILES['image_name'])) &&
        $_FILES['excersise_image']['size'] > 0) {.....

4 个答案:

答案 0 :(得分:1)

使用if( ! empty($_POST['excersise_name']) && ...)代替isset()来检查数组。

答案 1 :(得分:0)

使用var_dump($_POST['field_name']);检查字段是否为空时会出现什么情况。 并在trim($_POST['field_name'])之类的if ststement中添加一个检查,以便在提交表单时剪切是否有空格,如

 if(trim($_POST['field_name'])!=''){
    //Proced
 }
 else{
  //Do not proced
 }

答案 2 :(得分:0)

isset检查事物是否存在,而不是它是否为空。我使用isset!= ''的组合来检查它是否已设置,并且它不是空的。 e.g。

if ((isset($_POST['myThing'])) and (trim($_POST['myThing']) != ''))
{
    // Ready to go
}

答案 3 :(得分:0)

在PHP中尝试以下if条件:

 if((isset($_POST['excersise_name']) && !empty($_POST['excersise_name'])) &&
    (isset($_POST['selected_part']) && !empty($_POST['selected_part'])) &&
    (isset($_POST['selected_difficulty']) && !empty($_POST['selected_difficulty'])) &&
    (isset($_POST['excersise_info']) && !empty($_POST['excersise_info'])) &&
    (isset($_FILES['excersise_image']) && !empty($_FILES['excersise_image'])) &&
    //(isset($_FILES['image_name'])) &&
    $_FILES['excersise_image']['size'] > 0)