- 締切済み
PHPが読み込まれた時点で動作させるには?
PHP5を勉強中です。 HTMLコードの中に、<?php ?>というタグで囲んだ場所にソースを書いています。 フォームを作ってアクションをそのページに指定するとその箇所のソースが起動されるのですが、読み込んだ時点で起動させたい場合はどのようにしたら宜しいのでしょうか? 具体的に申しますと、レイアウトをほとんどHTMLで制作しており、フォトライブラリの画像一覧部分だけPHPとして挿入しております。
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- nagaihdhr
- ベストアンサー率83% (5/6)
こういう場合、自分だったらここをチェックするという話をします。 (1)最初のページでエラーが発生しており、エラーハンドリングが無いかエラーハンドラーにバグがあり、エラー表示できない。(原因が分からない) ⇒エラーハンドラーが無い場合、通常画面にエラーが表示されるが、表示されない時もある。php部分の作りにもよりますが、画面が最後まで正しく表示されているかどうか見れば分かるかも。echo文などを使用して、処理の分岐点、変数の内容などを出力してみるとよいでしょう。(当然画面は乱れますが)。 (2)画像ライブライを選択するためにパラメータを使用しており、そのパラメータをformデータより取得している。(最初のページでは得られない) ⇒データが無いとき初期値を使用する。 他にもあるかも知れませんが、今思いついたのは以上です。
- nagaihdhr
- ベストアンサー率83% (5/6)
tomajuさんのような状況かも知れません。しかし、質問の内容からもしかしたらごく基本的な点が関係しているようにも思えます。 >HTMLコードの中に、<?php ?>というタグで囲んだ場所にソースを書いています。 > >フォームを作ってアクションをそのページに指定するとその箇所のソースが起動されるのです >が、読み込んだ時点で起動させたい場合はどのようにしたら宜しいのでしょうか? この部分を次のように整理してみました。 action関係に関して: 最初の呼び出しは http://hoge.com/page01.html です。page01.htmlにformタグがあります。formタグのactionプロパティにpage02.phpが指定してあります。 画像一覧作成に関して: page01.htmlに<?php 画像一覧作成 ?>がコーディングされています。そしてpage02.phpの中にも<?php 画像一覧作成 ?>がコーディングされています。この状況でpage02.phpの「画像一覧作成」は動くのですが、page01.htmlの「画像一覧作成」が動きません。page01.htmlの「画像一覧作成」を動かすにはどうすれば良いでしょうか。 上記のように整理できるのであれば、答えは 「page01.html を page01.php としましょう。」 ということです。 PHPによるHTMLコードの編集について: ページが少ない簡単なサイトの場合、ご指摘のようにヒアドキュメントを使用したPHPコードでHTMLを作成できます。ページ数が多くDBが必要なケースですとMVCフレームワーク(CakePHP、Symphony、ZendFrameWorkなど)の使用を考えると良いかもしれません。中間的なケースが悩ましいところで、フリーの簡単なCMSツール(「PHP CMS フリー」で検索すると様々出てきます)をダウンロードして改造するか、自分で作るか、どちらが早くてメンテナンスしやすいでしょうかと考えることになると思います。
- tomaju
- ベストアンサー率76% (84/110)
> フォームを作ってアクションをそのページに指定するとその箇所のソースが起動される > 画像登録フォームより下の部分のPHP部分が、ご回答いただいたように画像を登録するごとにしか起動しない状況です。 コードを見ていないのであてずっぽうですが、 フォームより下の部分のPHPのコードが、ざっくり以下のような構造に なっているのではないかと推測します。 if(フォームからデータが送信された) { 画像を保存する 画像一覧を表示する } フォームからデータが送信されたか否かにかかわらず、 画像一覧を表示するように書き換えられないでしょうか。 if(フォームからデータが送信された) { 画像を保存する } 画像一覧を表示する // ← ifブロックの外に出す
補足
ご回答ありがとうございます。 しかしIF文には入っておりませんでした。
- nagaihdhr
- ベストアンサー率83% (5/6)
ANo.2が不十分であったと思われますので、追加します。ANo.2の場合PHPプログラムは端末側で実行されます。つまり、PHPの画像一覧の情報はPHPプログラムの一部としてコーディングされていなければなりません。この方法は画像を登録するたびにPHPを書き換えるわけで、できない分けではありませんが一般的ではありません。 この場合、PHPでHTMLを作成するようにするのが一般的です。サーバ側のファイル名はxxx.phpのようになります。http://hoge.com/xxx.phpのように呼び出されると、xxx.phpが本来のHTMLコードを作成し、端末側に送信します。xxx.phpに画像一覧部分の作成も含めるようにします。
補足
ご回答ありがとうございます。 拡張子は既に.phpにはしているのですが、<?php ?>というPHP部分が幾つかあり、画像登録フォームより下の部分のPHP部分が、ご回答いただいたように画像を登録するごとにしか起動しない状況です。 アクション指定されていなくとも起動するには、簡単な方法は御座いませんでしょうか。 PHPベースでHTMLを出力するとなると、複数行のHTMLなどを echo>>>EOT ~ EOT; のようにして出力するのが簡単でしょうか?
- nagaihdhr
- ベストアンサー率83% (5/6)
ご質問の状況ですと、PHPプログラムをscriptタグで実行させることになります。方法は参考URLを見て考えてください。
- Suzi
- ベストアンサー率38% (130/334)
<?php require( "./hoge.pl" ); ?> hoge.pl 内の1行目に <?php 、最終行に ?> を記してその中にスクリプトとかを書くとかは、どうでしょうか。 requireの他には、include、require_once、include_once などがありますがお好みで。
補足
御回答ありがとうございます。 includeもrequireもだめなようでした。
補足
恐れ入ります。 コードはHTMLコードの中で正しいのですが、拡張子はPHPとしております。 それでもアクションを起こすまでMySQLからデータを表示させてくれません。 宜しくお願いします。