連載第1回目では、MySQL+PHP+Apacheのインストールと動作確認までを解説しました。今回は、PHPによるWebプログラミングの基本と次回以降で作成する「簡易オンラインストア」の概要について説明します。
関連リンク:
連載 快速MySQLでデータベースアプリ!
http://www.atmarkit.co.jp/flinux/index/indexfiles/mysqlindex.html
連載 今から始める MySQL入門
http://www.atmarkit.co.jp/flinux/index/indexfiles/mysql5index.html
PHP Webプログラミングの基本
PHPコードの埋め込み
PHPは、Webアプリケーション構築を前提に開発された言語です。そのため、Webアプリケーション開発で頻繁に使用される処理などを簡単に利用できます。また、HTMLとの相性が良いことでも知られています。
HTMLテキストの中にPHPコードを埋め込むには、<?php 〜 ?>を用います(図1)。
PHPは、HTMLテキストのデザインを崩すことなくコード埋め込むことができるため、プログラマーだけでなく本格的なプログラミング経験がないWebデザイナーなどからも支持されています。
ちなみに、1行スクリプトを用いると、HTMLタグの中に処理を埋め込むことができます。
<font color="red" size=+2><?php print "こんにちは" ?></font>
フォーム処理
Webアプリケーションで頻繁に使用される処理に「フォーム処理」があります。通常、<form>タグのaction属性で指定されたWebアプリケーションは送信されたデータの解析、各フォームデータの抽出、格納などの複雑な手順を踏む必要があります。
しかし、PHPではそのような複雑な手順を省略して「$_POST["name属性"]」で値を取り出せます。
下記リスト1、2は入力&送信されたフォームデータを「$_POST["input1"]」「$_POST["input2"]」を利用して、画面に表示させる例です。
<form action="sample.php" method="POST"> <input type="text" name="input1"> <input type="text" name="input2"> <input type="submit" value="送信"> </form>
<?php print $_POST["input1"]; print $_POST["input2"]; ?>
ちなみに、<form>タグのmethod属性を「POST」から「GET」に変更する場合は、「$_GET["name属性"]」を使用します。しかし、GETメソッドでは送信できるデータの大きさに限界があります。また、データ内容を簡単に盗み見ることができるため、通常はPOSTメソッドの使用をお勧めします。
$_POSTや$_GETはスーパーグローバル変数と呼ばれ、PHPであらかじめ用意された連想配列(注)です。ほかにもPOSTとGETどちらにも対応する「$_REQUEST["name属性"]」があります。
注:通常の配列では、インデックス番号で各値にアクセスします。しかし、連想配列の場合はキーを用いて各値にアクセスします。ハッシュテーブルとも呼ばれます。
エラー処理
本連載では、エラー処理に「die("メッセージ")」を使用します。die()は引数に指定されたメッセージを表示して、それ以降の処理を中断します。ちなみに、exit()を使用すれば、メッセージを表示せずに処理を終了できます。
<?php print "begin<br>"; die("これ以降の処理は続行されません"); print "end"; ?>
また、下記のように「TRUE/FALSEを返す処理」と「or」を組み合わせれば、エラーが発生した場合だけメッセージを表示して、以降の処理を中断できます(注)。
注:第1回 MySQL+Apache+PHPをインストールしようのサンプル2を参照。
TRUE/FALSEを返す処理 or die("メッセージ");
エラーの確認方法
PHPはコンパイルを必要としないため、実行するまで間違いに気が付かない場合があります。実行時のエラーは、Apacheのログ「/var/log/http/error_log(ソースからインストールした場合は/usr/local/apache2/logs/error_log)」に出力されます。
[日付] [error] [クライアントのアドレス] PHP Parse error: syntax error, unexpected '>' in /var/www/html/sample.php on line 2
また、下記のようにPHPをコマンドモードで実行(「-l」オプションを指定)すれば、ブラウザでアクセスする前に構文のチェックを行うことができます。
$ /usr/bin/php -l sample.php ←(注) PHP Parse error: syntax error, unexpected '>' in sample.php on line 2 Errors parsing sample.php
注:ソースからインストールした場合 は、/usr/local/bin/php -l sample.php
ちなみに、「-f」オプションを指定すればPHPスクリプトをコマンドラインから実行できます。しかし、「-f」オプションだけではブラウザからのアクセスを完全に再現できません(単純なスクリプト判定の確認程度なら可能)。詳しくは「-h」オプション、または「$ man php」で確認してください。
$ /usr/bin/php -f sample.php
関連リンク:
PHP4で作るWeb-DBシステム
http://www.atmarkit.co.jp/flinux/php4/php4_1/php1.html
オブジェクト指向言語に生まれ変わるPHP5[前編]
http://www.atmarkit.co.jp/flinux/special/php5/php5a.html
オブジェクト指向言語に生まれ変わるPHP5[後編]
http://www.atmarkit.co.jp/flinux/special/php5/php5c.html
Copyright © ITmedia, Inc. All Rights Reserved.