如何检查如果HTML表单是空的或不与PHP


How to check if HTML forms are empty or not with PHP

我想知道是否有一种方法来检查html文本输入是否为空,如果是,执行一定的PHP代码,我将提供。

HTML

<input name="name" type="text" class="form-control form-control-lg" id="exampleInputName2" placeholder="your name" maxlength="36" value="<?php echo $name; ?>">
<input style="margin-top: 10px;" name="email" type="text" class="form-control form-control-lg" id="exampleInputEmail2" placeholder="your email" maxlength="36" value="<?php echo $email; ?>">
<button name="mySubmitBtn" type="submit" class="btn btn-default btn-md">subscribe</button>
PHP

if(!isset(['name']) || !isset(['email']) == 0){
        $msg_to_user = '<h1>Fill out the forms</h1>';
}

我想知道是否:

  1. 我的PHP代码语法正确,我相信它不是
  2. 是否可以检查输入是否为空,如果输入为空,执行PHP代码(特别是'$msg_to_user')
  3. 这是可能的调整我的代码,以便当用户单击提交按钮,并且字段都是空的$msg_to_user代码执行

提前感谢!

您应该使用isset检查数组- $_POST$_GET根据您的HTML表单方法。

应该是:

<form method="POST">
    <input name="name" type="text" class="form-control form-control-lg" id="exampleInputName2" placeholder="your name" maxlength="36" value="">
    <input style="margin-top: 10px;" name="email" type="text" class="form-control form-control-lg" id="exampleInputEmail2" placeholder="your email" maxlength="36" value="">
    <button name="mySubmitBtn" type="submit" class="btn btn-default btn-md">subscribe</button>
</form>
PHP:

if (!isset($_POST['name']) || !isset($_POST['email']))
{
    $msg_to_user = '<h1>Fill out the forms</h1>';
} else {
    // process your results
}

我想,我已经回答了问题A和b。问题C呢?这取决于你的架构。例如,如果你想从页面发布表单到自己(我的意思是index.php文件有一个表单与动作='index.php'或空动作),那么你可以这样做(只是一个例子的方法,绝对不是最好的):

if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
    if (!isset($_POST['name']) || !isset($_POST['email']))
    {
        $msg_to_user = '<h1>Fill out the forms</h1>';
    } else {
        // do something in database
        if ($doSomethingInDatabaseSuccess)
            $msg_to_user = '<h1>Succesffully saved!</h1>'; // really? h1? :)
        else
            $msg_to_user = '<h1>Something went wrong!</h1>';
} else {
    $msg_to_user = ''; 
}
<form method="POST">
    <input name="name" type="text" class="form-control form-control-lg" id="exampleInputName2" placeholder="your name" maxlength="36" value="">
    <input style="margin-top: 10px;" name="email" type="text" class="form-control form-control-lg" id="exampleInputEmail2" placeholder="your email" maxlength="36" value="">
    <button name="mySubmitBtn" type="submit" class="btn btn-default btn-md">subscribe</button>
</form>
<p class="result"><?php echo($msg_to_user); ?></p>

A。不,你的语法错了。

B。是的

C。是的,首先你需要给你的按钮一个name属性,这样它就可以被PHP拾取。您还需要用$_POST变量赋值$email和$name变量。

HTML

<input type="text" name="name" class="form-control" id="exampleInputName2" placeholder="your name" maxlength="36" value="<?php echo $name; ?>">
<input type="email" style="margin-top: 10px;" name="email"  class="form-control" id="exampleInputEmail2" placeholder="your email" maxlength="36" value="<?php echo $email; ?>">
<input type="submit" name="mySubmitBtn" class="btn btn-default btn-md" value="subscribe">
PHP

//check to see if the submit button is pressed
if(isset($_POST['mySubmitBtn'])){
//assign the variables from the content of the input form
$email = $_POST['email'];
$name = $_POST['name'];
  //check if name is empty
  if(!isset($name) || trim($name) ==''){
  $errorMsg = "You must enter a name";
  return;
  }
  //check if email is empty
  if(!isset($email) || trim($email) ==''){
  $errorMsg = "You must enter an email";
  return;
  }
  //do something else