質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

3146閲覧

php sleep()を記述した箇所までの処理は表示させたい。

earnest_gay

総合スコア615

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2017/01/02 18:42

編集2017/01/02 18:44

5秒後にページを移動します。
というphpページがあります。

遷移はphpのheaderで行いたいので

sleep(5); header( "Location: " .(empty($_SERVER["HTTPS"]) ? "http://" : "https://") . $_SERVER["HTTP_HOST"] . dirname($_SERVER["REQUEST_URI"])."/".$cfg_set['FILE_NAME_LOGIN'] ); exit;

とすれば確かに5秒後には移動できますが、
sleep(5);より上に記述しているJSで

5秒後にページを移動します。
4秒後にページを移動します。
3秒後にページを移動します。
2秒後にページを移動します。
1秒後にページを移動します。

とカウントダウンを動かしてブラウザに表示させているのが表示されなくなってしまいます。

sleep(5);を記述した場合。
イメージ説明

sleep(5);を記述しなかった場合。
イメージ説明

この場合どうすれば良いでしょうか?
やりたいことは、
sleep()を記述した箇所までの処理は表示させて
sleep()を記述した箇所以降の処理を遅らせたい。
です。

遷移はphpのheaderで行いたい理由は、ページを戻すことができないことが可能だからです。
JSのlocation.hregで遷移してしまうと、遷移前のページに戻ることが可能ではあるのでそれはしたくないのです。

外部ファイルも絡んでいるのでコピペで動作しませんが一応、ソースです。

<?php //autoloadによる全ファイル自動読込。 require_once(__DIR__ . '/lib/Loader.php'); require_once(__DIR__ . '/lib/config/set_config.php'); //メール配信トークンを取得 $token = filter_input(INPUT_GET, 'token'); $obj = new CreateAccount($cfg_set); $mainRegistration = $obj->mainRegistration($token); $obj->var_dumpre($obj->msg); ?> <!DOCTYPE html> <html> <head> <meta http-equiv="content-language" content="ja"> <meta charset="UTF-8"> <meta name="robots" content="index,follow"> <meta name="description" content=""> <meta name="keywords" content=""> <meta name="author" content=""> <title>アカウント登録完了</title> <link rel="stylesheet" href="" /> <script type="text/javascript" src=""></script> </head> <header class=""> </header> <body> <header class=""> </header> <article> <!-- 本登録完了後した場合--> <?php if($mainRegistration == true) : ?> <!-- 本登録完了した時点から5秒計測 --> <script type="text/javascript"> count = 5; //カウントの初期値 setInterval('countDown()',1000); //1秒毎にcountup()を呼び出し function countDown() { if(count > 0){ count--; //減算 document.getElementById("counter").innerHTML=count; } } </script> <p>本登録が完了しました。</p> <p><span id="counter">5</span>秒後にログインページへ移動します。</p> <?php sleep(5);//5秒後にログンページへ遷移。 //header( "Location: " .(empty($_SERVER["HTTPS"]) ? "http://" : "https://") . $_SERVER["HTTP_HOST"] . dirname($_SERVER["REQUEST_URI"])."/".$cfg_set['FILE_NAME_LOGIN'] ); //exit; ?> <?php else : ?> <?php endif; ?> </article> </body> <footer> <nav> </nav> </footer> </html>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

カウントダウンを JavaScript でやっているなら、ページ遷移も JavaScript で行いましょう。

遷移はphpのheaderで行いたい理由は、ページを戻すことができないことが可能だからです。

そんなことないんだからさ。

投稿2017/01/02 18:51

編集2017/01/02 18:53
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

earnest_gay

2017/01/02 18:59

JSでできるならしたいのですが、 JSで前ページに戻せなくする方法はどうするのでしょうか?
退会済みユーザー

退会済みユーザー

2017/01/02 19:07 編集

ユーザービリティの観点から、そんなことはするものではありません。 なぜブラウザバックさせたくないのかという情報を提示すべきです。
earnest_gay

2017/01/02 19:07

そうするべきかどうかという質問ではなく、そうするにはどうすれば良いかという質問なのですが
退会済みユーザー

退会済みユーザー

2017/01/02 19:08

そういう質問だということはわかってます。
退会済みユーザー

退会済みユーザー

2017/01/02 19:10

プログラムからブラウザの動きを制御することは、セキュリティ上、ブラウザにそのような機能は持たされていない。
guest

0

自己解決

location.replace()で解決。

投稿2017/01/02 19:13

earnest_gay

総合スコア615

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/01/02 22:15

> php sleep()を記述した箇所までの処理は表示させたい。 これを解決できるコードでは無いと思いますが。。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問