![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
URLの変わらないページをたまにみかけますが、どういう仕組みになっているのでしょうか?
仮にこういうURLでアクセスしたとして、
http://host.com/saite1/index.php
実行したら
http://host.com/saite1/
に変わる
何か機能のボタンを押して画面の表現が変わっても
URLは
http://host.com/saite1/
一連の同じ機能範囲の動作は常に同じURLになっているWEBページをたまにみかけます。
これはどのような仕組みになっているのでしょうか?
PHPでそれは実現できるのでしょうか?
また、「あーそれ、・・・だからやんない方がいいよ」的な意見もよろしくお願いします。
No.3ベストアンサー
- 回答日時:
全ての画面遷移がindex.php(あるいはサーバーで設定されたtopファイル)を通じて行われる作りのことを「フロントコントローラー」と呼びます。
制御方法は様々ですが、下の方が仰られているとおり、何らかのパラメタをindex.phpに返すことで、それをif文なりswitch文なりで制御して、画面遷移を行います。下の回答の方はPOSTまたはGETでと仰っておられますが、
GETでパラメタを渡すと
http://host.com/saite1/index.php?xx=xx
のように後ろにパラメタが付いてきますので、POSTでのみ可能です。
No.2
- 回答日時:
POSTデータ、GETデータがある時、IsSet()を利用する事で実現可能です。
【index.php】
<?php
if (isset($_POST['data'])) {
print("2ページ目");
}
else {
print <<< page1
1ページ目<br>
<form method="post" action="index.php">
<input type="text" name="data" value="1">
<input type="submit" value="送信">
page1;
}
?>
但し、そういう事が出来るからと言って、沢山のページを1ファイルに記述すると
当然の如く解読が煩雑になってきます。
沢山のページを1ファイルで記述したい場合、
判定を記述した後、ページ毎に関数化させた関数を呼び出したり
外部ファイルをincludeさせたりする事で多少は分かり易くなります。
No.1
- 回答日時:
「URLの変わらないページ」の説明が今ひとつ
理解できませんが、index.phpが省略できるかどうか?
という質問だと理解すれば、そういう設定さえして
おけばできます。はっきりいえばphpは関係ありません。
httpサーバーの機能と考えて結構です。
ダラダラ長いURLをきらういわゆるアクセシビリティ
という考え方ですね。
機能のボタンを押して画面の表現が変わっても、
urlが変わらない・・・
これは大きく3つ考えられます。
(1)FORMをPOST方式でPHPに投げているケース。
PHPはプログラムですから、パラメータをもらえば
それにみあった別の表示をすることができます。
(2)DHTMLを使っているケース。
HTMLはダイナミックに表示を操作することが
できます。同じページ内で、大幅に文章や画像を
入れ替えれば、おっしゃるようなことができます。
またajaxと総称される方式でPHPと組合せて使う
こともできます。
(3)フレームを使うケース。
フレームをつかったページの場合、外枠と、
中身のhtmlが別々なので、表示されるurlは
変更されません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
日本からのアクセスと他国から...
-
テキストリンクを2回クリックし...
-
phpでの二重投稿防止について
-
PHPの値受け渡しとアンカーを一...
-
違法アップロードについて
-
onedrive にexcelファイルをア...
-
MySQLのベースに書かれたプログ...
-
トランザクションが原因?DBに...
-
バッチを用いたフォルダの自動移動
-
データベースにアクセスして結...
-
VBSの「MsgBox」について
-
ダウンロードファイル名の文字...
-
動画共有サイトの作り方
-
拡張子php画像をjpg画像等に変...
-
PHPでファイルをダウンロードさ...
-
php.ini を設定を変更すると再...
-
ヒアドキュメントの中で演算子...
-
PHPで、エラーがない場合のみ画...
-
jpgraphで表示されない
-
.phpファイルが、表示されない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
URLの変わらないページをPHPで...
-
テキストリンクを2回クリックし...
-
リダイレクトでPOST
-
検索結果が複数ページになるとき
-
LARAVEL モデル
-
例●●.php#00pリロードページ内...
-
【WordPress】メディアの一覧出力
-
header関数でページ移動する場...
-
cURLの413エラーの解決方法を教...
-
URLでスラッシュ区切りでパラメ...
-
携帯端末auのみpostで送ったデ...
-
phpでの二重投稿防止について
-
日本からのアクセスと他国から...
-
Internet Explorer ではこのペ...
-
ページ移動時にフォームから値...
-
phpinfoでloaded modulesが表示...
-
onedrive にexcelファイルをア...
-
フォントの色を変えるには?
-
PHPのif文でその処理を途中で抜...
-
別ファイルの変数を呼び出した...
おすすめ情報