【问题标题】:Pause php to show message before reconnecting在重新连接之前暂停 php 以显示消息
【发布时间】:2014-03-31 15:07:21
【问题描述】:

好的,所以我在网站上制作了一个表格,以便有人可以写下他们的信息并将消息提交到电子邮件。然后它将它们重定向回网站的主页,我遇到的问题是它没有显示消息何时发送,它只是自动将我带回主页。我怎样才能放一点延迟,以便它显示电子邮件已发送?也许我需要让它在消息框中弹出?自从我使用 php 以来已经有一段时间了,所以我有点生疏了。

<?php
    ob_start();

    $name = $_POST['name'];
    $email = $_POST['email'];
    $phone = $_POST['phone'];
    $message = $_POST['message'];
    $from = 'From: Subject';
    $to = 'myemailhere@example.com';
    $subject = 'Subject';

    $body = "From: $name\n E-Mail: $email\n Phone: $phone\n Message:\n $message";

    if ($_POST['submit']) {
        if (mail ($to, $subject, $body, $from)) { 
            echo '<p>Your message has been sent!</p>';
        } else { 
            echo '<p>Something went wrong, go back and try again!</p>'; 
        }
    }

    $url = 'http://example.com';

    while(ob_get_status())
    {
        ob_end_clean();
    }

    header("Location: $url");
?>

我还用通用信息替换了一些东西,对不起,你们没有收到我的电子邮件。

【问题讨论】:

  • 在成功页面上使用元刷新
  • PHP 是服务器端...使用元刷新或 JavaScript / jQuery 来控制浏览器。

标签: php


【解决方案1】:

您不能在服务器端轻松地做到这一点。最好的办法是返回一个包含消息的页面,并在不久之后通过 javascript 或 META 标记重定向。

Redirect website after certain amount of time查看答案

【讨论】:

    【解决方案2】:

    您只能在输出任何 html 之前发送重定向标头。您是否考虑过使用定时元 html 重定向?

    <meta http-equiv="refresh" content="5; url=http://homepage.com/">
    

    或js:

    window.location.href = "http://homepage.com";
    

    注意:您也可以不重定向,而是让用户知道表单已成功提交,并将他们链接到他们之前的页面。

    例如:感谢您的提交,点击这里返回我们的网站。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多