dポイントプレゼントキャンペーン実施中!

URLの変わらないページをたまにみかけますが、どういう仕組みになっているのでしょうか?

仮にこういうURLでアクセスしたとして、
http://host.com/saite1/index.php

実行したら
http://host.com/saite1/
に変わる

何か機能のボタンを押して画面の表現が変わっても
URLは
http://host.com/saite1/


一連の同じ機能範囲の動作は常に同じURLになっているWEBページをたまにみかけます。


これはどのような仕組みになっているのでしょうか?

PHPでそれは実現できるのでしょうか?

また、「あーそれ、・・・だからやんない方がいいよ」的な意見もよろしくお願いします。

A 回答 (3件)

全ての画面遷移がindex.php(あるいはサーバーで設定されたtopファイル)を通じて行われる作りのことを「フロントコントローラー」と呼びます。

制御方法は様々ですが、下の方が仰られているとおり、何らかのパラメタをindex.phpに返すことで、それをif文なりswitch文なりで制御して、画面遷移を行います。

下の回答の方はPOSTまたはGETでと仰っておられますが、
GETでパラメタを渡すと

http://host.com/saite1/index.php?xx=xx

のように後ろにパラメタが付いてきますので、POSTでのみ可能です。
    • good
    • 0
この回答へのお礼

ありがとうございます。
「フロントコントローラー」ですか、検索してみます。

お礼日時:2006/04/19 09:32

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させたりする事で多少は分かり易くなります。
    • good
    • 0
この回答へのお礼

ありがとうございます。参考になりました。

お礼日時:2006/04/19 09:33

「URLの変わらないページ」の説明が今ひとつ


理解できませんが、index.phpが省略できるかどうか?
という質問だと理解すれば、そういう設定さえして
おけばできます。はっきりいえばphpは関係ありません。
httpサーバーの機能と考えて結構です。
ダラダラ長いURLをきらういわゆるアクセシビリティ
という考え方ですね。

機能のボタンを押して画面の表現が変わっても、
urlが変わらない・・・
これは大きく3つ考えられます。

(1)FORMをPOST方式でPHPに投げているケース。
PHPはプログラムですから、パラメータをもらえば
それにみあった別の表示をすることができます。

(2)DHTMLを使っているケース。
HTMLはダイナミックに表示を操作することが
できます。同じページ内で、大幅に文章や画像を
入れ替えれば、おっしゃるようなことができます。
またajaxと総称される方式でPHPと組合せて使う
こともできます。

(3)フレームを使うケース。
フレームをつかったページの場合、外枠と、
中身のhtmlが別々なので、表示されるurlは
変更されません。
    • good
    • 0
この回答へのお礼

ありがとうございます。参考になりました。

お礼日時:2006/04/19 09:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!