0

我想知道如何在提交表单后显示“所有必填字段”通知但之前将其隐藏。这是我的代码:

if (isset($_POST['region'], $_POST['description'], $_POST['remarks']) && !empty   ($_POST['region']) && !empty($_POST['description']) && !empty($_POST['remarks']) )
{
     $region = mysql_escape_string($_POST['region']);
     $description = mysql_escape_string($_POST['description']);
     $remarks = mysql_escape_string($_POST['remarks']); 

     if (strlen($region>50)) {
         $error .= "Only 50 characters are allowed in the region field.";
     }

     else {
           if (strlen($description>500)) {
               $error .= "Only 500 characters are allowed in the region field.";
           }

           else {
              mysql_query("INSERT INTO register (region, description, remarks) VALUES(
                        '$region', 
                        '$description', 
                        '$remarks') ") or die('Not saved. ' . mysql_error()); 
           }

     }
}

else {
    $error.= "Please fill all the fields.";
}
echo $error;
?>

//form starts here

但是,即使是第一次加载页面(不提交输入),使用它也会显示“请填写所有字段”。我该怎么做?另外,即使是嵌套的 'if' 也不起作用。这些字符串仍然可以提交:(

4

1 回答 1

0

检查用户请求是 POST 还是 GET。

通过简单地检查是否设置了 $_POST 将是最容易实现的。

/* ... */
else if (isset($_POST)) { 
          $error.= "Please fill all the fields.";
        }

我很确定你可以通过检查来达到同样的效果$_SERVER['REQUEST_METHOD'] == 'POST',可能会更干净一些。

于 2012-12-02T19:55:31.807 回答