チェックボタンの値を取得

ラジオボタンとドロップダウンリストの場合は、値を取得する方法はテキストフィールドなっどと同様なものです。ただ、少し癖があります。ラジオボタンやチェックボックス、ドロップダウンリストというような、フォームにあるそれぞれのパーツの扱い方は、テキストフィールドと同様となります。$_GETや$_POSTにフォームパーツのname属性に指定した内容を指定すれば取り出せます。ラジオボタンの場合、男性を選択すると、フォームを送信したあとの画面には、maleで表示されます。フォームに送信されるのは、「value」属性があるからです。チェックボックスのラベルの文字ではありません。テキストフィールドの場合は、画面での見た目とvalue属性は、必ず一致します。そのため、非常に分かりやすいといえます。ラジオボタンの方は、見た目とvalue属性は必ずも一致しないということで、もし、一致させたい場合には、value属性に同じ値を指定する必要があります。チェックボックスやラジオボタンの場合は、ユーザーがvalue属性を編集することができません。htmlspecialcharsファンクションに一見するとみえるため、安全な状態にする必要がないように感じてしまいます。けれど、実際には少しでもインターネットの知識があると、簡単に改変することができてしまうのです。その上、いたずらツールというものも無料で配布されているということで、まったく信用できないといえます。そのため、チェックボックスなどの値だろうと、それが必ずhtmlspecialcharsで安全な状態にする必要があります。注意しなけれなりません。気をつけましょう。


作ったもののチェック

value属性に入力した内容を表示させることができたら、値を再現できます。注意しないといけないのは、「htmlspecialchars」ファンクションにかけてから表示をするということです。これをしないと、入力された文字によっては、画面が壊れたりします。これは決り文句として入れておくとよいでしょう。こういった調子で、すべての項目について同じように処理を入れていきましょう。その後で、画像についても検査をしていきます。このプログラムでは、次のようなルールで検査をしましょう。「アップロードしたファイルを拡張子が『.gif』または『.jpg』であるかを確認します」index.phpのプログラムを作り変えましょう。「member_picture」フォルダをこのアプリケーションのルートフォルダに作成しましょう。レンタルサーバーなどの外部サーバーをもし利用しているのであれば、FTPソフトで権限を「777」に設定しておきましょう。「$_FILES」はファイルアップロードのときに、ファイルが代入される変数ということで、input要素のname属性がキーとなります。この場合は、「$_FILES[‘image’]」としましょう。この配列はさらに連想配列となります。ファイル名や一時的なアップロードされたファイル名などが代入されるということです。「$_FILES{‘image’][‘name’]」でいったん$fileNameという変数に取りだしています。この変数が空でないかを「empty」ファンクションの否定で判断しましょう。画像ファイルは、必須項目ではないということ。そのため指定されない場合もあります。


自分で道を選ぶロボット

マス目で迷路を作って付箋ブロックを使って考えてみましょう。「(ゴールする)まで繰り返し」と「ここまで」という付箋ブロックがあると、シンプルにできるのが分かると思います。繰り返しの付箋を使うと、同じような動作を何度も書く必要がなくなります。そのためとても効率の良いプログラムを書くことができるというわけです。それでも、これだけでは決まった形の迷路にしか対応できなくなります。そこで「もしも」という付箋ブロックを使う必要がでてきます。どんな迷路でもゴールできるというものを作るには、2マス目の動作が重要となります。迷路でスタートからは、まず前に進むという動作になります。なので、「前に進む」付箋を置きます。その次に「もしも(前に進めなかったら)」という付箋ブロックを置きます。「もしも()」の()には、条件を記述します。その条件に合う場所にだけ行くという動作を指定しましょう。「前に進む」「もしも(進めなかったら)」「右に回る」「ここまで」「前に進む」「前に進む」というプログラムなら、前に進めないときにだけ、右に回って前に進むということになります。前に進める場合には、右に回らず、前に進むということになります。これなら、直線でも対応できます。いろんな迷路を作って付箋ブロックで考えてみましょう。まっすぐ進めないなら、右に回るようにするとか、それでも進めないなら、右に二回回って左を向いて進むとか、付箋ブロックを駆使して、どんどん作ってみましょう。ロボットの動きを想像して、思い込みに振り回されないようにするのもプログラムの勉強では大切です。想像力を養って、スッキリとしたプログラムを作っていきましょう。


エラーメッセージ

エラーメッセージは英語で出てきます。Parse error: syntax error, unexpected T_STRING in….というものです。「パース」は、文章を分解するという作業のことを指します。これはここで書かれた文章を理解しようとしたが、理解できなかったというようなエラーだったことを説明しています。Fatal error :は致命的なエラーのことです。動作がまったくできなかったというエラーです。Warning : 危険な書き方です。動作はしますが、書き方が良くないということなど。Notice: これはお知らせ。それほど問題はないが、間違いになりやすい書き方であるということを知らせるときのものです。「syntax」というのは構文という意味です。「syntax error」というのはプログラムの書き方に問題がありそうだという詳細な内容が知らせれます。unexpected T_STRING というのは、エラーの詳細です。unexpectedというのは、予期しないという意味です。T_STRINGは文字の意味です。PHPのエンジンが期待した場所ではないところに、文字が存在しているということです。日本語にすると、プログラムの内容が理解できませんでした。文法のエラーです。思わぬ場所におかしな文字があります。となります。さらに行数やファイル名も知らせてくれます。こういったエラーメッセージをヒントにしてプログラムの内容を見返してみることで、エラーの原因を探ることができます。英語が苦手ならば、エラーメッセージを翻訳サービスにかけましょう。エラーが発生したら、エラーメッセージを理解してその原因を探りましょう。


サーバの役割

Webページを閲覧するためにブラウザからURLやIPアドレスなどでリクエストを行うと、リクエストはそのWebページがあるサーバに到着します。サーバは日本語で給支人という意味があるそうです。いわゆるコンピュータ用語では「処理や通信を行うコンピュータ」のことを指すようです。これは意味の通り、ブラウザから受け取ったリクエストを解消し返答としてレスポンスを返すのがサーバの役割にあたります。

サーバでは様々な処理を行いブラウザがリクエストしたWebページのHTML(Hypertext Markup Language)をレスポンスとして返してくれるのです。さて、ではHTMLとは何でしょうか?HTMLとはWebページを作るうえで骨組みとなる言語のことを指すそうで、インターネット上で見ているWebページはほとんどHTMLでできているのだそうです。HTMLはここからここまでの文章にはこのような意味があるとその部分にタグと呼ばれる記号のようなものを付けて文字列で表現している言語です。そのため、そのまま画面に表示されても記号の文字列が続いてしまい意味が分からないものになってしまいます。そこでクライアントでもあるブラウザはレスポンスとして返ってきたHTMLを解釈し、私たち人間にもわかりやすいレイアウトや色にHTML言語から構成しなおし、必要であれば画像を埋め込みWebページとして表示を行っているのです。


携帯電話振分プログラム

WebサイトやWebプログラムというのに、携帯電話からの利用も多くなっているかと思います。携帯電話向けのWebサイトを作ることが必要となってくるケースも増えたそうです。携帯電話への対応としては、最も一般的なのは「エージェント切り替え」と呼ばれるものだそうです。これはアクセスしてきたWebプラウザの種類に応じて、表示するファイルを変更するという方法だそうです。エージェント切り替えというのは、自分で組み立てることもできるそうです。けれど、種類がとても多いために面倒ということがあるそうです。そのため動作確認なども容易ではないそうです。優れたライブラリを使って作れば手間がかからないということがあるそうです。PEARで携帯電話用ライブラリ「Net_UserAgent_Mobile」というものが公開されているそうです。これを利用してプログラムを作成したらいいそうです。携帯電話でアクセスするには、インターネット上のWebサーバーにファイルをアップロードしてからでないと確認ができないそうです。携帯電話のサイトを確認するには、実際に携帯電話の端末でアクセスするしか方法がないそうです。とはいえ、携帯会社のそれぞれの機種を揃えるのは難しいかと思います。そこでFirefoxに非常に便利な拡張機能があるそうです。これは携帯電話のエージェント情報を利用できるそうです。また表示のシミュレートをしてくれるそうです。また、XAMPP、MAMPを使ったローカルサーバで確認することができるそうです。これは開発中に手軽に確認する場合にとても便利なツールだそうです。PHP開発は土台から柱を立てて壁を作って家を立てるというような作業だそうです。


ライブラリのダウンロード

PHPの拡張やアプリケーションの貯蔵庫には、自分で作ったライブラリも登録したりできるそうです。PEARというサイトにアクセスしてPEAR本体をダウンロードをしておくといいそうです。画面上部に「Packages」というものをクリックして「PEAR」を探してクリックするそうです。「PEAR Base System」という項目をクリックしたら、画面の上部にある「Download」リンクをクリックして、バージョン番号をクリックするそうです。ファイルのバージョンナンバーは時期により異なる可能性があるそうです。こうしてダウンロードができるそうです。「Net_UserAgent_Mobile」というのをダウンロートするといいそうです。これは「Packages」の「Networking」というカテゴリに登録されているそうです。ダウンロードをしたファイルというのは、解凍したディレクトリの中に入っている「PEAR-1」といったディレクトリを公開用のルートディレクトリにアップロードするそうです。この時はフォルダ名を「PEAR」などに名前の変更をしておくといいそうです。「Net_UserAgent_Mobile」の方は、解凍したディレクトリ内のさらに「Net_UserAgent_Mobile-1.0.0」などというディレクトリ内にある「Net」というディレクトリだけを取り出して「PEAR」フォルダにアップロードするそうです。これでPEARのインストールは完了だそうです。ダウンロードしたPEARやNet_UserAgent_Mobileは、tgz形式の圧縮ファイルになっているそうです。ウインドウズ標準の機能では解凍に失敗することもあるそうです。その場合は「Lhacaデラックス版」などを使うそうです。


プログラムのライブラリ化

プログラムというものは、ある程度決まった動作があるそうです。いつも決り文句のように作らなければならない仕組みというものがあるそうです。「ライブラリ化」ということをするとスマートにデータベースに接続できたりするそうです。ライブラリというのは英語の図書館の意味だそうです。それはまるで図書館に行って足りない知識を補うというように、PHPのプログラムで「ちょっと足りない機能を付け足す」ということができるそうです。ライブラリというのは自分で作成することもできるそうです。他の人が作ったライブラリをもらって自分のプログラムに付け足すということも可能だそうです。このようなことをすることで、プログラムを作る場合に「よくあること」をいちいち自分で作らなくてもいいようになるそうです。他の人が作ったプログラムを借りて、簡単に作ることができるということだそうです。ライブラリは、各プログラマが自分のブログなどで配布していたりするそうです。また、そういったようなライブラリをまとめて公開しているサイトもあるそうです。PHPの開発で足りない機能や、困ったことが解決できるというライブラリが登録されているサイトだそうです。電子メールを送付するためのライブラリがあるそうです。それは添付ファイルを送付したり、HTMLメールを送付することができたりと、標準の「mail」ファンクションにはできない便利な機能が搭載されているそうです。この他にもデータベースの操作を、より高度に行うためのライブラリがあったり、XMLの制御を行うためのライブラリ、携帯電話を扱うためのライブラリがあるそうです。探してみるとたいていの機能を補うことができるそうです。


PHPの動作確認

これまでの作業で、Webサーバ(Apache)とPHPについて、インストールと設定が完了しました。
それでは、PHPがWebサーバ上で動作するか確認してみましょう。
ここで行う作業は、PHPの動作を確認するにはとても有効な方法です。
WebサーバやPHPを再インストールした場合などにも、確認手段として使える方法ですので覚えておくと便利です。

① 確認用プログラムの作成
メモ帳などのテキストエディタに以下ののコードを入力して、以下のファイル名で保存します。
なお 、入力するコードはすべて半角文字で入力してください。

01 <?php
O2 phpinfo();
O3 ?>

② Webブラウザでの確認
Webブラウザから以下のURLにアクセスして正常に表示されるかどうか確認します。

http://localhost/phpinfo.php


PHPを動かすには?

PHPを動かすために必要なソフトウェアについての説明です。

① テキストエディタ
PHPのプログラムを入力するために使います。
Webアプリケーションの開発を行う場合は、最低でも文字エンコーデインクが設定でき、改行コードも設定できるといった機能が搭載されたエディタを使う必要があります。

② FTPクライアント
ファイルをWebサーバに転送するために使います。
開発用コンピュータとサーバが同じコンピュータの場合は不要です。

③ Webブラウザ
Webサーバにアクセスして、Webサイトを閲覧するために使います。

④ PHP
PHPプログラムを動かすエンジンとなるソフトウェアです。
皆さんを始め開発者が作ったPHPのプログラムは、このPHPエンジンによって解析、実行されます。

⑤ FTPサーバ
FTPクライアントソフトウェアを使ってサーバにファイルを転送するには、サーバ側でFTPサーバソフトウェアが動いている必要があります。
開発用コンピュータとサーバが同じコンビュータの場合は不要です。

⑤ Webサーバ
Webブラウザからの要求を受け付けて、PHPなどのプログラムの実行結果やHTML文書などをWebブラウザに応答として返すソフトウェアです。