0

The following codes are responsible of sending mails using Mail() function. The problem that I'm facing is when an email is received, there is nothing (in other words no data is shown in the email). I tested all the functions and they are working properly.

<style>
#ajax_form {width:410px;font-family:verdana,arial;font-size:12px}
#ajax_form td{font-family:verdana,arial;font-size:12px}
#ajax_form_header {font-family:verdana,arial;font-size:1.3em;font-weight:bold;text-align:center}
#returned_value{font-family:verdana,arial;text-align:center;font-size:12px;color:#000000}
#go {border:1px solid #CCCCCC;background:#FFF}
</style>
<script type="text/javascript" src="cform.js"></script>

<div id="ajax_form">
<form>
<div id="ajax_form_header">Contact Us Form</div>
<br />
<table width="350" border="0" align="center" cellpadding="4" cellspacing="0">
  <tr> 
    <td><label>Your Name:</label></td>
    <td><input type="text" id="name" style="width:100%" /></td>
  </tr>
  <tr> 
    <td><label>Your Email:</label></td>
    <td><input type="text" id="email" style="width:100%" /></td>
  </tr>
  <tr> 
    <td><label>Your Subject:</label></td>
    <td><input type="text" id="subject" style="width:100%" /></td>
  </tr>
  <tr> 
    <td colspan="2">
        <label>Your Message:</label><br /><br />
        <textarea name="body" style="width:100%;height:160px" id="body"></textarea>
    </td>
  </tr>
  <tr align="center"> 
    <td colspan="2"><input type="button" value="Submit" id="submit" onClick="return check_values();"></td>
  </tr>
</table>
</form>
  <br />
  <div align="center"><!-- leave this link please --><a href="http://www.freecontactform.com/ajax_form.php">Ajax Contact Form</a></div><br /><br />
    <div id="confirmation" style="display:none" align="center"></div>
</div>

cform.js code:

var http = createRequestObject();
var areal = Math.random() + "";
var real = areal.substring(2,6);

function createRequestObject() {
    var xmlhttp;
    try { xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); }
  catch(e) {
    try { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
    catch(f) { xmlhttp=null; }
  }
  if(!xmlhttp&&typeof XMLHttpRequest!="undefined") {
    xmlhttp=new XMLHttpRequest();
  }
    return  xmlhttp;
}

function sendRequest() {
    var rnd = Math.random();
    var name = escape(document.getElementById("name").value);
    var email = escape(document.getElementById("email").value);
    var subject = escape(document.getElementById("subject").value);
    var body = escape(document.getElementById("body").value);

    try{
    http.open('POST',  'pform.php');
    http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    http.onreadystatechange = handleResponse;
        http.send('name='+name+'&email='+email+'&subject='+subject+'&body='+body+'&rnd='+rnd);
    }
    catch(e){}
    finally{}
}

function check_values() {
    var valid = '';

    var name = document.getElementById("name").value;
    var email = document.getElementById("email").value;
    var subject = document.getElementById("subject").value;
    var body = document.getElementById("body").value;
    if(trim(name) == "" ||
        trim(email) == "" ||
        trim(subject) == "" ||
        trim(body) == "") {
            alert("Please complete all fields");
    } else {
        if(isEmail(email)) {
            document.getElementById("submit").disabled=true;
            document.getElementById("submit").value='Please Wait..';
            sendRequest();
        } else {
            alert("Email appears to be invalid\nPlease check and try again");
            document.getElementById("email").focus();
            document.getElementById("email").select();
        }
    }
}

function handleResponse() {
    try{
    if((http.readyState == 4)&&(http.status == 200)){
        var response = http.responseText;
      document.getElementById("confirmation").innerHTML = response;
      document.getElementById("confirmation").style.display ="";
        }
  }
    catch(e){}
    finally{}
}

function isUndefined(a) {
   return typeof a == 'undefined';
}

function trim(a) {
    return a.replace(/^s*(S*(s+S+)*)s*$/, "$1");
}

function isEmail(a) {
   return (a.indexOf(".") > 0) && (a.indexOf("@") > 0);
}

pform.php file:

include 'cform_config.php';

if(!isset($rnd) || !isset($name) || !isset($email) || !isset($subject) || !isset($body)) {
    echo $error_message;
    die();
}

    $email_from = $email;
    $email_subject = "Contact Form: ".stripslashes($subject);
    $email_message = "Please find below a message submitted by '".stripslashes($name);
    $email_message .="' on ".date("d/m/Y")." at ".date("H:i")."\n\n";
    $email_message .= stripslashes($body);

    $headers = 'From: '.$email_from."\r\n" .
   'Reply-To: '.$email_from."\r\n" .
   'X-Mailer: PHP/' . phpversion();

    mail($email_it_to, $email_subject, $email_message, $headers);

    echo "<b>$confirmation</b>";
    die();

cform_config.php file:

  $page_title = "Contact Us Form";
  $email_it_to = "your_own_email_address@some_domain.com";
  $error_message = "Please complete the form first";
  $confirmation = "Thank you, your message has been successfully sent.";

I tracked the check_values() function following with sendRequest() function and I found nothing wrong

1
  • $email_message .= stripslashes($body); what $body ?? Commented Oct 8, 2014 at 20:55

2 Answers 2

3

$email_message .= stripslashes($body); should be
$email_message .= stripslashes($email_message );. $body doesn't exist.

(I don't know why you are using stripslashes() here or anywhere in your code. It should not be necessary).

Sign up to request clarification or add additional context in comments.

6 Comments

just checking ,when some one like you does it , im thinking there is a reason and not a typo
@Dagon It happens to the best of us. After braining all day at some point it starts to slip up. That's how I know it's time to stop. At least for a little while.
@Dagon underscore? why ?" - Far as I know, overscores don't exist; or... do they?
underscore, its hooking up in a mine. not to be confused with a silentscore which is hooking up with a mime
@Nasser should be $_POST['email'] etc you are posting to pform.php
|
0

As @Dagon said, the problem was with $_POST['email']. Therefore, I have to add this part at the beginning of pform.php file.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.