Jump to content

form not sending email


mallen

Recommended Posts

This form is not sending the email. It doesn't give any error. If you miss a field it will tellyou. But if you fill them out it still says

The following required fields have not been filled in:

Is there any missing here? I know I had this form and others working for a client and maybe something got changed.

// process the email
if (array_key_exists('send', $_POST)) {
  $to = '[email protected]'; // use your own email address
  $subject = 'Register';
  
  // list expected fields
  $expected = array('firstname','lastname','email','company','address','city','state','zipcode','country','phone',  'cellphone','fax','status','password','interests');
  // set required fields
  $required = array('firstname','lastname','email');
  // create empty array for any missing fields
  $missing = array();
  
  // assume that there is nothing suspect
  $suspect = false;
  // create a pattern to locate suspect phrases
  $pattern = '/Content-Type:|Bcc:|Cc:/i';
  
  // function to check for suspect phrases
  function isSuspect($val, $pattern, &$suspect) {
    // if the variable is an array, loop through each element
    // and pass it recursively back to the same function
    if (is_array($val)) {
      foreach ($val as $item) {
        isSuspect($item, $pattern, $suspect);
        }
      }
    else {
      // if one of the suspect phrases is found, set Boolean to true
      if (preg_match($pattern, $val)) {
        $suspect = true;
        }
      }
    }
  
  // check the $_POST array and any sub-arrays for suspect content
  isSuspect($_POST, $pattern, $suspect);
  
  if ($suspect) {
    $mailSent = false;
    unset($missing);
    }
  else {
    // process the $_POST variables
    foreach ($_POST as $key => $value) {
      // assign to temporary variable and strip whitespace if not an array
      $temp = is_array($value) ? $value : trim($value);
      // if empty and required, add to $missing array
      if (empty($temp) && in_array($key, $required)) {
        array_push($missing, $key);
        }
      // otherwise, assign to a variable of the same name as $key
      elseif (in_array($key, $expected)) {
        ${$key} = $temp;
        }
      }
    }
  
  // validate the email address
  if (!empty($email)) {
    // regex to ensure no illegal characters in email address 
    $checkEmail = '/^[^@]+@[^\s\r\n\'";,@%]+$/';
    // reject the email address if it doesn't match
    if (!preg_match($checkEmail, $email)) {
      array_push($missing, 'email');
      }
    }
  
  // go ahead only if not suspect and all required fields OK
  if (!$suspect && empty($missing)) {
    // set default values for variables that might not exist
    $subscribe = isset($subscribe) ? $subscribe : 'Nothing selected';
    $interests = isset($interests) ? $interests : array('None selected');
    $characteristics = isset($characteristics) ? $characteristics : array('None selected');
    
    
    // build the message
    $message = "First Name: $firstname\n\n";
    $message .= "Last Name: $lastname\n\n";
    $message .= "Email: $email\n\n";
    $message .= "Company: $company\n\n";
    $message .= "Address: $address\n\n";
    $message .= "City: $city\n\n";
    $message .= "State/Providence: $state\n\n";
    $message .= "Zipcode: $zipcode\n\n";
    $message .= "Country: $country\n\n";
    $message .= "Phone: $phone\n\n";
    $message .= "Cell Phone: $cellphone\n\n";
    $message .= "Fax: $fax\n\n";
    $message .= 'Interests: '.implode(', ', $interests)."\n\n";
    
    // limit line length to 70 characters
    $message = wordwrap($message, 70);
    
    // create additional headers
    $additionalHeaders = 'From: [email protected]>';
    if (!empty($email)) {
      $additionalHeaders .= "\r\nReply-To: $email";
      }
    
    // send it  
    $mailSent = mail($to, $subject, $message, $additionalHeaders);
    if ($mailSent) {
      // $missing is no longer needed if the email is sent, so unset it
      unset($missing);
      
//$query = "INSERT INTO members (id, firstname, email)
//VALUES (0,'{$_POST['firstname']}','{$_POST['email']}')";
$query = "INSERT INTO members (id, firstname, lastname, email, company, address, city, state, zipcode, country, phone, cellphone, fax, status, password)
VALUES (0,'{$_POST['firstname']}','{$_POST['lastname']}','{$_POST['email']}','{$_POST['company']}','{$_POST['address']}','{$_POST['city']}','{$_POST['state']}','{$_POST['zipcode']}','{$_POST['country']}','{$_POST['phone']}','{$_POST['cellphone']}','{$_POST['fax']}','{$_POST['status']}','{$_POST['password']}')";
if (@mysql_query ($query)) {


print '';
}
else
{ print "<p>Could not enter data becuase: <b>" . mysql_error() ."</b>. The query was $query.</p>";
}
mysql_close();




  
      
      
      }
    }
  }

?>



           <?php    
    if (isset($missing)) {
    echo '<p>The following required fields have not been filled in:</p>';
    echo '<ul>';
    foreach($missing as $item) {
      echo "<li>$item</li>";
    }
    echo '</ul>';
}
elseif ($_POST && $mailSent) {
echo '<p><strong>Your message has been sent. Thank you for your feedback.</strong></p>';
    }

?>
      

        <form id="feedback" method="post" action="">
         <table border="0">
  <tr>
    <td height="35" colspan="2" class="subheader">Register Form</td>
    <td height="25"> </td>
    <td height="25"> </td>
  </tr>
  <tr>
    <td height="25"> </td>
    <td height="35"> </td>
    <td height="25"> </td>
    <td height="25"> </td>
  </tr>
  <tr>
    <td width="98" height="25"> <label for="firstname">First Name: </label></td>
    <td width="195" height="35"><input name="firstname" id="firstname" type="text" class="formbox" <?php if (isset($missing)) {
                  echo 'value="'.htmlentities($_POST['firstname']).'"';} ?>/> </td>
    <td width="72" height="25"><label for="lastname">Last Name:</label></td>
    <td width="247" height="25"><input name="lastname" id="lastname" type="text" class="formbox" <?php if (isset($missing)) {
                  echo 'value="'.htmlentities($_POST['lastname']).'"';} ?>/></td>
  </tr>
  <tr>
    <td height="35"> <label for="Email">Email:</label></td>
    <td height="10"> <input name="email" id="email" type="text" class="formbox" <?php if (isset($missing)) {
                  echo 'value="'.htmlentities($_POST['email']).'"';} ?>/></td>
    <td height="10"><label for="company">Company: </label></td>
    <td height="10"> <input name="company" id="company" type="text" class="formbox" <?php if (isset($missing)) {
                  echo 'value="'.htmlentities($_POST['company']).'"';} ?>/></td>
  </tr>
  <tr>
    <td height="35"><label for="address">Address: </label></td>
    <td> <input name="address" id="address" type="text" class="formbox" <?php if (isset($missing)) {
                  echo 'value="'.htmlentities($_POST['address']).'"';} ?>/></td>
    <td> <label for="city">City:</label> </td>
    <td> <input name="city" id="city" type="text" class="formbox" <?php if (isset($missing)) {
                  echo 'value="'.htmlentities($_POST['city']).'"';} ?>/></td>
  </tr>
  <tr>
    <td height="35"><label for="state">State / Providence: </label></td>
    <td> <input name="state" id="state" type="text" class="formbox" <?php if (isset($missing)) {
                  echo 'value="'.htmlentities($_POST['state']).'"';} ?>/></td>
    <td> <label for="zipcode">Zip code:</label></td>
    <td> <input name="zipcode" id="zipcode" type="text" class="formbox" <?php if (isset($missing)) {
                  echo 'value="'.htmlentities($_POST['zipcode']).'"';} ?>/></td>
  </tr>
  <tr>
    <td height="35"><label for="country">Country:</label></td>
    <td> <input name="country" id="country" type="text" class="formbox" <?php if (isset($missing)) {
                  echo 'value="'.htmlentities($_POST['country']).'"';} ?>/></td>
    <td><label for="phone">Phone:</label></td>
    <td><input name="phone" id="phone" type="text" class="formbox" <?php if (isset($missing)) {
                  echo 'value="'.htmlentities($_POST['phone']).'"';} ?>/></td>
  </tr>
  <tr>
    <td height="35"><label for="cellphone">Cell Phone:</label></td>
    <td><input name="cellphone" id="cellphone" type="text" class="formbox"<?php if (isset($missing)) {
                  echo 'value="'.htmlentities($_POST['cellphone']).'"';} ?> /></td>
    <td><label for="fax">Fax Number:</label></td>
    <td><input name="fax" id="fax" type="text" class="formbox" <?php if (isset($missing)) {
                  echo 'value="'.htmlentities($_POST['fax']).'"';} ?>/></td>
  </tr>
  <tr>
    <td height="35"><label for="password">Choose Password:</label></td>
    <td><input name="password" id="password" type="password" class="formbox" <?php if (isset($missing)) {
                  echo 'value="'.htmlentities($_POST['password']).'"';} ?>/>
    </td>
    <td><input type="hidden" name="status" value="1"></td>
    <td> </td>
  </tr>
</table>
        
         
                
                
         
               
               
        
               
              
       
              
        
               
<table>
  <tr>
    <td colspan="2" valign="top" class="subheader"> </td>
    <td valign="top"> </td>
  </tr>
  <tr>
    <td colspan="2" valign="top" class="subheader">Additional Info Requested:</td>
    <td valign="top"> </td>
  </tr>
  <tr>
    <td width="198" valign="top"><div>
          <p>
                <input type="checkbox" name="interests[]" value="NLP Practitioner Program" id="NLPPrac" 
                <?php
                $OK = isset($_POST['interests']) ? true : false;
                if ($OK && isset($missing) && in_array('NLPPractitionerProgram', $_POST['interests'])) { ?>
                checked="checked"
                <?php } ?>
                />
                <label for="anime">NLP Practitioner Program</label>
            </p>
            
            <p>
                <input type="checkbox" name="interests[]" value="Hypnosis & NLP Intensive" id="HYPnos" 
                <?php
                $OK = isset($_POST['interests']) ? true : false;
                if ($OK && isset($missing) && in_array('Hypnosis & NLP Intensive', $_POST['interests'])) { ?>
                checked="checked"
                <?php } ?>
                />
                <label for="Hypnosis">Hypnosis & NLP Intensive</label>
            </p>
            
             <p>
                <input type="checkbox" name="interests[]" value="NLP ChangeMastery" id="NLPChange" 
                <?php
                $OK = isset($_POST['interests']) ? true : false;
                if ($OK && isset($missing) && in_array('NLP ChangeMastery', $_POST['interests'])) { ?>
                checked="checked"
                <?php } ?>
                />
                <label for="Hypnosis">NLP ChangeMastery ™</label>
          </p>
           <p>
                <input type="checkbox" name="interests[]" value="Meta-Programs Mastery" id="MetaChange" 
                <?php
                $OK = isset($_POST['interests']) ? true : false;
                if ($OK && isset($missing) && in_array('Meta Programs Mastery', $_POST['interests'])) { ?>
                checked="checked"
                <?php } ?>
                />
                <label for="Hypnosis">Meta-Programs Mastery™</label>
          </p>
          
           <p>
                <input type="checkbox" name="interests[]" value="Conversational Trance" id="ConvTrance" 
                <?php
                $OK = isset($_POST['interests']) ? true : false;
                if ($OK && isset($missing) && in_array('Conversational Trance', $_POST['interests'])) { ?>
                checked="checked"
                <?php } ?>
                />
                <label for="Hypnosis">Conversational Trance™</label>
          </p>          </td>
    <td width="207" valign="top"><div>
      <p>
                <input type="checkbox" name="interests[]" value="Conversational NLP" id="ConvNLP" 
                <?php
                $OK = isset($_POST['interests']) ? true : false;
                if ($OK && isset($missing) && in_array('ConversationalNLP', $_POST['interests'])) { ?>
                checked="checked"
                <?php } ?>
                />
                <label for="Conversational NLP">Conversational NLP™</label>
            </p>
            
            <p>
                <input type="checkbox" name="interests[]" value="Identity Compass Training" id="IdentityCompass" 
                <?php
                $OK = isset($_POST['interests']) ? true : false;
                if ($OK && isset($missing) && in_array('Identity Compass Training', $_POST['interests'])) { ?>
                checked="checked"
                <?php } ?>
                />
                <label for="Hypnosis">Identity Compass® Training</label>
            </p>
            
             <p>
                <input type="checkbox" name="interests[]" value="Trance-Forming Identity" id="Trance" 
                <?php
                $OK = isset($_POST['interests']) ? true : false;
                if ($OK && isset($missing) && in_array('Trance Forming Identity', $_POST['interests'])) { ?>
                checked="checked"
                <?php } ?>
                />
                <label for="Hypnosis">Trance-Forming Identity ™ </label>
          </p>
           
             <p>
                <input type="checkbox" name="interests[]" value="Identity-Coaching" id="Identity" 
                <?php
                $OK = isset($_POST['interests']) ? true : false;

                if ($OK && isset($missing) && in_array('IdentityCoaching', $_POST['interests'])) { ?>
                checked="checked"
                <?php } ?>
                />
                <label for="Hypnosis">Identity-Coaching ™ </label>
          </p>  
          <p>
                <input type="checkbox" name="interests[]" value="IMNLP & Hypnosis Membership" id="IMHypMem" 
                <?php
                $OK = isset($_POST['interests']) ? true : false;
                if ($OK && isset($missing) && in_array('IMNLPHypnosisMembership', $_POST['interests'])) { ?>
                checked="checked"
                <?php } ?>
                />
                <label for="Hypnosis">IMNLP & Hypnosis Membership</label>
          </p>  
          
          
              </td>
    <td width="209" valign="top"><div>
        <p>
                <input type="checkbox" name="interests[]" value="ETC WebEx Online Courses" id="ETCWebEx" 
                <?php
                $OK = isset($_POST['interests']) ? true : false;
                if ($OK && isset($missing) && in_array('ETC WebEx Online Courses', $_POST['interests'])) { ?>
                checked="checked"
                <?php } ?>
                />
                <label for="anime">ETC™ WebEx Online Courses</label>
            </p>
            
            <p>
                <input type="checkbox" name="interests[]" value="NLP Master Practitioner Program" id="NLPPrac" 
                <?php
                $OK = isset($_POST['interests']) ? true : false;
                if ($OK && isset($missing) && in_array('NLP Master Practitioner Program', $_POST['interests'])) { ?>
                checked="checked"
                <?php } ?>
                />
                <label for="Hypnosis">NLP Master Practitioner Program</label>
            </p>
            
             <p>
                <input type="checkbox" name="interests[]" value="NLP In Hypnosis Immersion" id="NLPHyp" 
                <?php
                $OK = isset($_POST['interests']) ? true : false;
                if ($OK && isset($missing) && in_array('NLP In Hypnosis Immersion', $_POST['interests'])) { ?>
                checked="checked"
                <?php } ?>
                />
                <label for="Hypnosis">NLP In Hypnosis Immersion</label>
          </p>
           <p>
                <input type="checkbox" name="interests[]" value="ExecuSkills" id="ExecSkill" 
                <?php
                $OK = isset($_POST['interests']) ? true : false;
                if ($OK && isset($missing) && in_array('ExecuSkills', $_POST['interests'])) { ?>
                checked="checked"
                <?php } ?>
                />
                <label for="Hypnosis">ExecuSkills™</label>
          </p>          </td>
  </tr>
</table>

        
            
          
          
            
            
<p>
                <input name="send" id="send" type="submit" value="Send message" />
          </p>
          
        </form>  

Link to comment
https://forums.phpfreaks.com/topic/121148-form-not-sending-email/
Share on other sites

Just as I thought the script works fine. It always has. Something was not right on the clients server. Now my client's host is telling him "In the php script I should add and stipulate a “from line” or a referrer so that it doesn’t default to www user." Why would I need this? It always worked and it just stopped working. It works fine on other servers or hosts :confused:

Archived

This topic is now archived and is closed to further replies.

×
×
  • 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.