• ベストアンサー

PHPの書き方について

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

  • wee
  • お礼率19% (62/318)
  • PHP
  • 回答数5
  • ありがとう数5

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

  • ベストアンサー
回答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

  • PHPを使って作成したボタンをクリックすると他のPHPの関数を呼び出す

    PHPを使って作成したボタンをクリックすると他のPHPの関数を呼び出す処理を 作りたいのですが、 ボタンのクリックイベントを表現する方法は JavaScriptで記述する方法がいいのでしょうか? その場合、JavaScriptからPHP関数を呼び出すには どのように処理をすればいいのかいくら検索しても 出てこなかったため質問をしてみました。 いい処理方法があったら教えてください。

  • phpでのログアウトについて

    phpで会員制サイトの制作を勉強しています。 データベースへはPDOで接続しています。 MySQLデータベースを使用しています。 セッション変数($_SESSION["email"])の有無を使用したログイン方法を使用しています。 セッション変数の破棄(ログアウト処理)について質問があります。 前提として、現在会員制サイト制作の勉強で「ログアウト後は必ずTOPページに遷移する」という形にこだわっています。 ちなみに現在使っているログアウトの方法は 1、 全ページ共通の、ページ上部に表示されるメインメニューに <form method="post" name="logout" action="toppage.php"> <input type="hidden" name="logout" value="true"> <input type="submit" value="ログアウト"> </form> でログアウトボタンを作成し、 ログアウトボタンが押されたらtrueという値を持った$_POST["logout"]を トップページ(toppage.php)に送る。 2、トップページ(toppage.php)に画面遷移させ、 $logout = filter_input(INPUT_POST, 'logout'); if($logout=="true"){ unset( $_SESSION["email"] ); } でもしも$_POST["logout"]がtrueなら セッション変数$_SESSION["email"]を破棄する というプログラムによりログイン・ログアウトを管理しています。 きちんと動いてはいるのですが、不満が1つあります。 願わくばログアウトボタンをformタグのsubmitで作るのではなく、 <a href="toppage.php">ログアウト</a> とリンクを使用して作成したいです。 このようにリンクを使用する場合、遷移後のTOPページ(toppage.php)でセッション変数$_SESSION["email"]を破棄するには、どのようなプログラムを記述すれば良いのでしょうか? ネットで調べたりもしましたが、ほとんどのサイトで紹介していたものは、 ログアウトリンクをクリックすると、ログアウト処理確認専用の画面(「ログアウトしました!」とだけ書かれたような画面)に遷移し、セッション変数を破棄するものばかりでした・・・ 私個人としてはログアウト処理が完了した旨を報告する画面をワンクッション置くのは、あまり実用的ではない気がして好みません・・・ 巷にあふれているようなサイトではログアウトボタンをクリックすると TOPページに遷移するようなサイトばかりなので、 phpを使用した場合、どうやったらそのような仕組みになるのか考えた上で、 今のへんてこなログアウト処理プログラムに至りました。 ごちゃごちゃしていないもっと良いログアウト処理プログラムはないでしょうか? ご回答、よろしくお願いします。

    • ベストアンサー
    • PHP
  • phpとhtmlについて分からない部分があります

    すいません、初めてphpを勉強していまして、 簡単な動作をするphpを試したりしているのですが、実際のhtmlと合わせて使う上で 根本的に分からない事があります。 現在xamppを使ってローカルでphpを作動させています。(全て初心者サイトに書いてある通りに しました) そこに test.phpと test2.phpを2つ用意し、test.phpにラジオボタンなどを作って、formから値を飛ばして test2.phpに処理(選択したラジオボタンによって写真などを並び替えて表示するプログラム)するようにしました。 とりあえず動作自体は問題なく終わり、任意の順番どおり写真が並び替えられました。 ここで質問なのですが私はhtmlの中にラジオボタンを作り、値をphpに送って、結果を再度 htmlに表示させたいのですが、どうしたら良いのでしょうか。 現在ですとボタンを押すとブラウザのアドレスバーが以下のよう変わるので、ページが飛ばされているように思います。 http://localhost/test.php ↓ http://localhost/test2.php 私が行いたいのは (1)htmlのサイトにラジオボタンを置く ↓ (2)別のphpファイルへ値を飛ばして任意の処理 ↓ (3)処理結果を再度htmlに表示する 私はhtmlにphpを埋め込む形ではなく、あくまで別ファイルで処理をして結果を戻したいのですが (3)を行う場合htmlに「処理の結果をココに表示する」というプログラムが 必要ですよね? このあたりのプログラムの流れが分かりません。初心者サイトを見ても具体的な部分が見つかりません。(プログラム自体初心者で、またローカル環境しかないため、このやり方であっているのか どうかさえも分かりません) どなたか詳しいかたいましたら教えてもらえませんか?

    • ベストアンサー
    • PHP
  • PHPとjquery

    PHPの内部処理をjqueryを使ってブラウザ上で進捗状況をリアルタイムで見せてくれるようなものは作れますか? jqueryで動的なwebページを作れると聞いての質問なのですが。jqueryは少ししか触っていません 例えば <?php $i = 1; while( $i <= 10 ){ echo "実行中<br>\n"; $i++; sleep(5); } ?> というプログラムがあって、普通に実行したらまとめて10個の"実行中"が表示されるだけですが、これをプログラム処理と同期させてページを更新させること無しに一つづつブラウザに表示させて行くというような処理は可能なのでしょうか?教えてください

  • PHPでexeファイル実行

    C言語でMPG形式の画像ファイルを読み込み、画像処理をしてテキスト形式で画像データを出力するプログラムを作成したのですが、 これをPHPプログラム内で動作させ、テキストデータ(できればバイナリのほうがいい)を読み取りたいと思います。 これはexeファイルをexecやsystem関数で実行することで解決できるのでしょうか? また、C言語の画像処理プログラムが画像を読み込んでからテキストデータを作成するまで1分ほどのタイムラグがあります。 どうすればPHP内の処理でexeファイル実行→exeがデータベースから画像を読み込む→ 1分処理待ち→テキスト作成→作成されたテキストデータをPHPで読み込み とできるのでしょうか? ちなみに、exeファイルとphpで作成した画像データベースはサーバー機に置くつもりです。 テキストデータを介さなくても、C言語プログラムからphpに直接データを渡す方法があればそちらのほうが望ましいです。 連続投稿で申し訳ないのですが、急を要するのでぜひともご解答お願いします。

    • ベストアンサー
    • PHP
  • 画面非表示で処理だけしたい

    PHPファイルを別のPHPプログラムのボタンを押す事により実行させたいのですが、非表示で処理だけ実行させる事はできるのでしょうか?(ボタンがある画面は表示したままで)

    • ベストアンサー
    • PHP
  • php include内のエラー処理

    あるphpのプログラムの中で、 「include('a.php');」 などというような形で「a.php」を実行させる場合に、 a.phpに構文エラーがあると、 全体の処理が停止してしまうと思います。 このような場合に、元プログラムを止めずに、 元プログラムの側で「a.php」内に構文エラーがあった事を把握し、 適当なエラー処理をすることは可能でしょうか? (例えば、本体プログラム側で 「a.phpにエラーがあるので動かせませんでした」 と表示させる) イメージとしては 「a.php」は、プラグイン的な位置づけで、状況により、 「b.php」「c.php」など様々なソースを読み込ませることを想定しています。 プラグインにエラーがあるせいで、 本体プログラムまで停止してしまうのを防ぎたいというのが趣旨です。

    • ベストアンサー
    • PHP
  • 拡張子.phpのファイルを右クリックでメモ帳

    拡張子.phpのファイルを右クリックでメモ帳で開きたいのですが、 「プログラムから開く」が出てきません。 拡張子.htmlなら「プログラムから開く」が出てきます。 phpでも表示する方法はありますか? 添付画像は、phpファイル上で右クリックした場合のメニューです。

  • PHPでフォームの自動入力できますか?

    PHPでfopenを使えば、WEBサイトの内容を調べたり、表示させたりすることができますが、懸賞の自動入力のようにサイト上のフォームにデータを入力し、実行ボタンをクリックするような仕掛けのプログラムを組むことは可能でしょうか? クライアント側でプログラムを走らせれば、操作できると思いますが、これをサーバー上のPHPで動かしてみたいのですが... よろしくお願いいたします。

    • 締切済み
    • PHP
  • PHPとfortran

    今、PHPからfortranのプログラムを実行しようとしてるんですが、あまり知識がないためうまくいきません。 色々なPHPのサイトで、PHPのsysytem関数による外部プログラム実行に関する事を見てるんですが、詳しく書かれているところが無く、困ってます。 このような事に詳しい方がいらっしゃれば、是非分かり易く教えていただけないでしょうか? よろしくお願いします。

    • 締切済み
    • PHP

専門家に質問してみよう