PHP Form Help

I have the below form.php for the contact form on my website. For some reason it is not allowing me to provide the URL.

When the form is submitted nothing is received. However, when I remove the line of code “info”, it sends the email then. Please help, my clients need this resolved as soon as possible. Thank You so much.

[php]<?php

if(file_exists(’…/…/…/…/wp-load.php’)) :
include ‘…/…/…/…/wp-load.php’;
else:
include ‘…/…/…/…/…/wp-load.php’;
endif;

// Clean up the input values
foreach($_POST as $key => $value) {
if(ini_get(‘magic_quotes_gpc’))
$_POST[$key] = stripslashes($_POST[$key]);

$_POST[$key] = htmlspecialchars(strip_tags($_POST[$key]));
}

// Assign the input values to variables for easy reference
$name = $_POST[‘name’];
$email = $_POST[‘email’];
$message = $_POST[‘message’];
$info = $_POST[‘info’];

// Test input values for errors
$errors = array();
if(strlen($name) < 2) {
if(!$name) {
$errors[] = “You must enter a name.”;
} else {
$errors[] = “Name must be at least 2 characters.”;
}
}
if(!$email) {
$errors[] = “You must enter an email.”;
} else if(!validEmail($email)) {
$errors[] = “You must enter a valid email.”;
}
if(strlen($message) < 10) {
if(!$message) {
$errors[] = “You must enter a message.”;
} else {
$errors[] = “Message must be at least 10 characters.”;
}
}

if($errors) {
// Output errors and die with a failure message
$errortext = “”;
foreach($errors as $error) {
$errortext .= “

  • ”.$error."
  • ";
    }
    die(“The following errors occured:
      ”. $errortext ."
    ");
    }

    // Send the email
    $to = $data[‘text_contact_email’];
    $subject = ‘Contact Form: $name’;
    $message = ‘$message’;
    $headers = ‘From: $email’;
    $info = 'Date: ’ . $date . “\n”;
    $info .= 'Ceremony Site: ’ . $ceremonysite . “\n”;
    $info .= 'Reception Site: ’ . $receptionsite . “\n”;

    mail($to, $subject, $message, $headers, $info);

    // Die with a success message
    die(“Thank you for contacting BG Productions! Your message has been sent. I’ll be in touch pretty soon!”);

    // A function that checks to see if
    // an email is valid
    function validEmail($email)
    {
    $isValid = true;
    $atIndex = strrpos($email, “@”);
    if (is_bool($atIndex) && !$atIndex)
    {
    $isValid = false;
    }
    else
    {
    $domain = substr($email, $atIndex+1);
    $local = substr($email, 0, $atIndex);
    $localLen = strlen($local);
    $domainLen = strlen($domain);
    if ($localLen < 1 || $localLen > 64)
    {
    // local part length exceeded
    $isValid = false;
    }
    else if ($domainLen < 1 || $domainLen > 255)
    {
    // domain part length exceeded
    $isValid = false;
    }
    else if ($local[0] == ‘.’ || $local[$localLen-1] == ‘.’)
    {
    // local part starts or ends with ‘.’
    $isValid = false;
    }
    else if (preg_match(’/\.\./’, $local))
    {
    // local part has two consecutive dots
    $isValid = false;
    }
    else if (!preg_match(’/^[A-Za-z0-9\-\.]+$/’, $domain))
    {
    // character not valid in domain part
    $isValid = false;
    }
    else if (preg_match(’/\.\./’, $domain))
    {
    // domain part has two consecutive dots
    $isValid = false;
    }
    else if(!preg_match(’/^(\\.|[A-Za-z0-9!#%&`_=\/$’*+?^{}|~.-])+$/’,
    str_replace("\\","",$local)))
    {
    // character not valid in local part unless
    // local part is quoted
    if (!preg_match(’/^"(\\"|[^"])+"$/’,
    str_replace("\\","",$local)))
    {
    $isValid = false;
    }
    }
    if ($isValid && !(checkdnsrr($domain,“MX”) || checkdnsrr($domain,“A”)))
    {
    // domain not found in DNS
    $isValid = false;
    }
    }
    return $isValid;
    }

    ?>[/php]

    Here is the site http://www.bgproonline.com/home/

    your mail() function should only consist of

    [php]
    mail($to, $subject, $message, $headers);
    [/php]

    Depending on where you want info to go you need to concatenate it onto one of those for options (my guess is message).

    [php]
    $to = $data[‘text_contact_email’];
    $subject = ‘Contact Form: $name’;
    $message = ‘$message’;
    $message .= 'Date: ’ . $date . “\n”;
    $message .= 'Ceremony Site: ’ . $ceremonysite . “\n”;
    $message .= 'Reception Site: ’ . $receptionsite . “\n”;
    $headers = ‘From: $email\r\n’;

    mail($to, $subject, $message, $headers);
    [/php]

    also if you’re message has any html to it you should add this to the headers…
    [php]
    $headers = “Content-Type: text/html; charset=ISO-8859-1\r\n”;
    $headers .= ‘From: $email\r\n’;
    [/php]

    Thank you so much for the very quick response we are getting close.

    This is the email I receive from the submission.

    $messageDate: test1
    Ceremony Site: test2
    Reception Site: test3

    Also, the subject line is appearing as Contact Form: $name and the reply to email is appearing as $emailrn.

    I removed the quotes around $message and cleaned everything up and made it uniform…

    [php]
    $to = $data[‘text_contact_email’];
    $subject = "Contact Form: " . $name;
    $message = $message;
    $message .= "Date: " . $date . “\n”;
    $message .= "Ceremony Site: " . $ceremonysite . “\n”;
    $message .= "Reception Site: " . $receptionsite . “\n”;
    $headers = "From: " . $email . “\r\n”;

    mail($to, $subject, $message, $headers);
    

    [/php]

    You are so awesome! How do I give you points/karma for this? Also, what lines of code do I need to remove to make the message field non-required?

    I believe you need to have 25 posts to give me karma…

    if you remove the following lines the message field should not be required
    [php]
    if(strlen($message) < 10) {
    if(!$message) {
    $errors[] = “You must enter a message.”;
    } else {
    $errors[] = “Message must be at least 10 characters.”;
    }
    }
    [/php]

    One last minor thing, the confirmation email.

    The message and name fields are on the same line. How do I add a break to the next line for the name?

    qsdfgsdgdfgdfgdfgdName: Martelle Pitts
    Email: [email protected]
    Date: september 1, 2012
    Ceremony Site:
    Reception Site:

    I’m not seeing where that is in your code but you should be able to do…
    [php]

    ” . $variable
    [/php]

    or

    [php]
    $variable . “

    [/php]

    depending on which side you want/need the break

    This is what I received.

    find you right here
    Name: Monica & Jeremy Burkett
    Email: [email protected]
    Date: June 1, 2012
    Ceremony Site: ceremony type
    Reception Site: reception site

    Never mind I just used “/n” to add a break. Thanks for all your help again!

    Sponsor our Newsletter | Privacy Policy | Terms of Service