PHP-验证文本框是否具有值?

时间:2019-01-28 02:16:39

标签: php forms input

我想验证文本框是否具有值。现在我所拥有的是一个具有值的文本框,但是输出说这里是空的,因为它就像没有任何内容受到代码的限制,请看我的代码,谢谢

完整代码

-这是我表格的完整代码,非常感谢您

    <form>
          <div class="row">
            <form method="POST">
            <div class="col-md-8">
              <?php
              $code = 'Code';
              $code2 = 'PIN'; 
            if(isset($_POST['btnSubcode'])) {
              $lblCode  =  isset($_POST['lblQrTxt']) ? $_POST['lblQrTxt'] : '';

              $code =   $lblCode;
              $code = explode(":",$code); // code = array("QR Code","444444444|123")
              $code = explode("|",$code[1]); // code[1] = "444444444|123"
              $code = trim($code[0]); // 444444444


              $code2 =   $lblCode;
              $code2 = explode(":",$code2); // code = array("QR Code","444444444|123")
              $code2 = explode("|",$code2[1]); // code[1] = "444444444|123"
              $code2 = trim($code2[1]); // 123
            }


            ?>


              <div class="form-group">
                <label class="form-control-label">code</label>
                <input type="text" name="input" id="card-code" value='<?php echo $code ?>' class="form-control">
              </div>
            </div>
            <div class="col-md-4">
              <div class="form-group">
                <label class="form-control-label">pin</label>
                <input type="text" id="card-pin" value='<?php echo $code2 ?>' class="form-control" maxlength="3">
              </div>

             <?php 


              if(isset($_POST['txtQrtxt']) && $_POST['txtQrtxt'] != '') {
                 echo "Text Present";
              } else {
                 echo "Text Not Present";
              }

              ?>

                        <div class="caption">

                        <div class="jumbotron">
                        <input type="text" name='txtQrtxt' value='Hello World' class="form-control" >

                        <textarea class="form-control text-center" id="scanned-QR" name="lblQrTxt"></textarea><br><br><br>

                         </div>

                        </div>


              </form>
              <div class="form-group float-right">
                <input value="Topup" class="btn btn-primary topup-button">

              </div>
            </div>
          </div>

        </form>


 <?php 

              $txtCodeqr  =  isset($_POST['txtQrtxt']) ? $_POST['txtQrtxt'] : '';
              if (!empty($txtCodeqr)) {
                echo "Text";
              } else {
                echo "Empty Textbox";
              }


               ?>

我的文本框

<input type="text" name='txtQrtxt' value='Hello World' class="form-control" >

2 个答案:

答案 0 :(得分:1)

您可能过于复杂了。这很简单。

<?php

if(isset($_POST['txt']) && $_POST['txt'] != '') {
   echo "Text Present";
} else {
   echo "Text Not Present";
}
?>

此外,我建议您过滤发布或获取时的所有输入。基本上任何能从用户那里获取信息的东西。

在这里检查-http://php.net/manual/en/function.filter-input.php

<?php

$my_txt = filter_input(INPUT_POST, 'txt');
if(isset($my_txt) && $my_txt != '') {
   echo "Text Present";
} else {
   echo "Text Not Present";
}
?>

此外,您还需要在表单标签之间添加一个提交按钮。这样。

<input type="submit" value="Submit">

此外,每个开始标签都应该只有一个结束标签。这称为有效HTML。

例如,有效的表格是

 <form method="post">
  First name:<br>
  <input type="text" name="firstname" value="Mickey"><br>
  Last name:<br>
  <input type="text" name="lastname" value="Mouse"><br><br>
  <input type="submit" value="Submit">
</form> 

答案 1 :(得分:1)

好的,我已经制作了一个简单的php测试文件,并对其进行了测试。您的问题是:

  1. 您没有提交按钮。如果您不先提交表单,则$ _POST将不存在。

  2. 使用javascript验证文本区域会更容易。

这是我的测试文件,它可以正常工作:

<html>
<body>
<form method="POST">
<textarea name="txtQrtxt">
</textarea>

<input type="submit">
</form>

<?php

$var = $_POST['txtQrtxt'];

if (strlen($var)<=0) {
    echo "Textarea empty";
} else {
    echo "Textarea Okay";   

}


?>
</body></html>