联系表格在Chrome中工作,而不是在IE / Firefox中

时间:2014-05-12 01:32:38

标签: php forms google-chrome firefox contact-form

我的网站上的联系表单有问题,http://www.techcom.co.nz/

它在谷歌浏览器上工作正常,但在IE和Firefox上它不会发送任何消息,只是重定向回到页面顶部/刷新页面。

以下是表单的php代码:     

// EDIT THE FOLLOWING LINE BELOW AS REQUIRED

$send_email_to = "techcomnz@gmail.com";

function send_email($name,$email,$email_subject,$email_message)
{
global $send_email_to;  

$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
$headers .= "From: ".$email. "\r\n";

$message = "<strong>Email = </strong>".$email."<br>";
$message .= "<strong>Name = </strong>".$name."<br>";
$message .= "<strong>Message = </strong>".$email_message."<br>";
@mail($send_email_to, $email_subject, $message,$headers);
return true;
}

function validate($name,$email,$message,$subject)
{
$return_array = array();
$return_array['success'] = '1';
$return_array['name_msg'] = '';
$return_array['email_msg'] = '';
$return_array['message_msg'] = '';
$return_array['subject'] = '';

if($email == '')
{
$return_array['success'] = '0';
$return_array['email_msg'] = 'email is required';
}
else
{
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
if(!preg_match($email_exp,$email)) {
  $return_array['success'] = '0';
  $return_array['email_msg'] = 'enter valid email.';  
 }
}

if($name == '')
{
 $return_array['success'] = '0';
 $return_array['name_msg'] = 'name is required';
}
else
{
  $string_exp = "/^[A-Za-z .'-]+$/";
 if (!preg_match($string_exp, $name)) {
  $return_array['success'] = '0';
 $return_array['name_msg'] = 'enter valid name.';
}
}


if($subject == '')
{
 $return_array['success'] = '0';
 $return_array['subject_msg'] = 'subject is required';
}

if($message == '')
{
 $return_array['success'] = '0';
 $return_array['message_msg'] = 'message is required';
}
else
{
if (strlen($message) < 2) {
  $return_array['success'] = '0';
  $return_array['message_msg'] = 'enter valid message.';
}
}
return $return_array;
}

$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$subject = $_POST['subject'];

$return_array = validate($name,$email,$message,$subject);
if($return_array['success'] == '1')
{
send_email($name,$email,$subject,$message);
}

header('Content-type: text/json');
echo json_encode($return_array);
die();

?>

这是html:

    <fieldset id="contact_form">
      <div id="msgs"> </div>
      <form id="cform" name="cform" method="post" action="">
        <input type="text" id="name" name="name" value="Full Name*" onfocus="if(this.value == 'Full Name*') this.value = ''"
                        onblur="if(this.value == '') this.value = 'Full Name*'" />
        <input type="text" id="email" name="email" value="Email Address*" onfocus="if(this.value == 'Email Address*') this.value = ''"
                        onblur="if(this.value == '') this.value = 'Email Address*'" />
        <input type="text" id="subject" name="subject" value="Subject*" onfocus="if(this.value == 'Subject*') this.value = ''"
                        onblur="if(this.value == '') this.value = 'Subject*'" />
        <textarea id="msg" name="message" onfocus="if(this.value == 'Your Message*') this.value = ''"
                        onblur="if(this.value == '') this.value = 'Your Message*'">Your Message*</textarea>
        <button id="submit" class="button" style=""> Send Message</button>
      </form>
    </fieldset>

非常感谢任何帮助。

此致

1 个答案:

答案 0 :(得分:0)

将action属性留空将导致大多数浏览器通过使用GET或POST中的数据重新加载表单数据到当前页面。

如果您打算这样做,请尝试完全删除action="",因为众所周知这会导致旧浏览器出现问题。