1

我正在开发一个静态网站,其中有一个联系我们页面。在这里,我想要做的是在提交联系表格时,它应该显示消息 - 电子邮件已成功发送。但问题是我正在调用 html 页面,我们无法在 html 视图中传递 php 消息。那么有什么办法可以完成。联系方式.php

<?php
$error = '';

$mailTo = $_POST['email'];
$mailFrom = 'info@sample.com';
//$headers  = 'MIME-Version: 1.0' . "\r\n";
//$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$fullname = $_POST['username'];
$phoneno = $_POST['mobile'];
$emailaddress = $_POST['email'];
$msgsubject =$_POST['message'];
$new = "\n";
$msg =  $fullname.$new.$emailaddress.$new.$phoneno.$new.$msgsubject;

$to      = $email;
    $subject = 'Inquiry';
    $messageclient = '<div>

<p>Thank you For Inquiry.</p>
<p> We will reach back to you shortly. Have a Nice Day!</p>
<p>Company © 2013</p>
</p></div>
';
    $headers = 'From: info@email.com' . "\r\n" .
        'Reply-To: info@email.com' . "\r\n" .
        'X-Mailer: PHP/' . phpversion();
    $headers .= "MIME-Version: 1.0\r\n"; 
    $headers .= "Content-type: text/html; charset=utf-8\r\n"; 
    $headers .= "From: Company<info@email.com>\r\n";
    //$res = mail($to, $subject, $message, $headers);

//$message ='Thank you For Inquiry. We will reach back to you shortly. Have a Nice Day';
mail( $mailTo , $subject,  $messageclient, $headers);

$message .= "<p>Name: $fullname</p><br /><p>Contact Number : $phoneno</p><br />        <p>Email: $emailaddress</p><br /><p>Message: $msgsubject</p>";

mail( $mailFrom, $subject,$message, $headers); 

header("location:home.html");
?>

非常感谢您的帮助,在此先感谢。

4

4 回答 4

2

这里有很多问题,但要回答你的问题,你不能在内容发送后重定向。

如果您添加ob_start()到页面顶部,它将缓冲内容并允许重定向。

之后,进一步重新阅读您的帖子,也许我误解了。看起来您不是在发送内容,这意味着您的重定向正在工作,但您想要的是在重定向后添加一条消息。

你有选择。

  1. 重定向到反映您要传达的信息的静态 HTML 页面。
  2. 重定向到具有向用户发送消息的逻辑的 PHP 页面。
  3. 使用 Ajax 发送电子邮件并且根本不重定向。
于 2013-03-05T19:43:54.903 回答
0

如果您可以配置 Web 服务器,则可以将其更改为将 html 页面视为 php 页面。例如在 APACHE 的 httpd.conf 中:

AddType application/x-httpd-php .php .htm .html

希望这对你有用。

于 2013-03-05T20:00:03.273 回答
0

您可能希望在提交时执行 ajax 请求以防止更改页面,或者在处理邮件功能后创建一个您将重定向到的登录页面

于 2013-03-05T19:43:16.187 回答
0

将此电子邮件发送功能作为 ajax 调用执行,并在成功时向用户显示成功消息。

于 2013-03-05T19:45:48.313 回答