php contact form not working

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
s-mac209
Forum Newbie
Posts: 3
Joined: Wed Jan 12, 2011 1:55 am

php contact form not working

Post by s-mac209 »

Hi there

Have tried other forums and thought i'd give this one a go...

Have been having a play with a wordpress theme that has a contact form built into it.

The problem is it doesn't seem to work.

After filling in details i get a success message but nothing turns up

http://dev.s-mac.co.nz

Would appreciate any help
kalpesh.mahida
Forum Commoner
Posts: 36
Joined: Wed Oct 06, 2010 7:09 am

Re: php contact form not working

Post by kalpesh.mahida »

your are using ajax to post entered data to sendmail.php file and further process is done by that file, look at that file and fix out your issues or you can put your code here so someone can look at and help you out.
s-mac209
Forum Newbie
Posts: 3
Joined: Wed Jan 12, 2011 1:55 am

Re: php contact form not working

Post by s-mac209 »

Hi - thanks for your reply

Heres is the code for the contact.php


<?php
/*
Template Name: Contact
*/
?>

<?php get_header(); ?>
<script type="text/javascript">
$(document).ready(function(){
$('#contact').ajaxForm(function(data) {
if (data==1){
$('#success').fadeIn("slow");
$('#bademail').fadeOut("slow");
$('#badserver').fadeOut("slow");
$('#contact').resetForm();
}
else if (data==2){
$('#badserver').fadeIn("slow");
}
else if (data==3)
{
$('#bademail').fadeIn("slow");
}
});
});
</script>
<!-- begin colLeft -->
<div id="colLeft">

<h1>Contact Us</h1>
<p><?php echo stripslashes(stripslashes(get_option('boldy_contact_text')))?></p>

<p id="success" class="successmsg" style="display:none;">Your email has been sent! Thank you!</p>

<p id="bademail" class="errormsg" style="display:none;">Please enter your name, a message and a valid email address.</p>
<p id="badserver" class="errormsg" style="display:none;">Your email failed. Try again later.</p>

<form id="contact" action="<?php bloginfo('template_url'); ?>/sendmail.php" method="post">
<label for="name">Your name: *</label>
<input type="text" id="nameinput" name="name" value=""/>
<label for="email">Your email: *</label>

<input type="text" id="emailinput" name="email" value=""/>
<label for="comment">Your message: *</label>
<textarea cols="20" rows="7" id="commentinput" name="comment"></textarea><br />
<input type="submit" id="submitinput" name="submit" class="submit" value="SEND MESSAGE"/>
<input type="hidden" id="receiver" name="receiver" value="<?php echo strhex(get_option('boldy_contact_email')); ?>"/>
</form>

</div>
<!-- end colleft -->

<?php get_sidebar(); ?>

<?php get_footer(); ?>

Thanks in advance
danwguy
Forum Contributor
Posts: 256
Joined: Wed Nov 17, 2010 1:09 pm
Location: San Diego, CA

Re: php contact form not working

Post by danwguy »

What does your sendmail.php look like? if you are getting the success message then that part works, it's the sending part that's not working, so need to take a look at sendmail.php. Care to post it so we can have a gander and see where the problem lies?
I could be totally off base, but I have been working on a very complicated send-application.php script for the entire day and I was getting the success redir but not the email message and the problem was in the send-application.php so that's my first thought with this.
s-mac209
Forum Newbie
Posts: 3
Joined: Wed Jan 12, 2011 1:55 am

Re: php contact form not working

Post by s-mac209 »

heres the sendmail.php


<?php
if(isset($_POST['submit'])) {
error_reporting(E_NOTICE);
function valid_email($str)
{
return ( ! preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $str)) ? FALSE : TRUE;
}
if($_POST['name']!='' && $_POST['email']!='' && valid_email($_POST['email'])==TRUE && strlen($_POST['comment'])>1)
{
$to = preg_replace("([\r\n])", "", hexstr($_POST['receiver']));
$from = preg_replace("([\r\n])", "", $_POST['email']);
$subject = "Website contact message from ".$_POST['name'];
$message = $_POST['comment'];

$match = "/(bcc:|cc:|content\-type:)/i";
if (preg_match($match, $to) ||
preg_match($match, $from) ||
preg_match($match, $message)) {
die("Header injection detected.");
}
$headers = "From: ".$from."\r\n";
$headers .= "Reply-to: ".$from."\r\n";

if(mail($to, $subject, $message, $headers))
{
echo 1; //SUCCESS
}
else {
echo 2; //FAILURE - server failure
}
}
else {
echo 3; //FAILURE - not valid email

}
}else{
die("Direct access not allowed!");
}

function hexstr($hexstr) {
$hexstr = str_replace(' ', '', $hexstr);
$hexstr = str_replace('\x', '', $hexstr);
$retstr = pack('H*', $hexstr);
return $retstr;
}

?>

Thanks
Post Reply