PHP contact form

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
onesnooze
Forum Newbie
Posts: 3
Joined: Sun Aug 15, 2010 1:47 pm

PHP contact form

Post by onesnooze »

Hi guys,

I am trying to send some information to my email, but it is not working.

I am using this above the head section

Code: Select all

<?php
//If the form is submitted
if(isset($_POST['submit'])) {

	//Check to make sure that the name field is not empty
	if(trim($_POST['contactname']) == '') {
		$hasError = true;
	} else {
		$name = trim($_POST['contactname']);
	}

	//Check to make sure sure that a valid email address is submitted
	if(trim($_POST['email']) == '')  {
		$hasError = true;
	} else if (!eregi("^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$", trim($_POST['email']))) {
		$hasError = true;
	} else {
		$email = trim($_POST['email']);
	}

	//Check to make sure that the subject field is not empty
	if(trim($_POST['birthday']) == '') {
		$hasError = true;
	} else {
		$subject = trim($_POST['']);
	}


	//Check to make sure comments were entered
	if(trim($_POST['anniversary']) == '') {
		$hasError = true;
	} else {
		$subject = trim($_POST['anniversary']);
	}

	//If there is no error, send the email
	if(!isset($hasError)) {
		$emailTo = 'info@mywebsite.co.uk'; //Put your own email address here
		$body = "Name: $name \n\nEmail: $email \n\nBirthday: $birthday \n\nAnniversary: $anniversary";
		$headers = 'From: http://www.mywebsite.co.uk <'.$emailTo.'>' . "\r\n" . 'Reply-To: ' . $email;

		mail($emailTo, $subject, $body, $headers);
		$emailSent = true;
	}
}
?>


using this script to capture information

Code: Select all

<?php if(isset($hasError)) { //If errors are found ?>
                <p class="error">Please check if you've filled all the fields with valid information. Thank you.</p>
              <?php } ?>
                <?php if(isset($emailSent) && $emailSent == true) { //If email is sent ?>
                <p><strong>Email Successfully Sent!</strong></p>
              <p>Thank you <strong><?php echo $name;?></strong> for using my contacting mywebsiteco.uk Your email was successfully sent. We will be in touch with you soon.</p>
              <?php } ?>
                <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" id="contactform">
                  <div>
                    <label for="name"><strong>Name:</strong></label>
                    <input type="text" size="50" name="contactname" id="contactname" value="" class="required" />
                  </div>
                  <div>
                    <label for="email"><strong>Email:</strong></label>
                    <input type="text" size="50" name="email" id="email" value="" class="required email" />
                  </div>
                  <div>
                      <p><label for="birthday"><strong>Birthday:</strong></label>
      <select name="b_day" id="b_day">
        
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="6">6</option>
        
        <option value="7">7</option>
        <option value="8">8</option>
        <option value="9">9</option>
        <option value="10">10</option>
        <option value="11">11</option>
        <option value="12">12</option>
        
        <option value="13">13</option>
        <option value="14">14</option>
        <option value="15">15</option>
        <option value="16">16</option>
        <option value="17">17</option>
        <option value="18">18</option>
        
        <option value="19">19</option>
        <option value="20">20</option>
        <option value="21">21</option>
        <option value="22">22</option>
        <option value="23">23</option>
        <option value="24">24</option>
        
        <option value="25">25</option>
        <option value="26">26</option>
        <option value="27">27</option>
        <option value="28">28</option>
        <option value="29">29</option>
        <option value="30">30</option>
        
        <option value="31">31</option>
        </select>
      <select name="b_month" id="b_month">
        <option value="1">January</option>
        <option value="2">February</option>
        <option value="3">March</option>
        <option value="4">April</option>
        
        <option value="5">May</option>
        <option value="6">June</option>
        <option value="7">July</option>
        <option value="8">August</option>
        <option value="9">September</option>
        <option value="10">October</option>
        
        <option value="11">November</option>
        <option value="12">December</option>
        </select>
      </p>
                  </div>
                  <div>
                    <label for="anniversary"><strong>Anniversary:</strong></label>
      <select name="anni_day" id="anni_day">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="6">6</option>
        <option value="7">7</option>
        <option value="8">8</option>
        
        <option value="9">9</option>
        <option value="10">10</option>
        <option value="11">11</option>
        <option value="12">12</option>
        <option value="13">13</option>
        <option value="14">14</option>
        
        <option value="15">15</option>
        <option value="16">16</option>
        <option value="17">17</option>
        <option value="18">18</option>
        <option value="19">19</option>
        <option value="20">20</option>
        
        <option value="21">21</option>
        <option value="22">22</option>
        <option value="23">23</option>
        <option value="24">24</option>
        <option value="25">25</option>
        <option value="26">26</option>
        
        <option value="27">27</option>
        <option value="28">28</option>
        <option value="29">29</option>
        <option value="30">30</option>
        <option value="31">31</option>
        </select>
      <select name="anni_month" id="anni_month">
        
        <option value="1">January</option>
        <option value="2">February</option>
        <option value="3">March</option>
        <option value="4">April</option>
        <option value="5">May</option>
        <option value="6">June</option>
        
        <option value="7">July</option>
        <option value="8">August</option>
        <option value="9">September</option>
        <option value="10">October</option>
        <option value="11">November</option>
        <option value="12">December</option>
        
        </select>
      <select name="anni_year" id="anni_year">
        <option value="1979">1979</option>
        <option value="1980">1980</option>
        <option value="1981">1981</option>
        <option value="1982">1982</option>
        <option value="1983">1983</option>
        
        <option value="1984">1984</option>
        <option value="1985">1985</option>
        <option value="1986">1986</option>
        <option value="1987">1987</option>
        <option value="1988">1988</option>
        <option value="1989">1989</option>
        
        <option value="1990">1990</option>
        <option value="1991">1991</option>
        <option value="1992">1992</option>
        <option value="1993">1993</option>
        <option value="1994">1994</option>
        <option value="1995">1995</option>
        
        <option value="1996">1996</option>
        <option value="1997">1997</option>
        <option value="1998">1998</option>
        <option value="1999">1999</option>
        <option value="2000">2000</option>
        <option value="2001">2001</option>
        
        <option value="2002">2002</option>
        <option value="2003">2003</option>
        <option value="2004">2004</option>
        <option value="2005">2005</option>
        <option value="2006">2006</option>
        <option value="2007">2007</option>
        
        <option value="2008">2008</option>
        <option value="2009">2009</option>
        </select>
                  </div>
                  <input type="submit" value="Send Message" name="submit" link="#"/>
                </form>
Please be gentle with me. Thanks
oscardog
Forum Contributor
Posts: 245
Joined: Thu Oct 23, 2008 4:43 pm

Re: PHP contact form

Post by oscardog »

When you submit the form with all fields filled in what does it do?

What output is on the screen etc?
onesnooze
Forum Newbie
Posts: 3
Joined: Sun Aug 15, 2010 1:47 pm

Re: PHP contact form

Post by onesnooze »

Hi,

This is the information I am getting.
"Please check if you've filled all the fields with valid information. Thank you."

After submit, it should say is:
"Email Successfully Sent!
Thank you test for using my contacting mywebsite.co.uk. Your email was successfully sent. We will be in touch with you soon."

Thanks
oscardog
Forum Contributor
Posts: 245
Joined: Thu Oct 23, 2008 4:43 pm

Re: PHP contact form

Post by oscardog »

onesnooze wrote:Hi,

This is the information I am getting.
"Please check if you've filled all the fields with valid information. Thank you."

After submit, it should say is:
"Email Successfully Sent!
Thank you test for using my contacting mywebsite.co.uk. Your email was successfully sent. We will be in touch with you soon."

Thanks
When you try to grab the birthday entered you're using 'birthday' when the field is called 'b_day'.

So change the select input to:

Code: Select all

<select name="birthday" id="birthday">
And then the same problem with anniversary, so change your select input to:

Code: Select all

<select name="anniversary" id="anniversary">
Should fix it.
onesnooze
Forum Newbie
Posts: 3
Joined: Sun Aug 15, 2010 1:47 pm

Re: PHP contact form

Post by onesnooze »

Hi, Thanks for that. The email is now sending, but the dates for 'birthday' and 'anniversary' is not coming through correctly. Only the day is coming through
I think it is because I have not specified the following sections to be transported

Code: Select all

<select name="b_month" id="b_month"><select name="anni_month" id="anni_month"><select name="anni_year" id="anni_year">


I have tried the following (+)

Code: Select all

//Check to make sure anniversary were entered
	if(trim($_POST['anniversary']+['anni_month']) == '') {
		$hasError = true;
	} else {
		$anniversary = trim($_POST['anniversary']);
	}
I have tried the following (,)

Code: Select all

//Check to make sure anniversary were entered
	if(trim($_POST['anniversary','anni_month']) == '') {
		$hasError = true;
	} else {
		$anniversary = trim($_POST['anniversary']);
	}
This causes a syntax error. Would anyone be able to help?
Thanks
Post Reply