0

PHPでコードブロックの実行を遅らせるにはどうすればよいですか?

    if ($qry->execute($leads)) {
    echo'<div class="note success">' . 
            $_POST["first_name"] . ', Your entry was successful!
        </div>';

        // Set up email params

このコードは、「成功」メッセージを表示してから、ユーザーに電子メールを送信します。メッセージを表示した後、ユーザーをリダイレクトしたい。

これはPHPで可能ですか?JavaScript を使用する必要がありますか?

ありがとう!

4

3 に答える 3

13

PHP コードの実行を遅らせたい場合は、sleep関数を使用できます。ただし、クライアントのリダイレクトを遅らせたいようです。これは、JavaScript、<meta>更新、およびRefreshヘッダーで行うことができます。

Refreshヘッダーの使用:

header('Refresh: «timeout in seconds»; URL=http://example.com/myurl');

<meta>リフレッシュの使用:

    <meta http-equiv="refresh" content="«timeout in seconds»; URL=http://example.com/myurl">

JavaScript の使用:

setTimeout(function(){
 location.replace("/myurl");
},«timeout in milliseconds»);

これら 3 つを組み合わせて使用​​し、これらのリダイレクト テクノロジを無効にしているユーザーには、手動でクリックできるリンクを含むメッセージを表示するのが最善の方法です。

于 2012-06-01T21:43:16.630 に答える
3

すでに出力が行われているため、HTTP ヘッダーのリダイレクトを行うことはできません。代わりに、メタリフレッシュを設定して、<head>HTML ドキュメントでユーザーをリダイレクトする必要があります。

<meta http-equiv="refresh" content="10;url=http://www.example.com/newpage.php" /> 
于 2012-06-01T21:43:56.597 に答える
2

PHP はサーバー側の言語であり、ユーザーに何かが表示される前に実行されます。

これは、ページがレンダリングされた後に実行する必要があるため、Javascript の方が適切なソリューションです。

于 2012-06-01T21:44:10.357 に答える