联系谢谢你页面

时间:2016-03-24 11:04:13

标签: php html forms contact

目前,我的联系表单在提交时会显示另一个页面,其中包含一条警告,表示感谢您与我们联系,但是,我想要它做的就是谢谢你联系我们作为弹出窗口或屏幕上的文字,在任何地方说谢谢你,但只是在与联系表格相同的页面上

    <?php
$field_name = $_POST['cf_name'];
$field_email = $_POST['cf_email'];
$field_message = $_POST['cf_message'];

$mail_to = ' dsaas@asadsd.asdasd';
$subject = 'Message from a site visitor '.$field_name;

$body_message = 'From: '.$field_name."\n";
$body_message .= 'E-mail: '.$field_email."\n";
$body_message .= 'Message: '.$field_message;

$headers = 'From: '.$field_email."\r\n";
$headers .= 'Reply-To: '.$field_email."\r\n";

$mail_status = mail($mail_to, $subject, $body_message, $headers);

if ($mail_status) { ?>
    <script language="javascript" type="text/javascript">
        alert('Thank you for the message. We will contact you shortly.');
        window.location = 'contact_page.html';
    </script>
<?php
}
else { ?>
    <script language="javascript" type="text/javascript">
        alert('Message failed. Please, send an email to gordon@template-help.com');
        window.location = 'contact_page.html';
    </script>
<?php
}
?>



<form  action="contact.php" style="height:auto;"  class="form"  method="post">
    <h1>Your name</h1>
    <input type="text"  class="form textbox"  name="cf_name"><br>
    <h1>Your e-mail</h1>
    <input type="text" class="form textbox"  name="cf_email"><br>
    <h1>Message</h1>
    <textarea  class="form textbox"  name="cf_message"></textarea><br>
  <input  type="submit" value="Send">

我尝试将if语句替换为

   if ($mail_status) { ?>
    <div><h1>thank you for submitting the contcat form</h1> </div>
    <?php
    }

但这仍然是另一页

1 个答案:

答案 0 :(得分:0)

您需要在发送之前验证您的数据。

if(isset($_POST['submit']){

    $field_name = isset($_POST['cf_name'])? $_POST['cf_name']:'';
    $field_email = isset($_POST['cf_email'])? $_POST['cf_email']:'';
    $field_message = isset($_POST['cf_message'])? $_POST['cf_message']:'';

    if(empty($field_name){
       $error = 'Field Name is blank';
    }elseif(empty($field_email) || filter_var($field_email, FILTER_VALIDATE_EMAIL)){
       $error = 'Email is invalid';
    }elseif(empty($field_message)){
       $error = 'Message is blank';
    }else{        
      $mail_to = ' dsaas@asadsd.asdasd';
      $subject = 'Message from a site visitor '.$field_name;
      $body_message = 'From: '.$field_name."\n";
      $body_message .= 'E-mail: '.$field_email."\n";
      $body_message .= 'Message: '.$field_message;
      $headers = 'From: '.$field_email."\r\n";
      $headers .= 'Reply-To: '.$field_email."\r\n";
      $mail_status = mail($mail_to, $subject, $body_message, $headers);
     if($mail_status){ ?>
       <script language="javascript" type="text/javascript">
        alert('Thank you for the message. We will contact you shortly.');
        document.getElementById("myForm").reset();//reset the form
    </script>
  <?php }else{  ?>
         <script language="javascript" type="text/javascript">
        alert('Message failed. Please, send an email to gordon@template-help.com');
        //document.getElementById("myForm").reset();//Reset the form
    </script>
 <?php  }
  }
}

由于您不想转到另一个,您可以通过指定下面的操作在同一页面发布,或者您不一定需要这样做。

<form  action="<?php echo $_SERVER['PHP_SELF'];?>" 
   style="height:auto;"  class="form" id="myForm"  method="post">
    <h1>Your name</h1>
    <input type="text"  class="form textbox"  name="cf_name"><br>
    <h1>Your e-mail</h1>
    <input type="text" class="form textbox"  name="cf_email"><br>
    <h1>Message</h1>
    <textarea  class="form textbox"  name="cf_message"></textarea><br>
  <input  type="submit" value="Send">
 <div class="error">
    <?php if(!empty($error)){ echo $error; } ?>
 </div>

希望这可能会有所帮助。