Jump to content

Please help!!! My PHP contact form will not deliver properly...


Recommended Posts

Hi there! I am a mere Web designer trying to utilize this submit.php file in conjunction with my contact form and yet it is not sending the message to the email that is indicated...

 

Here is the script:

 

<?php

 

/* config start */

 

$emailAddress = 'sheilaschook@yahoo.com';

 

/* config end */

 

 

require "phpmailer/class.phpmailer.php";

 

session_name("fancyform");

session_start();

 

 

foreach($_POST as $k=>$v)

{

if(ini_get('magic_quotes_gpc'))

$_POST[$k]=stripslashes($_POST[$k]);

 

$_POST[$k]=htmlspecialchars(strip_tags($_POST[$k]));

}

 

 

$err = array();

 

if(!checkLen('name'))

$err[]='The name field is too short or empty!';

 

if(!checkLen('email'))

$err[]='The email field is too short or empty!';

else if(!checkEmail($_POST['email']))

$err[]='Your email is not valid!';

 

if(!checkLen('subject'))

$err[]='You have not selected a subject!';

 

if(!checkLen('message'))

$err[]='The message field is too short or empty!';

 

if((int)$_POST['captcha'] != $_SESSION['expect'])

$err[]='The captcha code is wrong!';

 

 

if(count($err))

{

if($_POST['ajax'])

{

echo '-1';

}

 

else if($_SERVER['HTTP_REFERER'])

{

$_SESSION['errStr'] = implode('<br />',$err);

$_SESSION['post']=$_POST;

 

header('Location: '.$_SERVER['HTTP_REFERER']);

}

 

exit;

}

 

 

$msg=

'Name: '.$_POST['name'].'<br />

Email: '.$_POST['email'].'<br />

IP: '.$_SERVER['REMOTE_ADDR'].'<br /><br />

 

Message:<br /><br />

 

'.nl2br($_POST['message']).'

 

';

 

 

$mail = new PHPMailer();

$mail->IsMail();

 

$mail->AddReplyTo($_POST['email'], $_POST['name']);

$mail->AddAddress($emailAddress);

$mail->SetFrom($_POST['email'], $_POST['name']);

$mail->Subject = "A new ".mb_strtolower($_POST['subject'])." from ".$_POST['name']." | contact form feedback";

 

$mail->MsgHTML($msg);

 

$mail->Send();

 

 

unset($_SESSION['post']);

 

if($_POST['ajax'])

{

echo '1';

}

else

{

$_SESSION['sent']=1;

 

if($_SERVER['HTTP_REFERER'])

header('Location: '.$_SERVER['HTTP_REFERER']);

 

exit;

}

 

function checkLen($str,$len=2)

{

return isset($_POST[$str]) && mb_strlen(strip_tags($_POST[$str]),"utf-8") > $len;

}

 

function checkEmail($str)

{

return preg_match("/^[\.A-z0-9_\-\+]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]{1,4}$/", $str);

}

 

?>

 

 

 

 

:'(

 

What am I doing wrong???

Try to simplify it some with a straight mail() function then work away from it slowly with tests. I don't have time today, otherwise I'd take a stab at it, but I'd first take a few steps back do a hardcoded mail() and work back from that and integrate it a piece at the time in your function.

$to = "sheilaschook@yahoo.com";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "someonelse@example.com";
$headers = "From: $from";
mail($to,$subject,$message,$headers);

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.