• ベストアンサー

PHPの書き方について

メニュー用のPHPと 処理用のPHPに分けて作成しようと考えています。 メニュー用のボタンをクリックすると 処理用のPHPが実行される仕組みです。 この事について幾つか質問させて頂きます。 1.通常、このように分けて作るのでしょうか? 2.分けて作る場合は、どのようにして   メニュー用のPHPから処理用のPHPを呼び出すのでしょうか? 3.分けずに作る場合は   どのようにプログラムを書けば   見やすくなるのでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

分ける場合は単にリンクで呼び出すだけです。 //メニュー用PHP <ol> <li><a href="hoge1.php">処理1</a></li> <li><a href="hoge2.php">処理2</a></li> </ol> 分けない場合(一つのファイルで済ます)は、通常GETでパラメーターを渡します //メニュー部分 <ol> <li><a href="?mode=1">処理1</a></li> <li><a href="?mode=2">処理2</a></li> </ol> //処理部分 <?php if($_GET["mode"] == 1){ //処理1のスクリプト }elseif($_GET["mode"] == 2){ //処理2のスクリプト } ?> 1.  分けるかどうかは作成者の設計によります。処理をファイル毎に管理したいならば、分けた方が良いでしょう。また、分けた場合でも共通部分はincludeやrequireで外部読込みにする方が後で管理が楽です(HTMLヘッダーとか共通関数とか)。 2. 単にリンクで呼び出します。 3. 分けない場合は先のサンプルを参照して下さい。見やすくするには、処理が分岐した部分を関数化すると良いです。全体の流れはifやswitch等の制御構文で簡単にまとめて、処理部分は分かりやすい名前を付けて関数として記述します。ファイルが大きくなりすぎたら(200行を超える)、外部ファイルにして読込ませる、と言う事も出来ます。 試行錯誤を繰り返しながら、美しいソースにして行って下さい。 参考まで。

wee
質問者

補足

ご返事有り難うございました。 とても参考になりました。 2点ほど気になる点があるのですが・・・。 1. >分けない場合(一つのファイルで済ます)は、通常GETでパラメーターを渡します どうして通常はGETで渡すのでしょうか? 「POST」の方がセキュリティが高いという記事を 読んだことがあるのですが それは間違えなのでしょうか? 2.frameで画面を分離した場合に 一つのファイルで済ますことは出来ますか? お手数ですが よろしくお願いします

その他の回答 (4)

  • uki629
  • ベストアンサー率23% (40/172)
回答No.5

>>frameは敬遠される傾向にあるのであまりお勧めはできません。 >どうして最近は敬遠されているのでしょうか? SEO的に不利だから

  • wp_
  • ベストアンサー率54% (132/242)
回答No.4

>どうして最近は敬遠されているのでしょうか? ・スクロールバーがデザイン上の妨げになる ・技術者にとって管理の煩雑さはframe,non frameどちらも変わらない ・httpの(無駄な)リクエスト回数が減る こんなところですかね。 デザインパターンについて調べてみると良いかと思います。 ただiframeがこっそり使われていたり、 スクロールバーは消すことが出来るのでそれを念頭に置いた開発というのも 全くないわけではないです。

wee
質問者

お礼

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

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

>「POST」の方がセキュリティが高いという記事を >読んだことがあるのですが >それは間違えなのでしょうか? 間違いです。セキュリティ上は同等です。 (ほんのわずか優勢なのはpostの方がデータを送りにくいという性質がある ことくらい) >frameで画面を分離した場合に >一つのファイルで済ますことは出来ますか? 別に分離しなくても一つで済ませますし、frameで分離した時点で 一つのファイルではありませんね。 メニューをつねに表示したいならframeもありですが、最近は frameは敬遠される傾向にあるのであまりお勧めはできません。 基本的には#1さんのようなパラメータ渡しでやるのがよろしいかと。

wee
質問者

補足

ご返事有り難うございました。 大変に参考になりました。 >メニューをつねに表示したいならframeもありですが、最近は >frameは敬遠される傾向にあるのであまりお勧めはできません。 どうして最近は敬遠されているのでしょうか? ご教示して頂けたら幸いです。

  • uki629
  • ベストアンサー率23% (40/172)
回答No.2

テンプレートエンジン(Smartyなど)を使ってプログラム部分とHTML部分を分ける。

wee
質問者

お礼

ご返事有り難うございました。 そのような方法もあるんですね 初めて知りました。

関連するQ&A