在PHP中的一个页面中的多个表单

时间:2016-08-30 13:08:35

标签: javascript php html forms

  1. 我在同一页面上有两个PHP代码和两个HTML代码,但是当我提交第一个表单时它出现问题,但是第二个表单中的显示警告消息也与第一个表单警报消息相同。

    < / LI>
  2. 第二个订阅表格无效。 我认为echo $result已经崩溃,我怎么能把它分开呢?

  3. PHP

    <?php
    
    function validEmail($email) {
        // First, we check that there's one @ symbol, and that the lengths are right
        if (!preg_match("/^[^@]{1,64}@[^@]{1,255}$/", $email)) {
            return false;
        }
        // Split it into sections to make life easier
        $email_array = explode("@", $email);
        $local_array = explode(".", $email_array[0]);
        for ($i = 0; $i < sizeof($local_array); $i++) {
            if (!preg_match("/^(([A-Za-z0-9!#$%&'*+\/=?^_`{|}~-][A-Za-z0-9!#$%&'*+\/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$/", $local_array[$i])) {
                return false;
            }
        }
        // Check if domain is IP. If not, it should be valid domain name
        if (!preg_match("/^\[?[0-9\.]+\]?$/", $email_array[1])) {
            $domain_array = explode(".", $email_array[1]);
            if (sizeof($domain_array) < 2) {
                return false;
            }
            for ($i = 0; $i < sizeof($domain_array); $i++) {
                if (!preg_match("/^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$/", $domain_array[$i])) {
                    return false;
                }
            }
        }
        return true;
    }
    
    if ($_POST["registerform"]) {
        $ip = $_SERVER['REMOTE_ADDR'];
        $name = $_POST['name'];
        $email = $_POST['email'];
        $mobile = $_POST['mobile'];
        $sub = $_POST['sub'];
        $message = $_POST['message'];
        $formcontent = "Sender IP: $ip \n\n Name: $name \n E-mail: $email \n Mobile: $mobile \n Subject: $sub \n\n Message: $message";
        $recipient = "xyz@domain.com";
        $subject = "Contact Us Form";
        $mailheader = "From: $email \r\n";
    
        if (!$_POST['name']) {
            $errName = 'Please enter your name';
        }
        if (!$_POST['email'] || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
            $errEmail = 'Please enter a valid email address';
        }
        if (!$_POST['mobile']) {
            $errMobile = 'Please enter your mobile number';
        }
        if (!$_POST['sub']) {
            $errSub = 'Please enter your subject';
        }
        if (!$_POST['message']) {
            $errMessage = 'Please enter your message';
        }
        if (!$errName && !$errEmail && !$errMobile && !$errSub && !$errMessage) {
            if (mail($recipient, $subject, $formcontent, $mailheader) or die("Error!")) {
                $result = '<div class="alert alert-success"><button aria-hidden="true" data-dismiss="alert" class="close" type="button">×</button>Thank You! Your message has been sent. We will revert back to you shortly</div>';
            } else {
                $result = '<div class="alert alert-danger"><button aria-hidden="true" data-dismiss="alert" class="close" type="button">×</button>Warning! There was a problem with your network connection. Please try again</div>';
            }
        }
    } elseif ($_POST['subscribe']) {
        $name = $_POST['name'];
        $email = $_POST['email'];
        $message = $_POST['message'];
        $formcontent = " Name: $name \n\n Email: $email";
        $recipient = "abc2@domain.com";
        $subject = "subscribe Newsletter";
        $mailheader = "From: $email \r\n";
    
        if (!$_POST['name']) {
            $errName1 = 'Please enter your name';
        }
        if (!$_POST['email'] || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
            $errEmail1 = 'Please enter a valid email address';
        }
        if (!$errName && !$errEmail && $errMessage) {
            if (mail($recipient, $subject, $formcontent, $mailheader) or die("Error!")) {
                $result = '<div class="alert alert-success"><button aria-hidden="true" data-dismiss="alert" class="close" type="button">×</button>Thank for subscribing newsletters</div>';
            } else {
                $result = '<div class="alert alert-danger"><button aria-hidden="true" data-dismiss="alert" class="close" type="button">×</button>Please try again</div>';
            }
        }
    }
    ?>
    

    Html代码的第一封邮件是:

    <form action="" name="registerform" method="post">
        <div class="row">
            <div class="form-group">
                <div class="col-lg-6 ">
                    <input type="text" name="name" class="form-control" placeholder="Your Full Name *">
                    <?php echo "<p class='text-danger'>$errName</p>";?>
                </div>
                <div class="col-lg-6 ">
                    <input type="email" name="email" class="form-control" placeholder="Your E-mail *">
                    <?php echo "<p class='text-danger'>$errEmail</p>";?>
                </div>
            </div>
        </div>
        <div class="row">
            <div class="form-group">
                <div class="col-lg-6">
                    <input type="number" name="mobile" class="form-control" placeholder="Contact Number *">
                    <?php echo "<p class='text-danger'>$errMobile</p>";?>
                </div>
                <div class="col-lg-6 ">
                    <input type="text" name="sub" class="form-control" placeholder="Subject *">
                    <?php echo "<p class='text-danger'>$errSub</p>";?>
                </div>
            </div>
        </div>
        <div class="row">
            <div class="form-group">
                <div class="col-md-12">
                    <textarea id="message" class="form-control" name="message" rows="10" cols="50"
                              placeholder="Message *"></textarea>
                    <?php echo "<p class='text-danger'>$errMessage</p>";?>
                </div>
            </div>
        </div>
        <div class="row">
            <div class="col-md-3">
                <input type="submit" name="registerform" value="Submit" class="btn btn-default btn-lg button">
            </div>
        </div>
    </form>
    

    第二个订阅表格Html代码是:

    <div class="row">
        <div class="form-group">
            <div class="col-lg-12 col-md-12 col-sm-12">
                <?php echo $result; ?>
            </div>
        </div>
    </div>
    
    <div class="form-group">
        <?php echo $result; ?>
    </div>
    
    <form name="subscribe" method="post">
        <input type="text" name="name" id="name" class="form-control" placeholder="Name">
        <?php echo "<p class='text-danger'>$errName</p>";?>
        <input type="text" name="email1" id="email" class="form-control" placeholder="Email">
        <?php echo "<p class='text-danger'>$errEmail</p>";?>
        <div class="pull-right">
            <input type="submit" value="Subscribe" name="subscribe" class="btn btn-default btn-lg button">
        </div>
    </form>
    

3 个答案:

答案 0 :(得分:0)

使用表格1或2特定于$的if(isset($valuefromtheform){$result= .... }来设置案例1或2中的$结果

答案 1 :(得分:0)

首先做这样的代码:

if ($_GET['action'] == 'FORM ONE') {
  //Code Here
} else if($_GET['action'] == 'FORM TWO' {
  //Code Here
}

或者另一种方法只是更改提交按钮的值,并执行以下操作:

if (isset($_POST['submit'])) {
  if ($_POST['submit'] == 'FORM ONE') {
    //Code Here
  } else if($_POST['submit'] == 'FORM TWO') {
    //Code Here
  }
}

其次只是将变量$result的名称更改为$result_one$result_two。因为两个表单在同一页面上使用相同的变量。

答案 2 :(得分:0)

您可以通过提交按钮名称

进行检查
<?php
  if(isset($_POST['registerform']))
{
//registration form code processing here
}
else if(isset($_POST['subscribe']))
{
//subscription form code goes here
}
?>

或者,您可以在

等表单中放置隐藏标记
<input type="hidden" name="action" value="registration">

<input type="hidden" name="action" value="subscribe">

您可以通过以下代码查看:

<?php

    if(isset($_POST['action']) && $_POST['action'] == 'registration')
    {
    //registration code goes here
    }
    else if(isset($_POST['action']) && $_POST['action'] == 'subscribe')
    {
    //subscription code goes here
    }
    ?>