HTML CSS JavaScript jQuery AJAX ASP PHP SQL tutorials, examples for web building ,author kapil kumar

Sunday, 18 May 2014

Processing Multiple Forms on One Page with PHP

I know that the way most people treat multiple forms on one page is to have each form post to another PHP file where the form is validated, its information is entered into a database or an email is sent off. So you usually have something like this:

<form name="contact-form" method="post" action="contact.php"> blah blah blah </form> <form name="maillist" method="post" action="mailer.php"> blah blah blah </form>
That work great, but why would you create all those extra files when you can just have the form post to the same file and create multiple functions to process your multiple forms.

The solution is very simple and super efficient.
First, lets create some forms.

<form name="mailinglist" method="post"> <input type="text" name="email" /> <input type="submit" name="mailing-submit" value="Join Our Mailing List" /> </form> <form name="contactus" method="post"> <input type="text" name="email" /> <input type="text" name="subjet" /> <textarea name="message"></textarea> <input type="submit" name="contact-submit" value="Send Email" /> </form>

Now lets put some PHP code before the <head> tag to have different processes for each form.

<?php if (!empty($_POST['mailing-submit'])) { //do something here; }  if (!empty($_POST['contact-submit'])) { //do something here; } ?>
Now all you need to do is create your processes within those two “if” statements and each form will be dealt with accordingly when it it filled and submitted.

Send mail in PHP


PHP provides a convenient way to send email with the mail() function.

Syntax of mail function:

mail(to,subject,message,headers,parameters)

  • to --  Required. Specifies the recipient's email address or addresses.
  • subject -- Required. Specifies the email's subject line. 
  • message -- Required. Specifies the actual email body . Each line should be separated with  \n.
  • headers -- Optional. Specifies additional headers such as "From", "Cc", "Bcc", etc. The additional headers should be separated with  (\r\n).
  • parameters -- Specifies any additional parameters.It is optional.


Example of PHP Mail function


<h3>Contact Form</h3>
<?php
// display form if user has not clicked submit
if (!isset($_POST["submit"])) {
  ?>
  <form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">
  From: <input type="text" name="from"><br>
  Subject: <input type="text" name="subject"><br>
  Message: <textarea rows="10" cols="40" name="message"></textarea><br>
  <input type="submit" name="submit" value="Submit">
  </form>
  <?php 
} else {    // the user has submitted the form
  // Check if the "from" input field is filled out
  if (isset($_POST["from"])) {
    $from = $_POST["from"]; // sender
    $subject = $_POST["subject"];
    $message = $_POST["message"];
    // send mail
    mail("kapil@example.com",$subject,$message,"From: $from\n");
    echo "Thank you for contacting us.";
  }
}
?>