html - みる会図書館


検索対象: UNIX MAGAZINE 2001年4月号
40件見つかりました。

1. UNIX MAGAZINE 2001年4月号

でも使えるインターネット 表 3 フレツツ・ ADSL に対応しているプロバイダ ( オプション料金第師同 ) プロバイダ名 ASAHI ネット AT&T WorldNet Service リムネット AIRnet U-netSURF ZERO IIJ4U UIUI KIWI INTERNET ザクソンインターネット サービス名 フレツツ・ ADSL オプション フレツツ・ ADSL ( 有料・試験サーピス ) フレツツ・ ADSL オプション フレツツ・ ADSL オプション ( 3 月末までの試験サーピス ) ネ ) 溯費用 950 円 なし なし なし なし なし なし なし なし ロ料金 ( 月詞 950 円 なし なし 1 , 600 円 なし なし 500 円 1 , 400 円 1 , 200 円 なし アドレス割当て方式 グローバル / 1 個 / 可変 グロ→ヾル / 1 個 / 可変 グロ→ヾル / 1 個 / 可変 グローバル / 1 個 / 可変 グローバル / 1 個 / 可変 図 1 プロバイダ各社の ADSL サービス URL @nifty @nsk AIRnet ASAHI ネット AT&T WorldNet Service BIGLOBE COMS インターネット接続サーピス DION DTI Dream Net EditNet IIJ4U int erQ KIWI INTERNET Panasonic Hi—Ho ODN OCN So-net U-netS URF UIUI VC- net WAKWAK ZERO アルファインタ インターリンク キャンノヾスネッ サクソンインタ 東京電話インタ ぶらら リムネット ていない。 ト ット ット ット http://www.nifty.com/connect/fadsl/ http://www.nsknet.or.jp/annai/int/adsl.html http://www.airnet.ne.jp/l-ser/fletsadsl/ http://www.asahi-net.or ・ jp/info/nttadsl/ http://www.att.ne.jp/info/flets-a.html http://www.biglobe.ne ・ jp/service/adsl/flets/ http://www.rim.or ・ jp/rim/flets/adsl/ http://www.plala.or.jp/access/guest/adsl/ http://www.dup.ttcn.ne.jp/beginner/service/connect-adsl.html http://www.xaxon ・ ne. jp/support/adsl.html http://www.campus ・ ne ・ jp/service/flets/adsl.html http://www.interlink.or.jp/adsl/ http://www.alpha-net.ne ・ jp/info/service/dialup-adsl.html http://www.zero.ad.jp/info/02-f.html http://www. WAKWAK. com/fadsl/ryokin.html http://www.vc-net.ne ・ jp/info/adslrele. html http://www.uiui.net/ http://www.netsurf.ad.jp/kojin/flets-adsl.html http://www.so-net.ne.jp/access/high/flets/ http://home.hi-ho.ne.jp/home/adsl/nttcourse/ http://www.odn.ne ・ jp/infoodn/fadsl/ http://www.ocn ・ ne. jp/adsl/flets/ http://www.kiwi.ne ・ jp/ http://members.interq・ or ・ jp/service/flets/adsl/ http://www.iij4u.or.jP/NeW/20010110ー1.html http://www.editnet.co ・ jp/net/tariff-ip-l. htm http://www.dream.com/service/dial/fletsadsl/ http://www.dti.ad.jp/service/xdsl/adslf/fee.html http://www.dion.ne.jp/dialup/service/bari-adsl/ http://www.com/.ne.jp/dialup/flets-adsl-business.html 専門用言韶 ) 説明がない。 ようという人には、 ISP のサーピス内容を調べて上師交する こんな状況なので、これからインターネットを使い始め 90 のは難しいのではないでしようか。これらのなかで、初じ、 者向けに上交的丁寧に作られていると感じたのは Pana- sonic Hi-Ho の Web ページでした。もしかすると、家 電販売て培われたノウハウが活用されているのかもしれま せん。 UNIX MAGAZINE 2001.4

2. UNIX MAGAZINE 2001年4月号

連載 / UN Ⅸ便利帖ー⑩ リスト 1 qdata. txt 好きな魚はどれですか。 イワシ サバ サンマ 好きな月はどれですか。 1 月 2 月 3 月 4 月 5 月 好きな果物は ? バナナ 蜜柑 りんこ ます 5 。つまり、前回のようなインストールをおこなった を探し、その行に index. php というファイル名を追加し vi などのエデイタで DirectoryIndex というキーワード して求します。具ー勺には、スーパーユーサーになって、 まれた HTML ファイルを、そのような彳齬リのファイルと 今回は、 index. php という PHP スクリプトが埋め込 ことかできます。 ファイルの内容を返すように Apache httpd を設定する カ甘旨定されたときに、 index. htm とか index. asp などの 更したり追加したりすると、ディレクトリ名だけの URI うキーワードで当求されているファイル名です。これを変 Apache httpd の成疋ファイル 4 に DirectoryIndex とい ファイルの内容を WWW プラウサに返します。これは、 ュ ) のときには、 httpd が自動的に index. html という http://server/のように URI の末尾が / ( スラッシ となっている部分を、 DirectoryIndex index. 五 tml ときには、 UNIX MAGAZINE 2001.4 み込まれます。 6 こうすると、 index. html と index. php の両方がある場合は前者カ毓 5 標ー純勺なインストールでは index. html だけカ求されています。 4 前回、 /usr/local/www/conf/httpd.conf としました リプトを利用して、念のため言ファイルの去をチェッ このように変更したら、前回紹介した apachectl スク と変更します 6 。 DirectoryIndex index. html index. php リスト 2 index. php く ! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4 .01 / / EN " > く html lang="j a" > く he ad> く meta http—equiv="Content—Type" content="text/html ; charset=ISO-2022-JP"> く tit1e>Questionnaire く /title> く /he ad> く body> く hl > アンケートく / hl > く form action="total ・ php く ?php $fd = fopen("qdata. txt" $q—seq = 1 ; while (!feof($fd)) { chop(fgets($fd, $buf method= 256 ) ) ; get " > $buf ech0 " く p>" echO " く 01 > \ Ⅱ " ・ $c-seq = 1 ; chop(fgets($fd, 256 ) ) ; $buf $buf = chop(fgets($fd, 256 ) ) ; value=\"$c—seq\"> く /li>\n" ・ name=\"q-$q-seq\" echo " く li>$buf く input type=\"radio\" while ( !feof ($fd) & & strcmp($buf , ” " ) ! = 0 ) { echo " く / 01 > \ Ⅱ " ・ fclose($fd) ; く p> く input type= く /form> く /body> く /html > " submit " value= " 回答提出 " > く / p > クしたあと Apache httpd を再起動します。工ラーカ可 も発生しなければ次のような結果になるはすです。 # cd /usr/local/www/conf # vi httpd. conf ( 上記の変更を加える ) # .. /bin/apachectl configtest Syntax OK # .. /bin/apachectl graceful 最後の graceful という引数は、 Apache httpd の停止 restarted . /bin/apachectl graceful : httpd gracefully と起動を一度におこなうためのものです。 125

3. UNIX MAGAZINE 2001年4月号

連載 / UN Ⅸ便利帖ー リスト 3 http://server/Q/にアクセスした結果 今回作成するアンケートページの信は、次のとおりと く ! DOCTYPE HTML PUBLI C "-//W3C//DTD HTML 4.01 / / E く html lang="ja"> く head> く meta http—equiv="Content—Type " content="text/html ; charset く tit1e>Questionnaire く /title> = ISO ー 2022 ー JP " > く /head> く body> く hl > アンケートく / hl > く form action="total . php" method= く p > 好きな魚はどれですか。く /p> く 01 > く li > アジく input type= value="4"> く /li> name="q—l " く 1i > サンマく input type="radio" value="3"> く /li> name= 'q—l" く 1i > サ / ヾく input type="radio" va1ue="2"> く /li> name="q—l" く 1i > イワシく input type="radio" value="l"> く /li> name= q-l " します。 アンケート提示ペー く li > 1 月く input type く 01 > く p > 好きな月はどれですか。く /p> く / 01 > ="radio" 無己名アンケートとする。 ・譿ごとに回答を集言 1 する。 ・回答ば尺肢から選ふ形式とする。 get"> く li > 2 月 く 1i > 3 月 く li > 4 月 く li > 5 月 く / 01 > value="lt'> く /li> く input type="radio" name= " q- va1ue="2"> く /li> く input type='tradio" name="q 2 " vaIue="3"> く /li> く input type="radio" name= q—2" va1ue="4"> く /li> く lnput type="radio" name="q 2 ” vaIue="5"> く /li> く p > 好きな果物は ? く /p> く 01 > く 1i > ′くナナく input type="radio" 3 ー value="l"> く /li> く 1i > 蜜柑く input type="radio" 3 ” va1ue="2"> く /li> く 1i > りんごく input type="radio" name="q 3 " value = " 3 " > く / 1 土 > く / 01 > く p> く input type='l submit" value= く /form> く /body> く /html > ・間題文、予 尺肢 1 、斑テ 尺肢 2 、斑 〕尺肢広丁 " 回答提出 " > く / p > ますはこのアンケートを提示するべージを作成します。 アンケートカ畯わるたびにページそのものを作りなおすの は恰好悪いので、アンケート内容 ( 間題と尺肢 ) は別フ ァイルとし、そのファイルを読み込んで HTML として提 示するファイルを PHP で作成します。 アンケート内容かオ褓内されているファイルの、 1 間ぶん のフォーマットは次のようにします。 126 つまり、具イ勺なファイル (qdata. txt) の内容はリス ト 1 のようになります。リスト 1 では 3 間ぶんしか用意 していませんが、このフォーマットなら問題数はいくつで も増やすことかできます。 このようなフォーマットのファイルを読み込んで、内 容を適切に表示する PHP スクリプトはリスト 2 のように 書けます。これを Q " というディレクトリに index ・ php という名前で保存しておきます。つまり、 URI は http: UNIX MAGAZINE 2001.4

4. UNIX MAGAZINE 2001年4月号

連載 / IJN Ⅸ便利帖ー リスト 4 total ・ php く ! DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4. OI//EN"> while (isset($$q)) { $q—seq; $q—seq = 1 ; く ?php く hl > アンケート結果く / hl > く body> く /he ad> く tit1e>Tota1 く /title> content="text/html ; く meta http—equiv="Content—Type" く he ad> く tm1 lang="ja"> charset=ISO-2022—JP"> echo " く p>Q . $q-seq く /p>\n" while ( !flock($fd, LOCK—EX)) sleep(l) ; $c—seq = 0 ; while ( ! feof ($fd)) $buf [ + + $c-seq] chop(fgets($fd, 16 ) ) ; //server/Q/ となります。この例では、ファイルか存在し なかったときなどのエラー処理を大幅に省略しています。 PHP でテキストファイルの内容を読み込むには、まず fopen() でファイルをオープンし、 fgets() で 1 行すっ内 容を読み込み、 fclose() でファイルを閉じるという手順を 踏みます。 chop() 関数は perl などでおなしみの、、、文 字列から末尾の空白や改行を削除する " というものです。 また、リスト 2 では、変数 $q-seq に間題番号を、変数 $c-seq ロ尺肢の番号をオ褓内しています。〕尺肢は。 1 要 素 ( 番号付き箇条書き ) を使って表示します。 このページ (http://server/Q/) にアクセスすると、 リスト 3 のような結果カ等られます。もちろん、 WWW プラウサでアクセスすれは普通の HTML ファイルと同し ように解釈されて表示されるはずです。 アンケート集計ページ 今度は、アンケート結果を集計するべージを作成しま す。さきほどの index. php では、集言 t 用スクリプトとし て total.php を form 要素から指定していました。 UNIX MAGAZINE 2001.4 if ($$q > 0 and $$q く $c-seq) rewind($fd) ; 1 ; $i く $c-seq; $ i + + ) { for ($i fputs($fd, $buf [$i] ) ; fputs($fd, "\n") ; flock($fd, LOCK-UN) ; fclose($fd) ; echO " く 01 > \ n " for ()i = 1 ; $ 土く $c-seq; $ i + + ) echo " く li>$buf C$i] く /li>\n" ・ echo " く / 01 > \ n " $q—seq; く /html > く /body> く /p> く a href= く p > でアンケートに、、アジ " 、、 3 月 ' 、蜜柑 " と回答すると、集 "index. php"> アンケートへ戻るく / a > 127 まわないよう、 ck ( ) などを用いてファイルをロック 複数のプロセスカ祠しファイルを邱にオープンしてし をおこなえるような属性を設定しておく。 なわれるので、ファイルにはそのユーザーが必要な操作 に対する操作も nobody というユーサーの権限でおこ うューザーの権限で動作している。そのため、ファイル ・前回言殳定したように、 Apache httpd は nobody とい 次の 2 点に注意が必要です。 スクリプトでファイルを書込み用にオープンする場合は、 いるのがもっとも簡単だと思います。しかし、このような 各尺肢が選ばれた回数を言求するには、ファイルを用 なります。 いて各〕尺肢か選ばれた回数をカウントすればよいことに これカヾ度されたら、 total.php ではそれぞれの問題につ http : //server/Q/t0ta1. php?q—1=1&q-2=3&q—3=2 択肢の内容力鍍されます。 計用に呼び出される total.php には次のような URI で選

5. UNIX MAGAZINE 2001年4月号

表 1 GCC のテストに用いられるコード 表 2 更新されたそ也のソフトウェア 名前 Linux カーネノレ GNU Emacs POOMA LAPACK ロロ C 十十 Fortran 2.4.0 20.6 2.2.0 3.0 かった。 16 ピットのフィールドに 32 ビット長のデータ ラットホームを同様にサポートすることはできない。そ ボランティア・べースで開発しているため、すべてのプ GCC は多くのプラットホームをサポートしているが、 れており、今回はそれに向けてのイ業である。 GCC 3.0 は 2001 年第 1 四半期のリリースが予定さ 0 GCC 3.0 へ向けて CVS ツリーにプランチが作られ *GCC 3.0 てることで対処が可能である。 いるが、 CORE SDI により配布されているパッチを当 要がある。 SSHI については、 SSH2 への移行を勧めて 降または OpenSSH 2.3.0 以降にアップグレードする必 意のコードを実行される可能生があるので、 SSH 2.0 以 れていないが、 sshd を実行しているユーザーの権限で任 現在このセキュリティ・ホールを用いた攻撃は確認さ ケットを受け取った際に三する。 を書き込んでしまうために起こるもので、巨大な SSH パ ムには以下のものがある。 評価をおこなっている。 こで、ターゲットを絞り、 GCC 3.0 が開発時の第一目標としているプラットホー ますそのプラットホームでの BIND 9.1.1rc3 djbdns 1.05 fetchmail 5.6.8 glibc 2.2.2 ImageMagick 5.2.9 IMAP 2000C LFTP 2.3.8 libpng 1.0.9 Lsof 4.55 Mew 1.95b112 mnews 1.22PL5 Mozilla 0.8 OpenSSH 2.5.1P2 ProFTPD 1.2.1 SMTPfeed 1.11 Sudo 1.6.3P6 tcpdump 3.6.2 XEmacs 21.2.45 XScreenSaver 3.29 Zebra 0.91a Zsh 4.0.1- pre ー 1 Linux カーネル 2.4.2 ・ URL Linux/cris Red Hat LASER5 CERT OpenSSH BIND djbdns fetchmail glibc lmageMagick 160 http ://developer.axis.com/ http://www.redhat.com/ http://www.laser5. CO. JP/ http://www.cert.org/advisories/CA-2()01-02. html http://www.openbsd.org/openssh/security.html http://gcc.gnu ・ org/gcc-3.()/criteria.html http://gcc.gnu.0「g/mレgCC/20田 -02 / msg()()385. html http://www.isc.org/pr0ducts/BIND/ http://cr.yp.to/djbdns.html http://www.tuxedO.org/—esr/fetchmail/ ftp://ftp.gnu.org/pub/gnu/glibc/ ftp://ftp.simplesystems.org/pub/ImageMagick/ ・ Debian GNU/Linux 2.2 (lntel X86 ) ・ Red Hat Linux 6.2 (lntel X86 、 Alpha) ・ Solaris 7 (SPARC) ・ HP-UX (PA-RISC) ・ AIX 4.3.3 (PowerPC) ・ IRIX 6.5 (MIPS) GCC は表 1 に挙げるコードを用いてコンパイル可能 かどうかテストしている。 GCC の最新版のソースは CVS ツリーから取得でき る。チェックアウトしたソースを Linux 上でコンパイル してみたところ、正常にコンパイルできるようだ。 更新されたその他のソフトウェア ー屬己以外に Linux 上でひろく使われているソフトウェ UNIX MAGAZINE 2001.4 htt ://www.kernel.or http://www.zsh.org/ http://www.zebra.org/ http://www.jwz.org/xscreensaver/ http://www.xemac s.org/ http://www.tcpdump.org/ http://www.courtesan.com/sudo/ http://www.kyoto.wide.ad.jp/smtpfeed/ http://www.proftpd.org/ http ://www.openssh.com/ http ://www.mozilla.org/ ftp ://ftp.leo.chubu.ac.jp/.mnews-beta/ http ://www.mew.org/ ftp ://vic.cc.purdue.edu/pub/tools/unix/lsof/ http ://www.libpng.org/pub/png/libpng.html http://lftp.yar.ru/ http ://www.washington.edu/im叩/ みやち・としゆき北陸先立十判支彳付大完大学 ) ( たぶち・たかあき、すえなが・ひろき、 ア、 Linux カーネルの更新伏況を表 2 に示す。 Linux カーネ丿レ Zsh Zebra XScreenSaver XEmacs tcpdump Sudo SMTPfeed ProFTPD OpenSSH Mozilla m n eWS M ew Lsof libpng LFTP IMAP

6. UNIX MAGAZINE 2001年4月号

穴会驪室予約 - N sc 叩 8 図 11 会議室予約データ ファイ井編集喞表示 ) ジャンプ 0 comn••un 朝 0 ヘルプ旧 ) - 朝 ' カりマゆみ場所「新薩薦石新新市ー司の ' 関連サイト インターフェイスの街角 住同ロ HTML を直己 - し印当 図 14 HTML を直接記述した例 、「カクマ場畍「〒〒葡新市石・・・ヨの下蓮サイト 万イ編集表示世 ) ジャン 1 ( れ n りメソにせ 人会議室予約 urite 六会驪室予約 { . / 朝 ee い n を「 00 第 } FrontPace ー lndex ー OP 幻 H ー NL を直接記述 図 15 図 14 ~ 当町直己蓮 - N 引 s しら Front?aze ー Edil. ー lndex ー叩Ⅲ Big TabIe 200 レ 2 / 28 ロ : 30 [ [ 山田氏 ] ] 打ち合わせ ( 増井 ) 2 0 0 1 / 3 / 1 凵 : 0 0 - 1 5 : 0 0 [ [QP- k i ] ] 販売会議 ( 中野 ) 2001 / 3 / 3 : 00 - 19 : 00 佐藤君迎会 2001 / 3 / 4 : 00 - い : 00 部内定例会議 2001 / 3 / 6 : 00 -18 : 00 経宮会議 トレ「一 下キント - 発ヤ。 図 12 plain2html を通して出力 方 4 ル蝙集、印表示 ( ジャンプ 0 c 。市 0 ヘルプ 円” 12 によ整形ーに c e は ' プマ増所・「霽新新第言矼司の、違サイト F 「 0 ? 0 ー Ed は一 : ndex ー叩 k i 円 8 ⅲ 2 を使うと、童タイトルや項目などを白動的に整形することができます。 ・ F 12 による顰形 P la i n2 による整形 ・項目 2 ・頂目 1 たとえば、 のような記邏は自物的にリスト璋こ変換されます。 円引 12 による形 - Netscape 図 13 pIain2 入力データ 方イル編集 ( 印表示ジャンフ 0 C 。 m 腕 n 取 0 ヘルプ ロ x 同ロ ' フ旧表示ジャンプ喞 C 。取 0 へ・フ ( 印 朝 ' ブ ! カマ・新石市新ヨ 0 下利イト HT L を直接記 Write 財北を直記述 {!b i n/ca 日 く「 on [ c 引い・ : d にわ B い 0 イ on い く center> く朝 ) 員 d 当 co 蓚 y をⅡ ow > くを b 尾 border w th : 間 0 % 〉 くハ ab ) くハ d > くハ </center> 下キュメント完了」 おわりに F 「 0 P きー lndex ー 0 門 i 朝 ' カりマゆ場所「新新薩新新新言新 - 司こ第関連サイト ■ のような記述は自的にリスト環境に変換されます。 事項目 2 ま項目 1 たとえば、 できます。 円引 n2 を使うと、章タイトルや項目などを自勠的に整形することが 円を i n2 による整形 { / リ計月 00 引 / b ⅲ / 0 は in2 引】 円 & i n2 による整形 下キゾい完了。 通して整形することができます。 蜑 たとえば、、、大会議室予約 " を尺すると、カレンダー 形式の予定表か表示されます ( 図 10 ) 。このデータは図 11 のような単純なテキスト形式で、 1999 年 5 月号で紹介し たフィルタ・プログラム meetingroom を使ってく table 〉 形式の HTML に変換しています。 plain2 を用いて項目などを整形することもできます。 図 12 は、図 13 のテキスト形式のデータを plain2html で HTML に変換して表示したものです。 フィルタとして cat コマンドを指定すれは、 HTML を 茁妾記主することもできます ( 図 14 ) 。 UNIX MAGAZINE 2001.4 QP-Wiki は運用を始めたばかりですが、 2 つのシステ ムの長所を活かしていろいろな用途に使えそうです。 私は、 Q-Pocket を個人的な情報の整理に使っていま す。このような場合は、いうまでもなく、データをその まま QP-Wiki で公開することはできません。個人用、 グループ用、社内用など、内容ごとに QP-Wiki を用意 しなければならなくなりそうです。 QP-Wiki では複数の Wiki の問題は解決できていないので、柤にリンクを張 ったり、タ見を変えて区別しやすくしたりする必要がある でしよう。 QP-Wiki は、私の Web ページて漣用の実験をおこな っています 11 。プログラムは、 Q-Pocket とともに配布中 ですのてせひお試しください。また Tiki のページでは、 Wiki/Tiki に関する詳しい解説や考察が述べられていま 12 http://todo.org/cgi-bin/jp/tiki.cgi?c=v&p=%A5%A6 http://www.csl.sony.co ・ jp/person/masui/QPWiki/ ( ますい・としゆきソニ—CSL) す 12 。 Wiki の考え方などを知る際の参考になるでしよう。 11 %A5%F0%A5%AD 183

7. UNIX MAGAZINE 2001年4月号

連載 / UN Ⅸ便利帖ーの リスト 5 アンケートに酪した結果 く ! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4 . OI//EN"> する。 く p>Q. 2 く / p > く / 01 > く 1i > 0 く / li > く li > 0 く / li > く li > 0 く / li > く li > 1 く / li > く 01 > く p>Q. 1 く / p > く hl > アンケート結果く / hl > く body> く /he ad> く tit1e>Tota1 く /title> content="text/html ・ く meta http—equiv="Content—Type " く head> く html 1 ang= ” j a " > charset=ISO—2022—JP"> 回数を言当求するファイルは間題別に独立したものとし、 く 01 > く li > 0 く / li > く li > 0 く / li > く 1 土 > 1 く / li > く 1i > 0 く / 1i > く li > 0 く / li > く / 01 > く p > Q. 3 く / p > く 01 > く li > 0 く / li > く li > 1 く / 1i > く li > 0 く / li > く p> く a href= く /p> く /body> く /html> く / 01 > "index. php"> アンケートへ戻るく / a > q-l q-2 " ・・という名前にしましよう。また、それ らのフォーマットは次のようにします。 尺肢 1 が選ばれた回数、改行 〕尺肢 2 が選はれた回数、改行 尺肢れか選ばれた回数、改行 初めてアンケートを実施するときなどには回数を言求す るファイルカ在しないので、そのような場合に備えて特 別な処理をするルーチンが必要になりますが、今回は簡単 にするためにそのような処理は省略します。つまり、すべ ての行が、、 0 " であるようなファイルが最初から存在する と仮定します。 完成した t 。 tal.php はリスト 4 のようになります。回 答された選択肢は、、 q ー 1 = 1 & q ー 2 = 4 & ・・・ & q - れ = 2 " の ような形式の羅列でこのスクリプトに渡されます 7 。れに は設問数と同し数が入りますが、 total.php 側でこれを予 想するのは不可能です。そこで、このスクリプトの : 頁部 分で、、変数 $ q ーんが宣言されているかぎり " 回り続けるル ープを使用しています。このルーフ。のおかげで、間題数が 増えてもこのスクリプトは変更せすに利用できそうです。 7 これらは、変数名と値の組として自重加勺にセットされます。 128 ループのなかでは、〕尺回数のイ褓内されているファイル をロック付きでオープンし、その内容を読み込んで、いま 選ばれた〕尺肢の回数を 1 回増やしてまた書き戻す、とい う操作を繰り返しています。同時に、回答してくれた人に も回数が分かるように表示しています。 このスクリプトか実行された結クライアントに返さ れる内容は、リスト 5 のようなものになります。 今回は index. php と total.php の 2 つに分けてスク リプトを作成しましたが、状態機械のように振る舞わせる ことかできれは、 1 つのファイルにまとめることも可能で す。たとえば、次のようなかたちにすれは、 switch 構文 などでスクリプトをまとめることかできそうです。 ・状態 0 では、アンケート間題を提示し、回答を入力し てもらう。入力カ鮗ったら状態 1 に移る。 ・状態 1 では、回答を集計して結果を提示する。ューサー からの希望に応して状態 0 に移る。 今回は PHP の去を簡単に説明し、スクリプトの例と してアンケートをおこなうべージを作成しました。ファイ ルを用いて回答を集計するスクリプトを紹介しましたが、 これはデータベースと接続してもっとエレガントに処理し たいところです。次回は、 PHP とデータベースを接続し て処理を連繋させる例について紹介します。 ( みやした・けんすけ京都女子大学 ) ☆ UNIX MAGAZINE 2001.4

8. UNIX MAGAZINE 2001年4月号

連載 UNIX Communication Notes 図 4 フォームによる情報入力をおこなう HTML 文書 く form action="/cgi—bin/mkfaxcover ・ cgi' く hr noshade size="l"> く h2>FAX Cover Sheet く /h2> く bOdy bgcolor="white"> く /he ad> く meta http—equiv="Content—Type" content='ttext/html ; く tit1e>Making FAX Cover Sheet く /title> く he ad> く html > charset=iso-2022—jp"> く table border="O " > く tr> く td>l . 送付先く / td > く td> く /td> く tr> row5 く /tr> く td> く input type= く td> 表題く /td> く td > 2 . 用件く / td > く tr> row4 ーー > く /tr> く td> く input type= く td > 電話番号く / td > く td> く /td> く tr> row3 ーー > く /tr> く td> く input type="text " く td > 受取人く / td > く td> く /td> く tr> く /tr> く td> く input type= く td > 組織名く / td > "text" "text' "text' method="POST"> name="DestOrg" size="50"> く /td> name= name= name= "DestPerson S1ze= " 50 " > く / td > "DestTe1" size="50"> く /td> "Subj ect ー S土Ze=”50"> く /td> く td> メッセージく / td > く td> く textarea name= く /textarea> く /td> く /tr> く /table> "Message rows=5 cols = 50 > く hr noshade 1 " > く input type="submit" value=" カ /くーシート作、成 " > デイタを使っている。この程度の大きさのページであれ ページ作成専用のアプリケーションではなく、 Emacs 工 4 にページのソースを示す。このページの作成には、 Web 力してもらうだけである。図 3 にページの表示伏態、図 る。このページもごく叫屯で、必な蒲報をユーサーに入 く /html > く /body> く /form> く input type="reset" value=" 入力のリセット " > UNIX MAGAZINE 2001.4 は、エデイタでわ分である。 る。 このページを作るときは、次のような点に注意してい ・多くの情報は、 text 属性をもつ (input 〉タグを用いて いる。 一般にメッセージは複数行にわたることが多いので、 く textarea 〉タグを用いて書きやすくする。 61

9. UNIX MAGAZINE 2001年4月号

連載 /JavaServer pages— 図 14 プラウサのソース表示機能て表示した Date のソースコード く html> Copyright (c) 1999 Sun Microsystems, lnc . A11 Rights Reserved. This software is the conf idential and proprietary information Of Sun Microsystems, lnc. ("Confidentia1 lnformation") . You shaII not disclose such ConfidentiaI lnformation and sha11 use it only in accordance with the terms Of the license agreement you entered intO with Sun . SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE , EITHER EXPRESS OR IMPLIED , INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY , FITNESS FOR A PARTICULAR PURPOSE , OR NON-INFRINGEMENT . SUN SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING , ・ MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES . く body bgcolor="white"> く font size=4> く uI > く Ii > Day 0f month: is 18 く Ii > Year : is 2001 く Ii > Month : is February Time : i s 5 : 7 : 48 く li > Date: is 2 / 18 / 2001 く Ii > く Ii > Day : is Sunday く Ii > Day Of Year: is 49 く Ii > Week Of Year: is 8 く li > era: iS 1 く Ii > DST Offset: is 0 く Ii > Zone Offset : is く /ul > く /font> く /body> く /html> 図 15 Date の Source リンクで表示されるべージ 」カイル編集 ( 0 表示お知こ入りツールヘルプ但 ) 1 1 サ ~ ・ 0 コつ上ー」■ アドレス ) 」協 / / bc きを習地〕ん x と mp 地 / p / 5 / d 引 e い ・ Dayofrmnth Wnth is Date. DayOfYear. is V&kOfYear is ・ e ー 3. IS CST C)l%et is . Zo 0 ・ et is 条書きの上の部分に、図 14 にはなかった、 く Jsp:useBean id=' clock' scope= page class='dates . JspCa1endar' type="dates. JspCa1endar" / > という言当主が追加されています。このような、 <jsp: ゆ / / lo 諸第 0 お 0 / e 00 こ / に 0 / 33 3 / し当 ~ M 050 トー日 net E で始まる HTML のタグに似たものが JSP のコードです。 JSP コードを簡単に説明しておきましよう。箇条書き / > " では、 の一日こある、、 <jsp:useBean id='clock' Java のプログラム、 dates. JspCalendar" をロードして clock" という名前を付けています。 次に、箇条書きの、、 <jsp:getProperty ... / > " で Java プログラムで定義しているオプジェクトのプロバティの値 を取り出し、その場に埋め込みます。 く」 sp : getProperty name="clock" property="dayOfMonth"/> は、箇条書きの前で、、 clock" と名付けた Java のプログラ ムから、プロバティ、、 dayO ハ 4 。 nth " の値を取り出し、そ の場に埋め込みます。 Web プラウザは埋め込んだあとの HTML コードを表 同ロ 75 UNIX MAGAZINE 2001.4

10. UNIX MAGAZINE 2001年4月号

連載 / WWW サーパーの育て方一⑩ く head> く html> リスト 1 ラジオボタンのあるフォームの HTML ソース く title > ラジオボタンのチェックテスト用フォームく / title > く hl > ラジオボタンのチェックテスト用フォームく / 1 > く body> く /he ad> く form> く input type— く input type¯ く / fo て m > く /body> く /html> ”工、 adiO ”Ⅱ田Ⅱ e ”て adiol ”く br> く " value= —"radio" name="radiol" value="otherst'>others く br> woman">woman く br> く input type="button" onC1ick="get—radio—va1ue (this) " value=" check radio button"> リスト 2 get-radio-value() の最初のパージョン + radio Ci] . value) ; aIert("You selected " if (radio Ci] . checked) { for (i=O; i く radio . length; it . form. radiol; r adi 0 function get—radio—value (it) リスト 3 get-radio-value() 彦正バージョン return undefined; return radio . value ; if (radio . checked) { else { return radio Ci] . value ; if (radio[i] . checked){ for (i=O; i く radio. length; if (radio . length) { it . form. radiol ; radi 0 function new—get—radio—value ( it) UNIX MAGAZINE 2001.4 0 値を返すイ」にしました 1 こ刎列では、 alert ウインドウを表カ朝 - るのではなく、退尺された要素の 通常は、ラジオボタンは複数の要素から 1 つも尺させ radio-value() をリスト 3 のように書き換えます 1 そこで、このようなケースを考慮して、さきほどの get ー 図 2 ラジオボタンを尺して t ェ酥ざラゾオボタンのテ。ックテスト用フォーム ファイル編集表示ジャンプウインドウ ヘルア ージオボタンのチェックテスト用フォーム 、•ma れ ewoman vcthers Checkradiobutton 図 3 フォームのボタンをクリックすると・・ フフィル編集表示ジャンアウインドウ ラジオボタンのチェックテスト用フォーム ewoman &0thers check radio buttn 0 10 第 You select 材 oman 確認 るために使うものですから、あまり一麺勺な利用法ではあ りませんが、知っておいて損はないでしよう。 83