使用PHP显示“所有必填字段”错误(默认隐藏)

时间:2012-12-02 19:22:10

标签: php

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

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'也不起作用。这些字符串仍然可以提交:(

1 个答案:

答案 0 :(得分:0)

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

只需检查$ _POST是否已设置即可轻松实现。

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

我很确定你可以通过查看$_SERVER['REQUEST_METHOD'] == 'POST'来实现同样的目标,可能会更清洁。