表单提交前php显示错误

时间:2014-01-17 12:19:34

标签: php html submit

我有一个简单的PHP脚本:

<!doctype html>
<html>
<head>
    <meta charset="utf-8" />
    <title>MY WEB</title>
</head>
<body>
    <form action="" method="get">
        <input type="text" name="textval" value="<?php if( isset($_GET['textval']) ) echo htmlspecialchars($_GET['textval']) ?>" />
        <input type="submit" value="Check" />
    </form>
</body>
</html>
<?php
if ( empty($_GET['textval']) ) {
    echo "Please Fill The TextBox" . PHP_EOL;  // displays this
}
else{
    echo "OKAY" . PHP_EOL;
}
?>

但是php在打开页面后才抛出此错误而我没有提交表单!!!

如何解决这个问题?

5 个答案:

答案 0 :(得分:1)

试试这个

<!doctype html>
<html>
<head>
    <meta charset="utf-8" />
    <title>MY WEB</title>
</head>
<body>
    <form action="" method="get">
        <input type="text" name="textval" value="<?php if( isset($_GET['textval']) ) echo htmlspecialchars($_GET['textval']) ?>" />
        <input type="submit" value="Check" />
    </form>
</body>
</html>
<?php
if(isset($_GET['submitted'])){
  if ( empty($_GET['textval']) ) {
    echo "Please Fill The TextBox" . PHP_EOL;
  }
  else{
    echo "OKAY" . PHP_EOL;
  }
}
?>

答案 1 :(得分:1)

在您编辑代码时,显然会显示if条件的语句将返回true,因此在这种情况下,请为name按钮分配submit ,而不是像

那样使用
<input type="submit" value="Check" name="submitted" />

<?php
if(isset($_GET['submitted'])) {
   if (empty($_GET['textval'])) {
       echo "Please Fill The TextBox" . PHP_EOL;  // displays this
   }
   else{
       echo "OKAY" . PHP_EOL;
   }
}
?>
  

注意:如果您使用POST而不是GET,则效果会更好   看似$_GET合适的东西,通常$_GET用于搜索   页。

答案 2 :(得分:0)

您的$_GET['textval']最初为空,因此empty($_GET['textval'])条件为true

这就是为什么第一页加载时出错。

答案 3 :(得分:0)

根据您的代码

empty($_GET['textval'])
在提交表单之前,

将始终为TRUE。因此,首先要检查您的表单是否已提交。

首先将提交更改为

<input type="submit" name="submit" value="Check" />

现在检查提交是否有效

 if(isset($_GET['textval'])) {
     if(isset($_POST['submitted'])){
         if ( empty($_GET['textval']) ) {
               echo "Please Fill The TextBox" . PHP_EOL;
         }
         else{
               echo "OKAY" . PHP_EOL;
         }
     } 
    }

或者为您的代码添加一个名为'submitted'的隐藏输入并检查它。

答案 4 :(得分:0)

您还可以使用JQuery验证字段是否为空。这不会重新加载页面。

$("form").submit(function (e){
    if($("input[type='text']").val().length == 0)
    {
       alert('fill form');
       return false;
    }
});