Jump to content

Recommended Posts

Ok I dont understand why my php form keeps sending me blank emails. Because I have a checker with java script. Did I do something wrong in my coding with the php forms or is it just the javascript on the sites problem?

 

Here is the php form code:


<script language="JavaScript">
function checkForm()
{

var cname, caddress, cphone, cemail, ccontact;
with(window.document.msgform)
{
	cname    = name;
	caddress = address;
	cphone = phone;
	cemail    = email;
	ccontact   = contact;

}


   if(trim(cname.value) == '')
   {
      alert('Please enter your name');
      cname.focus();
      return false;
   }
   else if(trim(caddress.value) == '')
   {
      alert('Please enter your address');
      cemail.focus();
      return false;
   }
   else if(trim(cphone.value) == '')
   {
      alert('Please enter your phone number');
      cemail.focus();
      return false;
   }
   else if(!isEmail(trim(cemail.value)))
   {
      alert('Email address is not valid');
      cemail.focus();
      return false;
   }
   else if(trim(ccontact.value) == '')
   {
      alert('Please enter your contact person');
      cemail.focus();
      return false;
   }
   
   
else
{
	cname.value    = trim(cname.value);
	caddress.value = trim(caddress.value);
	cphone.value = trim(cphone.value);
	cemail.value   = trim(cemail.value);
	ccontact.value   = trim(ccontact.value);
	return true;
}


}


/*
Strip whitespace from the beginning and end of a string
Input : a string
*/
function trim(str)
{
return str.replace(/^\s+|\s+$/g,'');
}

/*
Check if a string is in valid email format. 
Returns true if valid, false otherwise.
*/
function isEmail(str)
{
var regex = /^[-_.a-z0-9]+@(([-a-z0-9]+\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i;
   	//regex = /^[-_.abcdefghijklmnopqrstuvwxyz0123456789]+@(([-abcdefghijklmnopqrstuvwxyz0123456789]+\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i;
return regex.test(str);
}
</script>

<form name="msgform" action="thankyou.php" method="post" > 
<table width="95%" border="0" cellspacing="1" class="tablestyle" cellpadding="1" align="center">

<tr><td>Name:</td>
<td><input type="text" name="name" size="27">
</td>
</tr>

<tr><td>Address:</td>
<td><input type="text" name="address" size="27">
</td>
</tr>

<tr> 
<td>Phone: </td>
<td> 
<input type="text" name="phone" size="27">
</td>
</tr>

<tr> 
<td>Email: </td>
<td> 
<input type="text" name="email" size="27">
</td>
</tr>

<tr> 
<td>Contact Person: </td>
<td> 
<input type="text" name="contact" size="27">
</td>
</tr>

<tr> 
<td valign=top>I would like to participate at the: </td>
<td valign=top> 

<input type="radio" name="level" value="5000">Platinum<BR>
<input type="radio" name="level" value="2500">Gold<BR>
<input type="radio" name="level" value="1000">Silver<br>
<input type="radio" name="level" value="500">Bronze <br><br>

</td>
</tr>

<tr> 
<td> 

<input type="radio" name="level" value="1250"option5<br>

</td>
</tr>



<tr><td colspan="2"><input type="submit" value="submit" name="submit" onClick="return checkForm();"><input type="reset" value="Reset"></td></tr>
</table></form> 

 

Here is the php process code:


<?php
$con = mysql_connect(""); //Replace with your actual MySQL DB Username and Password
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("sponsorship", $con); //Replace with your MySQL DB Name
$name=mysql_real_escape_string($_POST['name']); //This value has to be the same as in the HTML form file
$address=mysql_real_escape_string($_POST['address']); //This value has to be the same as in the HTML form file
$phone=mysql_real_escape_string($_POST['phone']); //This value has to be the same as in the HTML form file
$email=mysql_real_escape_string($_POST['email']); //This value has to be the same as in the HTML form file
$contact=mysql_real_escape_string($_POST['contact']); //This value has to be the same as in the HTML form file
$level=mysql_real_escape_string($_POST['level']); //This value has to be the same as in the HTML form file
$sql="INSERT INTO sponsorship (name,address,phone,email,contact,level) VALUES ('$name','$address','$phone','$email','$contact','$level')"; /*form_data is the name of the MySQL table where the form data will be saved.
name and email are the respective table fields*/
if (!mysql_query($sql,$con)) {
die('Error: ' . mysql_error());
}
?>




<?php

$name = $_POST["name"];
$address = $_POST["address"];
$phone = $_POST["phone"];
$email = $_POST["email"];
$contact = $_POST["contact"];
$level = $_POST["level"];




echo "Name: ". $name . " <br />";
echo "Address: ". $address . " <br />";
echo "Phone: ". $phone . " <br />";
echo "Email: ". $email . " <br />";
echo "Contact: ". $contact . " <br />";
echo "Level: ". $level . " and up. <br />";

$recipient = "my email";
$subject   = " subject ";
$message   = " 


'. name: .'$name

'. contact: .' $contact

'. address: .' $address 

'. phone: .' $phone 

'. email: .' $email

'. level: .' $level


";

mail($recipient, $subject, $message);

?>

 

i keep thinking its the javascript fault but i have a navigation menu which is made from javascript and it works fine. So it leaves me to think its something i did wrong with the form or php?

 

Can someone help me please? Thank you!

 

 

Link to comment
https://forums.phpfreaks.com/topic/213101-php-form-keeps-sending-me-blank/
Share on other sites

I think  (not sure though)the last bit of your php script isn't finished yet:

mail($recipient, $subject, $message);

i think it should look more like:

mail( "someone@example.com", "Subject: $subject",
  $message, "From: $email" );

 

Try it out maybe it works for you if not I have no idea at the moment. Might be a good idea to write a simplified mail function to isolate the problem.

lols on second thought:

 

look at this (your code):

$recipient = "my email";
$subject   = " subject ";
$message   = " 

 

This is the only moment this variable has show him self. I bet you know know what to do now. If not let me know :)

 

I'm a little confused. Why am I getting blank emails? Is it because of that section you showed?

 

I still get emails when the form is filled out. I just dont get why I get blank ones.

 

For validating forms is it better to use some sort of php script or are javascripts just as good?you know to stop form from sending me an email if the form is blank?

 

Thanks!

in your second script you are not checking that you effectively are getting values in your $_POST variables... you must check it:

simplified example:

IF (isset($_POST['var'])) {
  // here the code that send the email
{ else { echo "Error : You must fill the form... or what ever you want";}

 

I'm a little confused. Why am I getting blank emails? Is it because of that section you showed?

 

Yes!

Look at $message...

 

$message = '';  So it has the value of the stuff between ' and ' which is nothing because you didn't gave any other value afterwards.

 

Try this

$message ='why do i keep getting empty emails?';

  and now run the script

 

You need to fill that message up maybe something. Like this:

 

$message = $_POST['message_from_html'];  this way the value of your html form that has the "name of message_from_html" will be used and put in php to pass through the mail() function. But first do this so you know what your doing after all:

$message ='why do i keep getting empty emails?';

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.