3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

metaタグを用いたリダイレクト機能で躓いた件

Posted at

#概要
HTMLにおける<meta>タグを使用した
リダイレクト機能をテストした際に
指定URLに飛ばずに四苦八苦し記録です。

#背景
基礎からのMySQLを進める途中、
まさにその基礎勉強に飽き飽きし、
PHPの学習に飛んだ時の話です。

phpの話に入ったばかりの課題が
表題の件でした。
(最初にやることじゃなくね…?)

#開発環境
MacOS Mojave
PHP 7.1.23
Apache 2.4.39
使用ブラウザ Safari

#内容

初期に書いたコードは以下の通りでした。
文法は「基礎からのMySQL」に基づいていますが、
ちょっとだけアレンジしています。

test.php
<?php
print "<head>";
print " <meta http-equiv='refresh' content=5; URL='http://www.softbank.jp/'>";
print "</head>";
print "<body>";
print "5秒後にソフトバンクのページへ移動します";
print "</body>";
?>

何とも言えないクソコードですね。
出力結果を見てみましょう。

5秒後にソフトバンクのページへ移動します

↓5秒後…

5秒後にソフトバンクのページへ移動します

ページは変わらず、永遠と5秒ずつ同じページを
更新し続けています。
書籍の説明では、5秒後に
指定したURL先にジャンプするはずなのですが…

#対処
ググりにググり、リダイレクト機能について調査
しましたが、ほとんどのサイトが上記の記述で
説明されていました。

ところが、ある一つのサイトだけ
違った記述方法でした。

その記述方法を用いて訂正したコードを
下記に示します。

test.php
<?php
print "<head>";
//シングルクオートの位置が違う
print " <meta http-equiv='refresh' content='5; URL=http://www.softbank.jp/'>";
print "</head>";
print "<body>";
print "5秒後にソフトバンクのページへ移動します";
print "</body>";
?>

訂正前はURLのみをシングルクオートで囲っていましたが

訂正前
<meta http-equiv='refresh' content=5; URL='http://www.softbank.jp/'>

訂正後はcontentで指定する秒数の前からシングルクオートで
囲っています。

訂正後
<meta http-equiv='refresh' content='5; URL=http://www.softbank.jp/'>

結果、出力は以下の通りになりました。

5秒後にソフトバンクのページへ移動します

↓5秒後…

(ソフトバンクホームページ)

成功しましたね。

#結局何が原因なの?
現時点で分かっていません。
教えてエロい人。

#参考書籍
基礎からのMySQL
参考サイト

3
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?