HTML、JavaScript プログラミングの基本
リレーショナルデータベースと SQL コマンドの基本
PHP プログラミングの基本
PHP+PostgreSql 連携プログラミングの基本
こんなことが出来るようになります
1. インターネットを含めた Web の仕組みが理解できるようになります。 2. HTML や JavaScript を使った Web プログラミングができるようになります。 3. リレーショナルデータベースや SQL が理解できるようになります。 4. PHP や PostgreSql を使った Web サーバプログラミングができるようになります。 5. 遠隔ログインやftpなどのような Web 関連基本操作ができるようになります。 6. Web 上で公開されている掲示板やチャットなどの仕組みが理解できるようになります。 7. IT 関連の基本技術が身につきます。 <まえがき> 本体験入門編は、PHP プログラミングを中心に、HTML,JavaScript、PHP+PostgreSql 連携のプログラミ ングを通して、Web システムとはどのようなものかを体験して頂くことを目的として作成されたものです。 特に、本編は、この Web 関連には未経験者の方々を対象としており、Web 関連を感覚的に理解して頂く事 を目的して作成されたものです。HTML,JavaScript、PHP 及び PostgreSql を本格的に活用し、システム設 計及びプログラム作成を行う場合は、もっと踏み込んだ説明書が必要となりますので、そのような方は、 関連する専門書を購入されることをお勧めします。目
次
第1章 Web ソフトウェアに関する基礎知識 1.1 パソコンで各種のホームページが参照できる仕組みとは 1.2 サーバ関連の予備知識について 1.3 Web プログラム(HTML,JavaScript、PHP)とはどんなものか 1.4 HTML,JavaScript,及び PHP を理解する上での予備知識 1.5 各種のプログラミングを行う為の予備知識 第2章 HTML プログラミング 2.1 HTML プログラミングの基本 2.2 基本的にタグの構文 2.3 基本的なタグパラメータの設定 2.4 スタイルシートの活用 2.5 主な HTML プログラミング例 2.6 HTML による Web ページ作成 第3章 JavaScript プログラミング 3.1 JavaScript プログラミングの特徴 3.2 JavaScript プログラミングの基本 3.3 JavaScript プログラミング例 3.4 JavaScript プログラムの応用 第4章 PHP プログラミング 4.1 PHP プログラミングの特徴 4.2 サーバ側、及びクライアント側で動作するスクリプトプログラムの検証 4.3 基本的な HTML,Java スクリプト、PHP 組み合わせプログラム 4.4 PHP 言語の構文とプログラム例 第5章 PHP と PostgreSql データベースの連携プログラミング 5.1 データベースとファイル編成 5.2 SQL 言語によるデータベースアクセス 5.3 PHP から PostgreSql データベースをアクセスするライブラリ 5.4 データベース関連のコマンド5.5 psql データベースツールの活用方法 5.6 本書のサンプルが想定するデータベースの体系 5.7 PHP 言語からデータベースをサクセスするプログラミング 第6章 Web を理解する上での予備知識 6.1 プログラムの分類 6.2 ソフトウェアの基本的な構成 6.3 10 進数、2進数、8進数、16進数表記の関係 6.4 データの型宣言と記憶形態 6.5 オブジェクト指向プログラミング 6.6 文字コードについて 6.7 暗号化の仕組み 6.8 コンピュータを取り巻く技術の進化 第7章 最終課題 7.1 スクリプトプログラミング 7.2 データベース連携の基本 7.3 PHP と PostgreSql の連携 補足:最終課題に対する回答例
第1章 Web ソフトウェアに関する基礎知識
インターネット(ネットワーク)の仕組みと、その上で各種のソフトウェアを開発する技術を習得する 為には、いくつかの用語と内容を理解する必要があります。本章では、これらの概要を簡単に解説します。 なお、本章に入る前に、Web ソフトウェア全般の抜粋版である、「Web プログラミングの体験」編により、 Web プログラミング全体を体験されることをお勧めします。この体験により、本章以降の内容が、もっと 分かりやすいものになります。 補足: 本書と「Web プログラミングの体験」編では、内容的重複する部分がありますが、復習と内容補足の2 つの側面から、本書は解説を行っています。1.1
パソコンで各種のホームページが参照できる仕組みとは
インターネットは、世界規模のネットワーク上に点在するサーバ上(プロバイダー、公共機関、教育機 関など)に登録されている情報を、クライアントの要求に応じて提供する仕組みにより実現されています。 勿論、このサーバは常時稼動状態であり、しかもインターネットと言われるネットワーク上で固有のアド レスを持っている必要があります。 例えば、一般のユーザが自分の HP をインターネット上に開設したい場合は、以下のような手順を踏みます。 1) インターネット上のサーバを持つプロバイダーから HP 開設用の場所を借ります。(HP 開設用の場所は レンタルサーバや自前サーバでも可能です) 2) ブラウザソフト(IE など)が解釈できる形式で、プログラムを作成(通常は HTML 形式)します 3) ftpなどの、ネットワーク上でのファイル転送用ツールを使って、プロバイダから借りた場所に、 作成したプログラムを登録します。(このプログラムはサーバ上で動作する Web サーバソフトにより管 理されます) 4) 任意のクライアントから、URL 形式(上記 HP をインターネット上で特定できる形式です)で上記の HP を参照する要求を受けると、その HP を管理するサーバは要求された HP をそのまま要求元に送り返し ます。(サーバ上のデータベース等をアクセスする HP であれば、そのアクセスする部分はサーバ側で 実行されます) 5) クライアント上のブラウザソフトは、サーバから送られてきた HP(HTML 形式)を解釈して、画面に表 示します。 個人、或いは企業がインターネット上で直接サーバを開設する場合は、インターネット上のアドレス(IP アドレス)を取得し、独自のサーバを開設することになります。勿論、企業内ネットワーク上にサーバを 構築する場合も、インターネット同様にネットワーク上の独自のアドレス(IP アドレス)を取得し、サー バを開設することになります。 本コースでは、このプロバイダが提供するサーバ、或いは、個人が開設する場合に必要となるサーバ上 で動作するソフトウェアの開発に関する技術習得を目的とします。1.2
サーバ関連の予備知識について
ネットワーク上のサーバ上で動作するソフトウェア(通常 Web サーバと言われます)を理解する上で必 要となる最小限の用語について簡単に開設します。 1) WWW:WorldWideWeb IE(インターネットエクスプローラ)等で代表される各種のブラウザソフトが認識できる HTML(ハ イパーテキスト・マークアップランゲージ)形式により、文字情報や画像情報などをやりとりするイ ンターネット上のプロトコル(通信を行う為の約束のようなもの)と、そのプロトコルを実現する上 で関連する、各種のソフトウェアを総称した名前です。WWW は、クライアント・サーバモデルにて実 現されています。クライアント側は URL を使ってサーバ上の情報を要求します。 ウェーブ、ダブリュー・ダブリュー・ダブリュー、トリプル・ダブリュー、ダブリュー・スリー、ダ ブダブダブなどと呼ばれています。 2) クライアント・サーバモデル 通信を行う場合、クライアント(利用者)とサーバ(提供者)の関係を持ち、クライアント側から の要求により、対応するサーバが各種の情報を提供する方式を言います。インターネット上で見た場 合、各サイトの情報を検索する全てのユーザはクライアントとなり、その要求に答える為に各サイト に設置してあるコンピュータ(プロバイダに設置してある HP 等が登録されているコンピュータもサー バ)がサーバに相当します。 補足: 接続されているお互いが、クライアントとなって情報取得要求を行ったり、サーバとなって、相 手の要求に対して情報を提供する形態をピュアツーピュア形式と言います。 3) Web サーバソフト ネットワーク(インターネット含む)上に接続されているクライアント側からの要求に従い、対応 する HTML テキストや画像ファイルなどを所定の場所から読み込み(予め所定の場所に登録されていな ければなりません)、クライアント側に返却するソフトウェアです。この Web サーバソフトは、クライ アントの要求に従い、CGI ソフトやスクリプトプログラム(情報提供者により作成され・登録されて いるプログラム)を実行し、その結果をクライアント側に返却する機能も持っています。 主なサーバソフトには以下のようなものがあります。 ApacheWebServer: フリーソフトで、Windows でも Linux 上でも動作します。 IIS(MicrosoftInternetInformationServer): マイクロソフト社の商用ソフトウェアであり、Wimdows 上で動作します。4) ブラウザソフト インターネット上に存在する各種のサイト情報をクライアントユーザの要求に従って要求し、サー バから HTML 形式のテキストと画像などを受け取り、クライアント画面上に表示するアプリケーション ソフトウェアです。このブラウザソフトは、サーバより送信されてくる HTML 形式のデータを解析し、 そのブラウザソフトが実行されるオペレーティングシステムの助けを借りてクライアント画面に画像 や文字列を表示します。 主なブラウザソフトには以下のようなものがある。 IE:MicroSoftInternetService NN/NC:NetscapeNavigator/Communicator) Mozilla URL の基本的な体系は以下のとおりです。 http://www.asahi-net.co.jp/index.html http :スキーム名(プロトコルを表します) www :サーバー名 asahi-net :第3ドメイン名(プロバイダー名など) co :第2ドメイン名(企業は”co“、行政府は”go“、その他は”or“、 但し米国は”gov“、”com“の3文字) jp :第1ドメイン名(日本は”jp“、イギリスは”uk“、米国は”US”) index.html :サーバー上のファイル名(ホームページのトップの名前) 上記 URL は、日本(jp)にある企業(co)のasahi-netにあるwwwというサーバ のindex.htmlというファイルをhttpプロトコルにて参照するという意味となりま
す。また、www.asahi-net.co.jpの代わりに IP アドレスを直接設定することも出来ます。
6) IP:Internet Protocol Address
IPアドレスとはネットワーク上に接続されている全てのコンピュータに設定されているユニーク なアドレスであり、現状では32ビット(8ビット分割)から構成されています。 このIPアドレスはネットワークアドレスとホストアドレスから構成されています。このネットワ ークアドレスとホストアドレスのビット配分はIPアドレスのクラス(32ビットの先頭の数ビット でクラスが定義されます。基本的には、A タイプから D タイプがあります)に応じて変わります。ま た、サブネットマスクと IP アドレスのクラスの組み合わせによりサブネットワークアドレスの設定も できます。 ひとつの LAN 状に接続する端末数を多くしたい場合は(255以上)ホストアドレスに割振るビッ ト数が多い形態を使用します。ちなみに、タイプ A は24ビット、タイプ B は16ビット、タイプ C は8ビットがホストアドレスとして割り付けられます。 32ビットでは43億のユニークなアドレスが設定できますが、最近のネットワーク普及により不 足が懸念された為に、128ビットに拡張(IPv6)され、実用に入っています。 補足1: IP アドレスの先頭の1~3ビットで IP アドレスのクラスが切り分けられます。 0 :クラス A(ホストアドレスが24ビット構成) 10 :クラス B(ホストアドレスが16ビット構成) 110 :クラス C(ホストアドレスが8ビット構成) 補足2: IP アドレスにはグローバル IP アドレスとプライベート IP アドレスがあります。グローバル IP アドレスは、インターネット上に接続される時に使用される、世界でユニークなアドレスであり、 プライベート IP アドレスは、インターネットに接続しないローカルな LAN 等で、IP を管理してい る機関によって使用許可されたアドレスです。また、このプライベート IP アドレスや IP アドレス を持たないコンピュータがインターネット(LAN)に接続する場合は、インターネット接続時のみグ ローバル IP アドレスを取得し、サービスを受ける事になります。このサービスを提供しているのが プロバイダであり、プロバイダの持つ DHCP サーバ(DynamicHostConfigulationProtocol)により動 的に与えられます。(勿論、各自がグローバル IP アドレスを得て、直接インターネットに常時接続 することも可能です。また、DHCP サーバはインターネットに限らず、ローカルな LAN 上等でも動的 に IP アドレスを生成することができます。) IP アドレスの管理機関がプライベースアドレスとして使用許可しているアドレスは以下の通りです。 クラス A 用 IP アドレス: 10.0.0.0~10.255.255.255 クラス B 用 IP アドレス 172.16.0.0~172.31.255.255
クラス C 用 IP アドレス 192.168.0.0~192.168.255.255 補足3: サブネットマスクと IP アドレスの関係は以下の通りです。 補足: LAN に接続されたコンピュータは、同じネットワークアドレスを持つものに対してのみアクセスが許 されます。 補足: jp ドメイン名(..jp)は、JPRS(JapanRegistryService)に申請を行って取得することができますが、 一般的には ISP が代行して行ってくれます。 補足: 常時接続形式でインターネットに接続されている場合は、MS-DOS プロンプトにおいて ipconfig コマ ンド("ipconfig /?"により使い方が表示されます)を実行してみてください。自分に割り当てられて いるグローバル IP アドレスが表示されます。 補足: ネットワークアドレスを表記する場合、最後にネットワークアドレスを定義するビット数を表記するこ とがあります。以下の例では、ネットワークアドレスが24ビットであるとこを示しています。 192.168.0.100/24
補足:ipconfig 命令で表示される項目一覧 Host Name TCP/IP のホスト名。
Primary DNS Suffix 最優先で用いられるDNSサフィックス。ホスト名と合わせてFQDN(Fully Qualified
Domain Name)を表現するのに用いられる。
Node Type
マシン名(NetBIOS名)から IP アドレスを導く名前解決の方法を表す。Node Type は 4 種類(下記の別表を参照)あり、特に指定がなければ、「Hybrid」が選択され る。
NetBIOS Scope ID NetBIOS におけるスコープ ID。通常は空欄である。
IP Routing Enabled 複数のネットワーク アダプタ間で IPパケットがルーティングされるか否かを表す。 WINS Proxy Enabled WINSプロキシ機能が有効か否かを表す。たいていは「Disable」。
DNS Suffix Search List DNS サフィックスの候補一覧。ホスト名から IP アドレスを導く際、このリストから順番 にサフィックスが選ばれ、FQDN が生成される。
NetBIOS Resolution Uses
DNS マシン名(NetBIOS 名)から IP アドレスを導くのに、DNS を利用するか否かを表す。 Connection-specific DNS
Suffix ネットワーク アダプタごとに設定されている DNS サフィックス。
Description ネットワーク アダプタの説明。LAN カードの場合は一般的に製品名を表す文字列 が表示される。
Physical Address ネットワーク アダプタのMAC アドレス。
DHCP Enabled DHCP サーバから IP アドレスのリースを受けるよう設定されているか否かを表す。 Autoconfiguration
Enabled
APIPA(Automatic Private IP Addressing)による IP アドレスの自動設定が有効か否 かを表す。 IP Address 当該ネットワーク アダプタに割り当てられている IP アドレス。 Autoconfiguration IP Address APIPA により、当該ネットワーク アダプタに割り当てられた IP アドレス。 Subnet Mask サブネット マスク。 Default Gateway デフォルト ゲートウェイの IP アドレス。 DHCP Server IP アドレスのリースを受けた DHCP サーバの IP アドレス。 DNS Servers DNS サーバの IP アドレス。複数の場合は、先頭がプライマリ DNS サーバ、2 番目 がセカンダリ DNS サーバを意味する。
Primary WINS Server プライマリ WINS サーバの IP アドレス。 Secondary WINS Server セカンダリ WINS サーバの IP アドレス。
Lease Expires DHCP サーバからの IP アドレスのリースが終了する時間。 NetBIOS over Tcpip NBT(NetBIOS over TCP/IP)が有効か否かを表す。
7) ハブ 最も一般的なネットワーク構成であるスター型ネットワークにおいて、そのネットワークに含まれる全 てのコンピュータ類を接続する為の装置です。ネットワーク上で流れる全てのデータはこのハブを経由し て相手に配信されます。また、このハブにはリピータハブとスイッチングハブの2種類があります。 リピータハブ 10BASE 用、100BASE 用、及びデュアル用があります。 入力された信号は全ての接続機器に送られます。(衝突は発生します)
カスケード接続(HUB 同士の接続)は、10BASE で4台まで、100BASE で2台までに制限さ
れます。(末端から末端までの間に設定されるハブの数が制約されます) スイッチングハブ 10BASE と100BASE が共存しても通信ができます。 MAC アドレスを使い、必要な相手にのみデータを配信します。(効率的な通信が行われます) カスケード接続には制限はなりません。 8) ルータ 異なるネットワークアドレスを持つ LAN 同士を接続する装置で、異なるネットワークアドレスを持つコ ンピュータに対するアクセスを可能とする装置です。このルータには、自分の属するネットワークから他 のネットワークにアクセスする場合に、その対象となったネットワークを特定し、そのネットワークに対 してのみデータを送信するルーティング機能を提供します。また、自分のネットワーク上に接続されてい るコンピュータに対し、他のネットワークからのアクセス要求が発行された場合、許可されていない要求 (予めルータに登録されているアドレス以外)であればそれを拒否するパケットフィルタリング機能を提 供します。 9) ゲートウェイ ゲートウェイとは、LAN 内部から外部の LAN(インターネットなど)に接続する場合の出入り口となる機 構です。このゲートウェイは、内部から外部へのアクセスは許可されますが、外部から内部へのアクセス
を完全に禁止することができます。また、外部から受信するデータ等に対するウイルスチェック等も可能 とします。
10) PHP(HyperText Processor) Web サーバ上で実行されるコンパイルを必要としない逐次構文解析・実行型のインタプリタ言語で あり、データベースのアクセスなどができます。この PHP 言語は、HTML 言語で書かれたプログラムに 挿入して使われたり、単独で使われる形式があります。また、この PHP 言語は、処理結果としてブラ ウザが表示できる HTML 構文を作り出します。 11) いろいろなサーバ 本編が対象とする Web サーバは、HTTP プロトコルを使い、ポート番号に80番が設定されたサーバです が、これ以外に Web 関連のサーバとして以下があります。 Web サーバ :ブラウザソフトからの Web ページ表示要求に対応するサーバです。 メール送信サーバ:SMTP プロトコルを使った、メール送信を司るサーバです。 メール受信サーバ:POP3 プロトコルを使った、メール受信処理を司るサーバです。 DHCP サーバ :ネットワーク接続時に、IP アドレスを動的に割り振ってくれるサーバです。 DNS サーバ :URL で与えられるドメイン名を IP アドレスに変換してくれるサーバです。 FTP サーバ :サーバ、クライアント間でファイル単位の転送を可能とするサーバです。 Telnet サーバ :遠隔のコンピュータを操作するリモートログインを可能とするサーバです。
Samba サーバ :Linux と Windows 間でファールやプリンタの共有を行うサービスです。
補足: サーバとは、コンピュータの種類ではなく、その機能を持ったソフトウェアシステムであり、1台のコ ンピュータに一緒に搭載することができます。(別プロセスとして稼動します) また、これらのサーバソフトは全てメーカから提供されており、サーバー構築者は、このソフトをイン ストールして、各種の設定を行うだけです。 12) ポート番号 ネットワークシステム上で使用されるポート番号とは、ネットワーク上のアプリケーション間で通信を 行う時に、お互いを認識する為に使用される番号です。ネットワーク上でお互いのコンピュータを識別す る為に IP アドレスが使用されますが、これと同様に、その IP アドレスを持つコンピュータ上で動作して いる、どのアプリケーションソフトと交信を行うかを示しているのがポート番号で、ネットワーク通信パ ケットには、IP アドレスと一緒に、このポート番号が書かれています。 このポート番号は、1023番までは固定的に確保されており、1024以上の番号は要求に対する応 答用ポート番号などとして使用されます。例えば、クライアント側のあるアプリケーションが Web サーバ と交信をする場合、Web サーバ側のポート番号は80番と決まっていますが、クライアント側は、102 4番以降のポート番号が使用されます。以下が、確定されているポート番号の主なものです。 HTTP :80/TCP Web サーバとブラウザ間通信用 FTP :20/TCP ネットワーク上でのファイルの転送用(TCP プロトコル使用) FTP :20/UDP ネットワーク上でのファイルの転送用(UDP プロトコル使用) TELNET :23/TCP ネットワーク上のコンピュータの遠隔操作用 SMTP :25/TCP 電子メール送信用 DNS :53/UDP コンピュータ名と IP アドレス変換用 POP3 :110/TCP 電子メール受信用
13) FTP(FileTransferProtocol)
FTP とは、File Transfer Protocol の略で、コンピューター間でファイルの転送を行うための規格です。 FTP によるファイル転送を行うためには、FTP のアカウントとパスワードが必要になりますが、AnonymousFTP という、誰でも利用できる FTP もあります。この、anonymous とは、「匿名の」という意味です。Anonymous FTP とは、通常は名前(アカウント)とパスワードが必要である FTP 処理を、誰でも実行できるようにしたもののこ とです。 14) TELNET、SSH TELNET とは、同じネットワーク上のコンピュータを遠隔で操作する仕組みです。
SSH( Secure Shell)も、この TELNET と機能的には同じですが、コンピュータ同士の通信を行う場合、暗号化 を行ってくれますで、パスワードなどの情報漏えいを防ぐことができます。 15) Parl、Ruby いずれも Web プログラミングで使用される言語です。 Perl(PracticalExtractionAndReportLanguage)とは、CGI において最もよく用いられるプログラミング言語で、 コンパイルなどを必要としないスクリプト言語です。特に文字列の処理に優れています。 Ruby とは、オブジェクト指向のスクリプト言語で、Perl と同様、文字列処理能力に優れています。 16) CGI(CommonGatewayInterface) CGI とは、サーバとプログラムが連携するための規格です。Web 上の大多数の掲示板やアクセスカウンタなど は、この CGI で動いています。 一般的には、CGI は、Perl というスクリプト言語で書かれることが多いのですが、他のプログラミング言語で書 くことも出来ます。Perl 以外でよく使われるのは、C 言語や Ruby などです。
17) SSI(Server Side Includes)
SSI は、HTML ファイル中にコマンドを書いておき、HTML ファイルがリクエストされるたびに、そのコマンド がサーバー側で実行され、その結果が HTML ファイル中に返されるという仕組みです。
SSI を使えば、文字カウンターの設置やアクセスログの取得、また、複数ファイルに同じヘッダを表示すること などが簡単にできるようになります。
18) SSL(Secure Socket Layer)
個人情報やクレジットカードの番号などを送信するページが存在する場合には、一般的に、この SSL の仕組みが 利用されます。
19) DNS(Domain Name System)
DNS は、ドメイン名と P アドレスを関連づけるシステムです。 一般的には、DNS と記述された場合は、DNS サーバーを指します。DNS サーバーは、DNS 情報(ドメイン名 と IP アドレスの対応情報)を管理するサーバーで、Web 上(インターネット上)に無数に存在しています。 URL をブラウザに入力して、目的のホームページを見ようとする際には、プロバイダの DNS サーバーの情 報により、入力した URL のドメインが対応している IP アドレスがわかり、目的のホームページが存在する サーバーへ接続されるの仕組みになっています。 DNS サーバは、単にネームサーバと言われることもあります。 20) ドメイン名とサブドメイン名 ドメイン名とは、DNS 情報により、IP アドレスと対応させることによって、インターネット上での住所 を表すものです。XX.com や、XX.or.jp などが、ドメインです。 サブドメインとは、あるドメイン名のすぐ下の階層にくるドメインのことです。XX.YY.co.jp を例にする と、co は jp のサブドメイン、YY は co.jp のサブドメイン、XX は YY.co.jp のサブドメインということに なります。 補足: ドメイン名は、JPRS(JapanRegistryService)に申請を行って取得することができますが、一般的には ISP が代行して行ってくれます。 21) バーチャルドメイン(virtual domain) 通常は、一台のサーバーに対して、1つのドメインが割り当てられますが、一台のサーバーに複数のド メインを割り当てることもできます。 一台のサーバーに複数のドメインを割り当て、まるで複数のサーバーが存在しているかのように見せてい る状態のことをバーチャルドメインといいます。バーチャルサーバー、バーチャルホスティングと呼ばれ ることもあります。共用レンタルサーバーなどでは、このバーチャルドメインの技術で、一台のサーバー に複数のドメインを存在させています。 22) セキュアサーバー(secure server) セキュアサーバーとは、SSL が使用されたサーバーのことを指します。レンタルサーバー業者のサイト で、セキュアサーバーが使用可能だと書いてあれば、それは SSL が使用可能だということを意味します。
23) ホスティング(hosting) ホスティングという言葉は、レンタルサーバーサービスとほぼ同義に使用されています。海外ではむし ろ、レンタルサーバーという言葉は用いず、ホスティング(hosting)といいます。 24) スクリプト(script) コンパイルなどの、機械語への変換作業を省略して簡単に実行できるようにした簡易プログラムのこと を指します。通常、プログラムはプログラマの書いたソースコード(プログラム)をもとにコンピュータの 理解できる機械語(1か0の数字の組み合わせです)に変換して実行されますが、その変換プロセスを簡 略化して実行できるようにしたものをスクリプトといいます。特に、Web ページでは、HTML だけではでき ない様々な機能を利用するための簡易的なプログラムをスクリプトと言うことがあります。スクリプトを 記述するための言語(スクリプト言語)には Perl や VBScript、JavaScript などがあります。
25) APOP(Authenticated Post Office Protocol)
APOP とは、メール受信時の認証パスワードを暗号化して送信する通信方法です。 通常の POP では、パスワードを暗号化せずに送信しているのですが、APOP を使用して暗号化することによ り、パスワードが漏れる危険性が減ります。 なお、APOP を利用するためにはサーバーだけではなく、クライアントのメールソフトも APOP に対応して いなければなりません。 26) POP アカウント
POP アカウントとは、POP サーバーに接続するためのアカウントのことで、POP アカウントの数だけ、POP メールボックスが存在することになります。 27) バックボーン バックボーンとは、業者が接続している通信回線の容量を表します。容量が大きければバックボーンが 太い、尐なければバックボーン細いという言い方をします。 もちろん、バックボーンが太ければ一度に多くのデータをやりとりできる(高速になる)わけですので、 バックボーンは太ければ太いほど良いのですが、バックボーンが太いからといって、その業者のサーバー が必ずしも高速というわけではなく、実際には、サーバーコンピュータの性能や、他の様々な要因が影響 します
28) 自動応答メール機能 自動応答メール機能とは、特定のメールアドレスにメールが送信された場合、あらかじめ作成しておい た定型文を自動的に返す仕組みです。オートレスポンダーと呼ばれることもあります。 29) データベース データベースとは、情報の整理と利用を目的としたソフトウェアです。情報を登録・管理し、その情報 を検索したり、検索した情報から統計データを作成するなどの目的に使用されます。
このデータベースとしては、PostgreSQL や MySQL、Oracle などが良く知られいます。PostgreSQL と MySQL は Free ソフトですので、無料で配布されています。 30) アクセスログ アクセスログとは、Web サイトへのアクセスごとに記録される、アクセス時間、リクエストファイル、 アクセス元の IP アドレス、リンク元の URL などの情報のことです。この情報を元に、どのような時間帯に アクセスが集中するかなどを分析します。 補足: インターネット上で使えるネットワークサーバ(Web サーバ)を構築する方法としては、グローバルな IP アドレスを取得し、自前のサーバーマシーンを用意して、インターネット上に接続する方法と、レンタ ル業者の提供するレンタルサーバーを使用して公開する方法があります。前者は、外部からの侵入等に対 するセキュリティー対策は、全て自分で行う必要がありますが、後者は、レンタル会社により行われてい ます。
1.3
Web プログラム(HTML,JavaScript、PHP)とはどんなものか
基本的なインターネットモデルは、①情報を提供したい提供者が HTML 文書にて作成されたファイを特定 のサーバコンピュータ(プロバイダや、個人が設置)上に登録しておきます。②この文書を見たい利用者 は、そのサーバ上のファイル名を、URL 形式によりブラウザソフトを介してサーバに要求します。③サー バは、その要求に応じて、対応するファイルと関連する画像等をサーバコンピュータから取り出し、クラ イアント側に送信します。④クライアント側のブラウザソフトは、この情報を元にクライアント側の画面 上にその情報を表示します。 この方式では、URL とサーバ上のファイルが1対 1 の関係となるために、サーバ上に登録されている決ま りきった情報しか表示できないことになります。 もし、クライアント側の要求により表示された画面を使って、サーバ側のソフトウェア(Web サーバ)と 対話を行い、同じ URL でありながら、様々な応答を返すことのできる方式であれば、その柔軟性と利用性 が格段に向上することが分ります。例えば、Web サーバ上に登録されているデータベースから特定のデー タを取り出し、表示できる Web サーバがあれば、極めて有効な検索ソフトがインターネット上で実現でき ることになります。 PHP は、この Web サーバ上で動作するソフトウェアを作成する為のスクリプト言語で、クライアント側 に表示される対話画面を介して利用者との擬似対話を行ったり、その利用者の要求に応じてデータベース サーバより必要な情報を取り出し、それらの情報を、クライアント側のブラウザソフトが解釈できる HTML 形式に変換して送る機能を実現するものです。 な お 、こ の機 能 を実 現す る方 法 とし て、 ク ライ アン ト サイ ド・ スク リ プト で実 現 する 方法 、 CGI (CommonGatewayInterface)方式で実現する方式、及びサーバサイド・スクリプトで実現する方式があり ます。PHP は、最後のサーバサイド・スクリプト形式での実現を可能としています。(CGI 形式でも可) PHP を介した Web サーバの概念図は以下の通りです。1.4
HTML,JavaScript,及び PHP を理解する上での予備知識
各種言語を使った構築される、サーバ上で動作する各種の Web サーバソフトを理解する上で必要となる キーワードは以下の通りです。 1) Web サーバソフト クライアント側からの要求に従い、各種の情報を検索し、その情報をブラウザソフトが認識できる HTML 形式に変換し、その要求元に送り返す機能を持ったソフトウェアであり、サーバコンピュータ上 で動作します。 2) クライアント側組み込み型スクリプト方式 クライアント側からの要求に応じて Web サーバソフトから送信されるスクリプトで、クライアント 側のコンピュータ上で実行されます。この形式のソフトは、Java スクリプト言語や VB スクリプト言 語により実現されるもので、HTML テキストに組み込まれた形式で実行されます。 但し、この形式では、アニメーション表示などのような動的な動作や、利用者との対話処理はできま すが、サーバ側にあるデータベースを直接扱う事はできない欠点や、クライアント側に負荷をかける という欠点があります。 3) CGI 方式(CommonGatewayInterface 方式) Web サーバ側のコンピュータ上で実行される方式で、クライアント側からの要求に従い Web サーバ が対応するソフトウェアを Web サーバ上で実行し、その結果をクライアント側に送り返します。この 方式の長所は、その CGI ソフトがダウンした場合でも Web サーバは処理を継続することができること です。短所としては、クライアント側からの要求毎に対応するプログラムを起動しなければならない 為に、応答速度やサーバ側のコンピュータに対する負荷の問題があります。 この方式を実現する為の言語は特に既定はありませんが、一般的には Perl や C 言語などが使われてい ます。補足:
CGI 形式で実行されるか、スクリプト形式で実行されるかは、プログラムファイルに設定される拡張子 で決まります。また、CGI 形式はサーバ側で独立プロセスとして動作しますので、そのプログラムに対し て実行権を設定しなければなりません。
4) Web サーバ組み込み型スクリプト形式
CGI 形式同様に、Web サーバ側のコンピュータ上で実行される形式ですが、CGI と大きく異なるのは、 対応するプログラムが Web サーバに組み込まれて実行される形式であることです。 つまり、クライアント側からの要求に従い、Web サーバがその要求に対応するプログラムを同じプ ロセスとして呼び出して組み込む方式を取っています。この関係で、応答は速いのですが、Web サー バそのものが大きくなる問題や、対応するソフトウェアに問題があった場合、Web サーバそのものに 影響を与えてしまう(一切サービスができなくなるなど)等の問題が発生する可能性があります。 補足: Web サーバはクライアント側からの要求に対し、対応するページを送信すると処理を終了しま す。このページがクライアント側の応答を必要とするものである場合は、クライアントから再度
URL+応答メッセージの形式で Web サーバに送信され、その URL に対応する Web サーバ上のプログ ラムが実行されます。このようにして、クライアントと Web サーバソフトは対話を行います。
1.5
各種のプログラミングを行う為の予備知識
PHP とは、ブラウザソフトが解釈できる HTML 形式のテキストファイルを作る言語です。また、この PHP 言語は、手続き型プログラムの作成、及びデータベースの作成ができます。 今回のコースで考察するモデルは、クライアント側からの要求に従い、Web サーバー上に構築されたデー タベースをアクセスし、クライアント側の要求に応じた処理を行うプログラムを Web サーバのスクリプト プログラムとして実現します。 データ及び処理の流れから見た場合、以下の様になります。 1) HTML で作成されたプログラムに、データベースのアクセス及びクライアントからの要求に対応する処 理部分を挿入したプログラムを作成し、Web サーバ上の所定のフォルダに格納します。 2) Web サーバソフト(本コースではアパッチ Web サーバを使用します)は、クライアントからの要求に 従い、PHP を含んだ HTML ファイルを読み込み、PHP 部分をサーバ上で実行し、その結果(HTML テキス ト)をクライアント側のブラウザソフトに返却します。 3) クライアント側のブラウザソフトは、Web サーバソフトから返却された HTML テキストを解釈し、画面 上に表示します。1.5.1 テキストエディタを使ったプログラム作成
PHP 言語(HTML 言語含む)を使ってプログラムを作成する場合、テキストエディタと言われる単純な文 字編集ツールを使う必要があります。PHP 言語を解釈するブラウザソフトや Web サーバソフトは、ワード などのような特殊な形式で作成された(段落設定や画像などが設定されている)ものは理解することがで きません。この単純な文字列編集用ツール(テキストエディタ)としては、Windows に標準に装備されて いるメモ帳や、Linux 上に装備されている”vi”ツールがあります。 本コードでは、Windows 上で動作するフリーソフトである、Terapad ツール(テラパッド)を使用すること とします。補足1: PHP 言語や PostgreSql 言語などを含む一般的なプログラミングでは、コメント本文を除き半角 英数字(或いは直接入力モード使用)で作成しなければなりません。全角やひらがな文字を使っ た場合、構文が解釈できず、構文不正と判断されますので注意してください。 特に、全角のブランク(編集画面では見えません)が入った場合も正しく認識できませんのでご 注意ください。 補足2: Terapad ツールにおいて、ライン番号を表示したい場合は、「表示」⇒「編集モード」操作で、 「HTML」の項目を選択します。 補足3: Linux 上で動作するデータベースは、一般的には EUC コードを使用します。この関係で、デー タベースのアクセスを前提としている PHP プログラムを登録する場合は、EUC コードを使用しま す。 補足4: サーバ側の php.ini ファイルで宣言されているキャラクタコードも以下と設定されていること を確認してください。 default_charset=”EUC-JP” 補足5: TeraPad ツールにおいて、文字コードの違いにより字化けを起こした場合は、「ファイル」⇒「漢 字コード指定再読込」で表示されるメニューで、適切なコード(例えば“EUC”)を選択してくだ さい。
1.5.2 ffftp ツールによるプログラムの登録
PHP 言語や HTML 言語を使ってプログラミングを行い、Web サーバ上の所定の場所にそのプログラムを登 録することにより、始めてネットワーク(インターネットを含む)上でそのプログラムを実行させ、結果 を表示することが出来ます。 ftpツールには、いろいろの種類が用意されていますが、本コースでは ffftp ツールを使って Web サ ーバ上にプログラムを登録することとします。 注意: Web ソフト(PHP プログラムや HTML プログラムなど)をサーバ側に登録する場合、登録するフォルダ が規定されていますので、サーバ側のインストール時に定義されたフォルダを確認ください。 補足: サーバへの接続に関する設定は、「接続」プルダウンの“接続”機能を使い、以下の画面にて行います。 補足: ホストの設定画面にて、PHP(HTML プログラム、及び画像含む)プログラムを登録する Web サー バのアドレスや、登録フォルダ名を設定します。1.5.3 プログラム作成から実行まで
Web サーバ上で動作するプログラム、及びクライアント側に動作するプログラムなど、Web 関連で必要と なる主なプログラミング言語には以下があります。勿論、これ以外にも様々な言語が使用されていますが、 以下の言語だけでも Web 関連のソフトウェア開発は十分に可能となります。 HTML :クライアント側で実行されます。 JavaScript :主にクライアント側で実行されます。 PHP :サーバ側で実行されます。 PostgreSql :サーバ側で実行されます。 本章に記載されている個々のサンプルプログラムを実行し、その結果を確認することにより各々のプロ グラムの特徴を理解します。サンプルプログラムの確認手順は以下の通りです。 ① Terapad を起動します。 ② 例として記載されているステートメントを Terapad 画面上に作成し、定義された名前で登録します。 ③ FFFTP を使って、Terapad で作成されたプログラムをサーバの所定のフォルダ(/var/www/html フ ォルダ)にコピーします。④ クライアント側(Windows 側)のブラウザソフト(IE)を起動し、以下の url を指定します。 http://192.168.0.100/登録を行ったプログラム名 ⑤ 上記の操作によりブラウザ(IE)画面に表示される内容を確認します。サンプルプログラムと画 面に表示された内容が理解できれば次のサンプルソフトに確認に進みます。 補足: “192.168.0.100”は、サーバの IP アドレスです。設定する場合は、実際の IP アドレスを設定 してください。
第2章 HTML プログラミング
2.1
HTML プログラミングの基本
HTML(HyperTextMarkupLanguage)は Web ページを記述する記述言語で、クライアント上で実行される各 種のブラウザソフト(インターネットイクすポローラやネットスケープナビゲータ等)により解釈・実行 されます。この HTML は、通常のプログラムとは異なり、動的な動作(外部条件等で処理の流れを制御する) は行えません。つまり、HTML で書かれたページの情報は、そのページを表示した時に全て画面上に表示さ れますので、ユーザの要求などに応じて処理を変えることはできません。このような処理を行う場合は、 別のページに切り替えたり、他の言語(JavaScript 言語や PHP 言語等)と組み合わせて行う事になります。 補足: Web サーバ上で動作する各種のプログラム(PHP で作成されたプログラムや CGI プログラム)の目的は、 HTML プログラムをダイナミックに作り出すことにより、クライアント側画面に任意の内容を表示すること です。上記理由から、Web プログラムを作成する場合は、HTML 構文を知っている必要があります。 HTML の基本構文に関しては、付録の HTML 基本構文を参照ください。尚、それ以上の詳細に関しては、 関連する市販マニュアルかホームページの関連するページを参照してください。 2.1.1 HTML プログラムの基本構成 HTML 言語は、”<”と”>”で囲まれて表示されるタグにより、その内容が識別されます。また、タグの 開始は、”<XXXX>”(xxxx はタグ名)と定義され、タグの終了は”</xxxx>”(xxxx は開始タグで設定さ れたタグ名)と定義されます。(終了タグが必要のないものもあります) HTML 言語では、このタグで定義された内容に応じた内容を記述することになります。尚、HTML 言語で記 述されたプログラムと、ブラウザソフトで表示された画面の関係は以下のようになります。 html01.htm プログラム <HTML> <HEAD> <TITLE> ページのタイトルです </TITLE><META name="author" content=”山田"> </HEAD> <BODY> ページに表示する実体を記述します。 </BODY> </HTML> メタ情報とは、このプログラムに対する追加 情報(作者名や作成日、ページの説明等)の ことで、画面上には表示されません。 また、検索エンジンの中には、このメタ情報 を検索対象としているものもあります。
補足: JavaScript プログラムや、PHP プログラムは、この HTML プログラムの<BODY>タグの直前、或いは、<BODY> タグと</BODY>タグの間に挿入します。(PHP 言語の基本は、この HTML プログラムをダイナミックで作り出 すことを目的とした言語です。詳細は PHP 言語の項を参照してください) 2.1.2 ページの実体情報を定義する基本構成 <BODY>タグと</BODY>タグの間に定義されるページの実体情報には以下のようなものがあります。この情 報を元に、ブラウザソフトは Web 画面を構築し、表示します。 html02.htm プログラム <HTML> <BODY> <ADDRESS>
YUI(E-Mail:<A href=mailto:[email protected]>[email protected]</A> </ADDRESS>
<SCRIPT language=”JavaScript”> <!--
document.write("This part is coded by JavaScript"); //--> </SCRIPT> <P> 段落1の表記です。 </P> <P> 段落2の表記です。 </P> <CENTER> センタリングが定義されています。 </CENTER> <BR>最初に改行をしています。 <BR>最初と最後に改行をしています。<BR> <IMG src=”Test.jpg” width=100
height=100 align=”bottom”> 画像を表示するタブです。 </BODY> </HTML> 補足: ブラウザの主画面上に表示される内容は、基本的には、<BODY>と</BODY>の間で定義されること になります。例題では、主なタグを定義していますが、上記以外に様々なタグが提供されていま す。
2.1.3 HTML 構文におけるコメントの挿入 HTML プログラムの中に注釈を入れる場合は、”<-- 注釈 -->”形式で挿入します。ブラウザソフト は、、、この注釈で定義された部分を無視してページ表示を行います。 html03.htm プログラム <HTML> <BODY> <!-- この部分はコメントであり、ページには表示されません --> この部分はコメントではありませんのでページに表示されます。 </BODY> </HTML> 2.1.4 HTML 構文を使ったユーザインターフェース HTML 構文を使ってユーザとの対話処理を行う画面を定義することができます。この入力された内容は、 JavaScript 言語で作成されたプログラムか、PHP 言語で作成されたプログラムで解釈し、処理することが できます。 html04.htm プログラム <HTML> <BODY> <FORM> テキスト入力<BR>
<INPUT NAME="TXT" TYPE="TEXT" SIZE=20> <BR><BR>パスワード入力<BR>
<INPUT NAME="PWD" TYPE="PASSWORD" SIZE=20> <BR>隠しデータ送信<BR>
<INPUT NAME="HID" TYPE="HIDDEN" SIZE=20 VALUE="隠し情報"> <BR>複数行テキスト入力<BR>
<TEXTAREA NAME="TXTA" ROWS=5 COLS=50 WRAP=OFF> </TEXTAREA>
<BR>
<INPUT type="submit" value="実行" width="10"> </FORM>
</BODY> </HTML> 補足:
2.2
基本的なタグの構文
BODY 要素タグ内で定義されるタグには、ブロック要素タグとインタイン要素タグがあります。ブロック 要素タグの中で定義されたインラインタグは有効となりますが、インラインタグの中で定義されたブロッ クタグにはインライン要素タグの内容は適用されません。例えば、 <STRONG><TABLE><TD>xxxxx</TD></TABLE></STRONG>と定義されたインラインタグである強調文字指定 (<STRONG>)は、xxxxx には適用されません。また、タグは以下のように設定します。 <要素タグ 属性=属性値 ・・・・・> 注意: タグには、ブラウザソフトの違いによって使用できるものと使用できないものがあります。本書の例 題で使用しているタグは、基本的には全てのブラウザの共通に使われるものですが、以下の表に記載さ れているタグが、全てのブラウザに対して適用できる訳ではあります。(どのタグがどのブラウザに有効 かに関しては、HTML に関する参考文献を入手して確認ください) タグ種:B⇒ブロックタグ タグ種 開始タグ 終了タグ 意味と主な設定パラメータ - <HTML> </HTML> HTML プログラムの先頭と最後に指定します - <HEAD> </HEAD> ヘッダ情報を定義します - <BODY…………> </BODY> ページ内に表示する内容を定義します 補足:bgcolor,text,link,alink,vlink, background,bgproperties,leftmargin, topmargin - <TITLE>……… </TITLE> このページのタイトルを定義します HEAD~/HEAD の間に設定します - <META ………> このページに対する付加情報を定義します <HEAD>~</HEA>D の間に設定します 補足:name,content,lang,http-equiv - <LINK ………> ドキュメント間の関係を定義します。 補足:rel,href - <!--………… 任意のコメントを定義します B <ADDRESS> </ADDRESS> ページに対する問い合わせ先の定義 <BASEFONT………> 基本フォントを定義します 補足:size,color,face <BASE………> 本ページの基本 URL を定義します 補足:href - <SCRIPT………….> </SCRIPT> 挿入するスクリプト言語を定義します 補足:language,type,src B <P………> </P> 段落を定義します 補足:align B <DIV……….> </DIV> ブロック単位でのまとまりの定義します 補足:align <SPAN> </SPAN> 行単位でのまとまりの定義します B <CENTER> </CENTER> 画像や文字の中央揃えを定義します <BR> 強制改行を行います <NOBR> </NOBR> 強制改行を禁止します <WBR> 強制改行の解除 <MULCOL………> </MULTICOL> 段組表示を定義します 補足:cols,qutter,width注意:このタグはネットスケーブでのみ有効です。 B <HR………> 水平線描画を定義します 補足:size,width,align,noshade,color <FONT………> </FONT> フォントのサイズを定義します 補足:size,color,face, <BIG> </BIG> 標準より大きなフォントを定義します <SMALL> </SMALL> 標準より小さなフォントを定義します <B> </B> ボールド文字を定義します <I> </I> 斜体文字を定義します <EM> </EM> 強調文字(斜線)を定義します <STRONG>…… </STRONG> より強調文字(太字)を定義します <TT>…… </TT> テキストの当幅表示を定義します <SUP>…… </SUP> 上付け文字を定義します <SUB>…… </SUB> 下付け文字を定義します <S>…… </S> 取り消しライン表示を定義します <STRIKE>…… </STRIKE> 取り消しライン表示を定義します <U>…… </U> 下線表示を定義します <DEL>…… </DEL> 取り消しされたことを定義します <INS>…… </INS> 挿入されたことを定義します <CITE>…… </CITE> 引用・参照元であるkとを定義します <CODE>…… </CODE> プログラムコードであることを定義します <KBD>…… </KBD> ユーザ入力用テキストであることを定義します <VAR>…… </VAR> プログラムの変数・引数であることを定義します <SAMP>…… </SAMP> プログラムやスクリプトの出力結果であることを 定義します <ABBR…>…… </ABBR> 省略文字であることを定義します 補足:title <ACRONYM…>…… </ACRONYM> 頭文字であることを定義します 補足:title B <H9>…… </H9> 見出しと文字の大きさ(9の部分で指定します。 数が大きいほうが大きくなります)を定義します 補足:1~6,align B <BLOCKQUOTE…………> </BLOCKQUOTE > 引用文であることを定義します 補足:cite <Q……> </Q> 引用文であることを定義します 補足:cite B <PRE> </PRE> ブラウザによる非編集表示を定義します B <XMP> </XMP> ブラウザによる非編集表示を定義します <PLAINTEXT> ブラウザによる非編集表示を定義します <RUBY>…<RP>…</RP>…<R T>…</RT> </RUBY> ルビ(読み仮名)を定義します <BLINK>……… </BLINK> ブリンク表示を定義します <MARQUEE………> </MARQUEE> 文字のスクロール表示を定義します 補足:direction,behavior,loop, scrollamount,scrolldelay,bgcolor, height,width,hspace,vspace B <UL………> </UL> マーク付きリスト表示を定義します
<LI…> …… 補足:type B <OL……> <LI……> …… </OL> 番号付きリスト表示を定義します 補足:type,start,value B <MENU> <LI……> ……… </MENU> マーク付きリスト表示を定義します B <DIR> <LI……> ……… </DIR> マーク付きリスト表示を定義します B <DL…> <DT>…<DD>……… </DL> 定義型リスト表示を定義します 補足:compact <IMG………> ページ上に画像描画することを定義します 補足:src,lowsrc,alt,width,height, border,align,vspace,hspace,dynsrc,start,loop ,usemap <BR………> 改行を定義します 補足:clear <SPACER………> 縦横スペース表示を定義します 補足:size,type,width,height,align <EMBED………> 音声や、動画データの表示を定義します 補足:src,width,height,align,autostart, loop,hidden
<NOEMBED> </NOEMBED> 動画非対応(EMBED)時の表示内容を定義します <OBJECT………> </OBJECT> オブジェクト表示を定義します 補足:data,type,align,width,height, border,hspace,vspace,classid,codetype, codebase,archive,standby,usemap,name, declare <BGSOUND………> バッググランド音楽を定義します 補足:src,balance,volume,loop <A………> </A> リンク先を定義します 補足:href,target,name,accesskey,title <BASE………> リンク先を定義します 補足:target <MAP……><AREA………> </MAP> イメージマップを定義します(複数リンク) 補足: MAP:name, AREA:shape,cords,href,alt B <TABLE……> </TABLE> 表の描画を定義します 補足:border,align,vspace,hspace, width,height,frame,rules,bordercolor, bordercolorlight,bordercolordark, background,bgcolor,cellspacing, cellpadding,summary <TR>…<TD>…</TD>… </TR> 表の行と列を定義します 表描画タグ(<TABLE>と</TABLE>など)内に定義し ます 補足:background,bgcolor,rowspan,
width,height,colspan,align,valign, nowrap,headers,scope,abbr,axis,id <TH>…… </TH> 表の見出しを定義します 表描画タグ(<TABLE>と</TABLE>など)内に定義し ます 補足:background,bgcolor,rowspan, width,height,colspan,align,valign, nowrap,headers,scope,abbr,axis,id ◎ <CAPTION………> </CAPTION> 表(行)に表示されるタイトルを定義します 補足:align,valign <THEAD……>…… </THEAD> 表(行)のヘッダを定義します 補足:bgcolor <TBODY……>…… </TBODY> 表(行)のボディー部分を定義します 補足:bgcolor <TFOOT……>…… </TFOOT> 表のフッター部分を定義します 補足:bgcolor <COLGROUP……> </COLGROUP> 表(列)のグループ化を定義します 補足:span <COL………>……… 表(列)の個別の定義を行います <COLGROUP>と</COLGROUP>間に定義します 補足:span <FRAMESET…><FRAME……> </FRAMESET> フレームの基本的が定義を行います 補足: <FRAMESET cols,rows,frameborder, border,framespacing,bordercolor,…> <FRAME src,name,frameborder, bordercolor,scrolling,noresize, marginwidth,marginheiht,…> B <NOFRAMES> </NOFRAMES> フレーム未対応ブラウザに対する代替表示内容を 定義します <IFRAME………> </IFRAME> インラインフレームのオプションを定義します。 補足:src,name,width,height,frameborder, bordercolor,scrolling,align,marginwidth,marg inheight B <FORM…………> </FORM> フォームオブジェクトを定義します このフォームオブジェクトは、ブラウザからWe bサーバ(Apache 等を経由し、PHP にデータを渡 す)にデータを送るための手段を提供することや、 メールサーバを起動する手段を提供するもので す。 補足:action,method,enctype <INPUT………> 入力を定義します 補足:type,name,value,size,maxlength, checked,width,height <TEXTAREA…………> </TEXTAREA> 複数行入力を定義します 補足:rows,cols,name,wrap <SELECT…><OPTION…>… … </SELECT> プルダウンメニューを定義します 補足: <SELECT name,size,,,>
<OPTION value,selecte,,,> <BUTTON…………> </BUTTON> 送信ボタンなどを定義します 補足:type,name,value <STYLE…………> </STYLE> ページ全体に対するスタイルを定義します ヘッダー<HEAD>内に定義します 補足:type
補足:
<META>の設定例
<HEAD>
<title>UITEC の META 設定</title>
<META name="author" content="uitec">
<META name="build" content="2003.07.29">
<META name="expires" content="2010.11.10">
<META name="copyright" content="none">
<META name="robots" content="all">
<META name="reply-to" content="[email protected]">
<META name="description" content=" PIC を使った電子工作教室、パソコン教室、Web
を含む各種プログラミング教室 UITEC のホームページです">
<META name="keywords" content="電子工作,パソコン教室,各種プログラミング(アセン
ブラ、HTML,JavaScript,PHP,Postgresql),サーバ構築,大田原,栃木,大田原,">
<META http-equiv="refresh"
content="10;url=http://www.asahi-net.or.jp/~yh5m-yi/Newindex1.html">
<META http-equiv="Content-Type" content="text/html; charset=EUC-JP">
</HEAD>
<META>タグは、Web ページに対する追加情報を設定するもので、name 属性と、content 属
性,http-equiv 属性から構成されます。name 属性では、任意の属性値を設定し、content 属性
で、name 属性値に対する詳細内容を設定します。また、http-equiv 属性では Web ページのリ
フレッシュ処理や、Web ページを作成した文字コードの設定などをせっていします。また、name
属性値の例としては、以下のようなものがあります。
author
:作成者
build
:作成日
expires
:失効日(有効期間)
reply-to
:連絡先
copyright
:コピーライト
robots
:検索エンジンに対する設定
decription
:検索エンジン登録詳細
keywords
:検索エンジン登録キーワード
補足:
最近の検索エンジンは、この META 情報を使うことはないと思われます。
補足:その他の META 情報
<META http-equiv="refresh"・・・構文
:Web ページ起動10秒後に指定された Web ページに切り替わります。
<META http-equiv="Content-Type"・・・構文
:ブラウザのエンコードが、charset で設定された内容に切り替わります。
2.3 基本的なタグパラメータの設定
HTML 構文に対して設定される主なパラメータの設定値(主な項目の概要のみ)は以下のとおりです。 属性 主な設定値 意味 alink “#ffffff”,”red”,”yellow”,…… リックテキストをクリックしてい るときのカラーの値、又はカラー名 の設定 align “left”,”center”,”right” “top”,”middle”,”center”,”bottom” ,”texttop”,”absmiddle”,”baseline”, “absbottom” 並びの設定 autostart “true”,”false” 自動再生可否の設定 alt “xxxxxxx” 画像が見つからない場合に、画像の 代わりに表示する文字列の設定 表示された画像を上にカーソルを 置いた場合も表示されます。 accesskey “x” ハイパーリンク操作での、 “Alt+x”で起動するコードの設定 abbr “xxx” テーブル表示における、ヘッダ情報 の簡略コードの設定 action “xxx” フォームデータ送信先の設定 background “xxxxx.gif”,"xxxxx.jpg",…… 背景に表示する画像の設定 behavior “scroll”,”slide”,”alternate” MARQUEE コマンドに対するパターンの設定 border “99” 境界線の太さの設定 bordercolorlight “#ffffff”,”カラー名“ 外枠の明るい線に対する設定 bordercolordark “#ffffff”,”カラー名“ 外枠の暗い線に対する設定 bgcolor “#ffffff”,”カラー名“ 背景色の設定 balance “-10000”~”10000” 音声左右バランスの設定 bordercolor “#ffffff”,”カラー名“ フレームボーダの色の設定 content “text/html;charset=shift_jis”, “text/html;charset=EUC-JP”, “text/html;charset=unicode”, http-equiv=”content-type”と対 として使用され、当該ページが使用 する漢字コードを定義します。 “9;url=http://www.xxxxxxxx/yyyy.html” http-equiv=”refresh”と対とし て使用され、指定時間(9秒)後に 指定された URL に自動的に切り替 える構文です。 cols “99” 段数の設定、画面を横分割するサイ ズの設定 入力欄の横幅の設定 color “#ffffff”,”red”,”yellow”,”black”, “blue”,”brown”,”gray”,”pink”,… カラーの値、又はカラー名の設定 cite “xxxxx” 引用元を示す URL の設定 clear “all”,”left”,”right” テキスト回り込み解除の設定
coods “xx,xx,xx,xx,xx,xx,,,,,,” リンクボタンの範囲の設定 cellspacing “99” セル同士の感覚の設定 cellpadding “99” セル内余白サイズの設定 colspan “99” セルの横方向連結の設定 class “xxxx” クラス名の設定 direction “left”,”right” スクロール方向の設定 dynsrc “xxxxx” enctype “multipart/form-data”, “application/x-www-form-urlencoded”, “text/plain” フォームデータ送信形式の設定 face “xxx,xxx,xxx” フォント(書体名)の設定 frame “box”,”border”,”void”,”hsides”, “vsides”,”above”,”below”,”lhs”, “rhs” テーブルボーダーの個別設定 frameborder “0”,”1”,”yes”,”no” 境界線の表示有無の設定 framespacing “99” フレーム間の間隔の設定 href “url” “tel:xxxx”,”mailto:xxxx” リンク先の URL の設定 height “99” 高さの設定 hspace “99” 左右の余白数の設定 hidden “true”,”false” フラグインディケータ表示/非表示 の設定 headers “xxxxx” 対応するセルに対するヘッダ情報 を持つ別セルの ID の設定 lang “ja”,”en”,”fr”,”de”,”zh” link “#ffffff”,”red”,”yellow”,…… リンクが設定された文字列のカラ ーの値、又はカラー名の設定 leftmargin “99” language “Javascript” loop “99”,”inifinite” “true”,”false” 繰り返し回数の設定 繰り返し再生可否の設定 lowsrc “xxxx.gif”,,,, 表示する仮画像の設定 marginwidth “99” 左右マージンの設定 marginheight “99” 上下マージンの設定 method “post”,”get” フォームデータの送信形式の設定 maxlength “999” 最大入力文字数の設定 name nowrap セル内改行の禁止の設定 noresize フレームリサイズ禁止の設定 qutter “99” 段と段の間のスペースの設定