Создать сообщение об успешной отправке формы php

0

Я пытаюсь сделать сообщение формы php успешным сообщением после успешной отправки. Я новичок в php, и я не уверен, как это сделать. Поскольку он сидит сейчас, после отправки, сайт просто перезагружается в верхней части страницы. Я бы хотел, чтобы он обновился в контактном div и отобразил сообщение об успешном завершении.

Как связаться с div html:

<div class="contact-wrapper" >
  <div class="contact">
    <div class="contact-left" id="contact">
        <?php
        if (isset($_REQUEST['email'])) {
            echo "Thank you for your message.";
        }
        $mail_form = include('php/mail_form.php'); ?>
    </div> <!-- end div contact -->

Контакт с PHP:

<?php
function spamcheck($field)
  {
  //filter_var() sanitizes the e-mail
  //address using FILTER_SANITIZE_EMAIL
  $field=filter_var($field, FILTER_SANITIZE_EMAIL);

  //filter_var() validates the e-mail
  //address using FILTER_VALIDATE_EMAIL
  if(filter_var($field, FILTER_VALIDATE_EMAIL))
    {
    return TRUE;
    }
  else
    {
    return FALSE;
    }
  }

if (isset($_REQUEST['email']))
  {//if "email" is filled out, proceed

  //check if the email address is invalid
  $mailcheck = spamcheck($_REQUEST['email']);
  if ($mailcheck==FALSE)
    {
    echo "Invalid input";
    }
  else
    {//send email
    $email = $_REQUEST['email'] ;
    $subject = $_REQUEST['subject'] ;
    $message = $_REQUEST['message'] ;
    mail("[email protected]", "Subject: $subject",
    $message, "From: $email" );
    header("location: index.php");
    }
  }
?>
Теги:
forms
email

2 ответа

4

Попробуйте этот код... Вам нужно некоторое время остановить свой скрипт, чтобы пользователь мог увидеть сообщение об успешном завершении или сбое. Без сна пользователь не сможет увидеть сообщение, поскольку заголовок будет выполняться немедленно.

if(mail("[email protected]", "Subject: $subject",$message, "From: $email" )){
   echo "Thank you for your message";
   sleep(2); // sleep for 2 seconds. Enough to display success message
   //header will execute after 2000ms(2s)
   header("location: index.php");
}else{
   echo "Unable to send message";
   sleep(2); // sleep for 2 seconds 
   header("location: index.php");
}

или попробуйте код, указанный ниже:

в контакте с PHP

if(mail("[email protected]", "Subject: $subject",$message, "From: $email" )){
   header("location: index.php?status=1");
}else{ 
   header("location: index.php?status=0");
}

в index.php

 if(isset($_GET['status'])){
     $status = $_GET['status'];
     if($status == 1){
        echo "Thank you for your message";
     }else if($status == 0){
        echo "Unable to send message";
     }
 }
  • 0
    действительно спишь, когда я впервые услышал это, не могли бы вы объяснить?
  • 0
    sleep приостанавливает выполнение сценариев php на некоторое время (время передается в качестве аргументов) ... php.net/manual/en/function.sleep.php . Приведенный выше сценарий остановится на 2 секунды, а затем выполнение начнется с header () ..
Показать ещё 8 комментариев
0
$name = mysql_real_escape_string($_POST['name']);
$email = mysql_real_escape_string($_POST['email']);
$message = mysql_real_escape_string($_POST['message']);

if(isset($_POST['contactrgtr']))
{
$query = "insert into contact_us(name,email,message)values('$name','$email','$message')";
$res = mysql_query($query);
if($res){
     $message = 'Your Message Successfully Sent';
     include_once('contact.php'); } ' 

Затем на странице contact.php вы должны определить <?php $message?>.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню