プログラム質問箱一括表示
[表示範囲:613〜712][スレッドモード]


[RE] フォロー記事投稿 記事のキャンセル
From: Yasu.F <uasuf@big.or.jp>
Subject: Re: 配列の此処が不都合な性格
Date: 1999/02/04 02:32:10
Reference: mesh.program/00608

#605#607や、その他あなたの一連の投稿に対する多くの方々のフォロー記事に
目は通されているのでしょうか?
この記事の内容を読む限り、どうもそのようには見受けられないのですが…。

自分は独り言を言っているだけだから返事はしなくていい、ということでしたら
そうおっしゃってくださいね。

# でも、ここは独り言を書き連ねるのに適した場所とは言えません

2月3日に、三葉工房の管理者さんは書きました。

>その難しくなる原因とは,foreachやfor等の好き嫌いな部分がある点です。

> それらのループ関数は,print関数は,気に入っていますが,ifと言う条件指定
>関数は気に入ってないようです。

# Perlのif構文やforeachなどのループ構文は「関数」ではありません

「好き嫌い」「気に入る」などという「詩的」な表現では、いったい何が
言いたいのか分かりません。

あなたはここで文学作品を発表しているのですか?
そうではないのでしたら、もっと他人に意味が伝わりやすいような文章を
書くように努力してください。

# それに、ここは文学作品を発表するのに適した場所とも言えません

>ですから,
>
>$frag=0;
(snip)

プログラムを例示するときは、それ自身では整合性の取れていないようなコードの
断片ではなく、目的の処理を行うための最小限かつ完全な形のコードを示して
ください。
@newmartや$sdはどこから登場したのですか?

このコードだけを提示されても、結局どういう処理を行ってどういう結果が
期待されているのか分かりません。

> つまり,for文の中のprint文を
>if(banner eq $fgh[$i])としても,条件指定の場合,同一のループ条件とは
>いえども$fgh[$i]は配列の全てにマッチせずに,配列の最初か最後の値のみか
>空白にマッチしてしまいます。

bannerとは?

print "..."; をそのまま if(banner eq $fgh[$i]) なる文に置き換えて、Perlで
正しく実行されるのですか?

「マッチ」したかどうか(何に「マッチ」するのか上の文からでは全く
分かりませんが)は、どういうふうに判断したのでしょう?

>そのループの性質に伴い,ユーザーパスワードのマッチングのプログラミングは
>おのずと非常に困難になります。

厳しい言い方をするようですが、プログラミングの困難さを生み出しているのは
「ループの性質」などではなく、あなたのPerlに対する理解不足にほかならないと
思います。

思い込みでプログラムは書けません(それでもPerlは、プログラマの思い込みに
対してとても肝要な言語です)。日本語の文法を少しくらい間違ったところで
コミュニケーションが全く不可能になることはありませんが、プログラミング
言語は少しでも文法を誤れば絶対に思いどおりには動作しません。

> そのようにその壁を乗り越えるのは至難の業であるとは,言え身を粉にしてでも
>自分の力で思い当たる苦労を味わうべきでは,ないかなと思います。

それはそうなのかも知れませんが、CGIプログラムは貴重なサーバ資源を消費し、
また使い方を一歩誤れば重大なセキュリティ上の問題を引き起こす可能性も
あることを忘れてはなりません。
わたしがことあるごとに「CGIプログラミングは難しい、『自称初心者』が
CGIプログラムを利用するのはあまり好ましいことではない」と主張して
いるのも、そういう理由からです。

手許のマシンでPerlを実行できる環境があるのであれば(MacPerlに多少癖が
あるのは否めませんが)、まずは徹底的にその環境を使い込んで、Perlの
「作法」を手に馴染ませるのがよいと思います。

# そうすれば、「PerlはCGIプログラムのための言語である」といった
# 偏見を抱くことも無いでしょう


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mvg.biglobe.ne.jp>
Subject: Macでの*.tar.gzファイルの展開方法
Date: 1999/02/05 04:16:02
Reference: mesh.program/00610

関連する話題は、新たにスレッドを起こさずに、フォローアップ記事として書いて下さい。
本来このスレッドは、記事603『Re: 解凍方法』辺りにつなげるものでしょう。

2月3日に、三葉工房の管理者さんは書きました。

>私も,Drop StuffのWeeの名称の付いた
>圧縮ファイルをダウンロード解凍してDrop Stuffで,その
>スクリプトの圧縮ファイル(tar,gzの拡張子)を一度それで
>冷凍して,解凍しましたが同じダウンロードした時の圧縮
>ファイルが戻って来ただけで,結局解凍出来ませんでした。

そりゃま、単に圧縮/展開をやった時に、他のファイルが出来てきたらまずいでしょう。(^^;;

>更に,stuff Expanderの4.5をダウンロードして,解凍を
>試みましたが駄目でした。

いえ、これが正解です。
単に *.tar.gz なファイルを、普通に StuffIt Expander で展開してやれば良いです。

>Drop Stuffは,冷凍専用のソフトですよね。

Drop Stuff はそうです、が、ここで利用しているのは、後ろに付いている
"Expander Enhancer" の部分で、Drop Stuff with Expander Enhancerが
正常にインストールされていれば、StuffIt Expander 単体では展開できない何種類かの
アーカイヴ形式が展開できるようになります。

>Win系に比べてMAC系のソフトが遥かに少ない現状がとても残念
>で成りません。

確かにこの頃Windowsのソフトウェアは非常に多くなりましたから、単に数で比べれば
負けているかも知れませんが、基本的なものは揃っていますよ。取りあえず、日常的な
事をするのに不便する事はあまり考えられないのですが...

# あたしがドーネイトしているシェアウェアはWindows用よりMac用の方が多いかも知れず。
## Mac本体は持ってないくせに。(^^;;


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mvg.biglobe.ne.jp>
Subject: Macの改行
Date: 1999/02/05 04:27:39
Reference: mesh.program/00603

1月29日に、石井さんは書きました。

>ただテキストファイルの中身を見たら、アップルはアップルIIの頃から、
>改行がCR+LFでないと改行しないという癖がありまして、多分、テキストファイルに
>改行しかないのでしょう、改行のところが変な字に化けていました(T_T)

改行はOSによって違いますね。
UnixはLF、DOS(Windows)はCR+LF、MacはCRです。

# HTTPのtext/*なentityでは上記3種のどれでも良いことになっています。
## HTTP自体ではCR+LFですが。

ちなみに simple text 等ではCR改行しか扱えませんが、Jedit等では上記3種の
改行を扱えますから問題無いでしょう。

# うぇぶ会議室のスクリプトはUnix(HP-UX)上で開発しているので、
# スクリプト中の改行はLFの物を配っています。


[NEW] フォロー記事投稿 記事のキャンセル
From: 三葉工房の管理者 <nature-create@amy.hi-ho.ne.jp>
Subject: やはり解凍出来ない
Date: 1999/02/05 11:53:33

Drop Stuff with Expander Enhancerの Expander Enhancer
に関すると思われる Stuff Enginは機能拡張に入っております。

Drop Stuffの環境設定を見ても,tarやzip等の選択枝はございません。
bin-hex方式でも試して見ましたが,やはり,同じtar.gzの白紙テキスト
が戻って来て,解凍出来ません。

逆に Stuff Expander4.5を立ち上げてそのtar.gzの白紙テキストを解凍しようと
しても,解凍方式が合わないせいか,表示されず選択出来ません。

一体のそのソフトをどの様に使えばその「うぇぶ会議室のスクリプト」を
開けるのですか。

石井さんがそのソフトで解凍に成功して何故私は,解凍出来ないのでしょうか。

どうか,宜しくお願いします。


[NEW] フォロー記事投稿 記事のキャンセル
From: 三葉工房の管理者 <nature-create@amy.hi-ho.ne.jp>
Subject: エラーの原因(黒幕的存在がいた!)
Date: 1999/02/05 17:10:59

エラーの原因(黒幕的存在がいた!)
エラーの原因(黒幕的存在がいた!)
先程の三葉工房です。色々とアドバイスありがとうございます。
ようやく,ユーザーパスワードのエラーの原因を突き止めました。 foreach文 foreach $keymatch(@keymatch){ ($mail,$yourname,$date,$gurl,$hpagename,$coment,$password)=split(/&&/, $keymatch); $password=~ s/\n//g; if($in{'pawin'} eq $password){ $keyflag=$keyflag+1; }} という形の投稿前の書き方で正しかったです。では,何がいけなかったか? それは,全く予想のない存在でした。 それは,キーワードでした。 私の場合, "$in{'要素1'}&&$in{'要素2'}&&$in{'要素3'}\n"で,unshift方式で いきなり,書き込みファイルから新規記事が最上段にプリントされる書き方を してますが,パスワードの要素の位置がラストと$in{'要素3'}に当り, その要素の右側に改行コードが書かれてして,それを,ボードに出力する場合, foreach文とsplitを使いますが,splitの分割対象が"&&"で"\n"では,無く, それにより,$in{'要素3'}に\nと一体になった要素が作られてしまい,そして, その要素の一番最後のにだけ\nがないので,その最後のパスワードだけしか マッチせず,他のは,"要素3"と"要素3\n"なので,一致せず,それに気付く事 なく,数日も立ち往生していました。 それに,気付きのその\nを$password=~ s/\n//g;で省いて目的のユーザーパスワード システムは,動かす事が出来る様なりました。
今は,変更システムの研究に励んでいますが,変更記事をunshiftを利用して, トップに新たに上書きする形は簡単に出来るそうです。 それでは,又,不明な点がありましたら,今度こそ謙虚な態度で,投稿させていただこうと 思います。
御迷惑お掛けしました。

[RE] フォロー記事投稿 記事のキャンセル
From: Yasu.F <yasuf@big.or.jp>
Subject: Re: エラーの原因(黒幕的存在がいた!)
Date: 1999/02/07 02:35:34
Reference: mesh.program/00617

余計なHTMLタグは書かないでください。非常に読みにくいです。
以下、邪魔なタグは全て削除して引用します。

それから、#614でにあさんがおっしゃった

| 関連する話題は、新たにスレッドを起こさずに、フォローアップ記事として書いて下さい。

という文章はお読みになったのですか?  理解できないなら質問してください。
これに従うことができないのであれば、何故できないのか説明してください。

もしくは、ひとの話を聞く気が無いのならそうおっしゃってください。
そうすれば、今後わたしがあなたの投稿なさった記事を一切読まずに無視する
ことができます。

わたしは#607#613で、「あなた」に対して、「三葉工房の管理者さんに対して」、
いくつかの質問を投げかけているのですが、あなたはそれに対して何ひとつ
答えようとしませんね。

2月5日に、三葉工房の管理者さんは書きました。

>先程の三葉工房です。色々とアドバイスありがとうございます。

そのアドバイスを生かそうという気は起こらないのですか?

>foreach文

もういちど、#607で書いたことを引用します。

| それと、ブロック("{" と "}" で囲まれた部分)などは
| 
|   sub hoge {
|     if ($foo == $bar) {
|       &baz(q{I said, "You said, 'She said it.'"});
|     }
|     else {
|       &zot('abc', 'def', 'xyz',
|                $something[$foo + $bar] / $anythong{$qux . $quux});
|     }
|     
|     @sorted_array = sort { $a <=> $b } @array if $todo{'sort'};
|   }
| 
| のように字下げして書くことを強くお勧めします。ブロックの中を全く字下げ
| していないと、プログラムの制御構造の流れが追いにくく、とても読みにくいです。

こうすると不都合であるという理由があるのでしたら、後学のためにもご教示
いただければ幸いです。

>という形の投稿前の書き方で正しかったです。では,何がいけなかったか?

あなたが、Perl(というより、プログラミングに必要な基礎知識そのもの)を
ほとんど理解できていないのに、いきなり本格的なCGIプログラミングを
始めてしまったことでしょう。

>それは,キーワードでした。

何の「キーワード」ですか?

>"$in{'要素1'}&&$in{'要素2'}&&$in{'要素3'}\n"で,unshift方式で

「unshift方式」とは?

>してますが,パスワードの要素の位置がラストと$in{'要素3'}に当り,

何の「ラスト」?
「要素の位置」がハッシュ(連想配列)の要素に「当る」とは?

>その要素の右側に改行コードが書かれてして,それを,ボードに出力する場合,

どの「要素の右側」?
「要素」の「右側」ってどこ?

>それにより,$in{'要素3'}に\nと一体になった要素が作られてしまい,そして,
>その要素の一番最後のにだけ\nがないので,その最後のパスワードだけしか

どの「要素の一番最後」?
どの「最後のパスワード」?

>マッチせず,他のは,"要素3"と"要素3\n"なので,一致せず,それに気付く事

「"要素3"」と「"要素3\n"」って、それぞれどこから出てきた文字列?

…お願いですから、あなただけが理解できるような暗号や隠語や暗喩や
略記表現を乱発するのはやめてください。

# いや、何が言いたいか何となく分かる部分もあるのですが、
# 日本語として意味不明な個所が多すぎます

## 言うなれば「-wで警告がぼろぼろ出るPerlプログラム」のようです:)

>それに,気付きのその\nを$password=~ s/\n//g;で省いて目的のユーザーパスワード

別にそれでもいいですけど、まずラクダ本を chop や chomp などを
キーワードに探してみてください。

>今は,変更システムの研究に励んでいますが,変更記事をunshiftを利用して,

Perlの「研究」には励まないのですか?

ラクダ本を読むとか、そこに書いてあることを手許のマシンにインストール
されたPerlで試してみるとか、参考書のコード例をちょっとずつ変えて実行
してみるとか、変更前後で実行結果が変化したら(あるいは変化しなかったら)
それはなぜなのか考えてみるとか、他人の書いたコード(例えばうぇぶ会議室)を
読んでみるとか、そこで使われているテクニックを盗むとか。

>それでは,又,不明な点がありましたら,今度こそ謙虚な態度で,投稿させていただこうと
>思います。

まずは「Perlに対して」もっと謙虚になったほうがいいような気がします;)


[NEW] フォロー記事投稿 記事のキャンセル
From: 三葉工房の管理者 <nature-create@amy.hi-ho.ne.jp>
Subject: Yasu.F様へ(アドバイスを提供していただいた方達への御報告をしただけなのに)
Date: 1999/02/07 10:58:14

エラーの原因(黒幕的存在がいた!)と言う記事は,今回の質問の対象であった
長い事完成出来なかったユーザーパスワードのマッチプログラムが出来る様に
成った事をただ,アドバイスをしていただいた方達へ御報告の為だけの投稿です。
 配列の此処が不都合な性格と言う自分本位にプログラムが出来ない感情的な
記事とは,全く違います。


 不明な点を質問して,それが出来る様になった事を報告するのは,質問者と
しての礼儀です。ですから,ただそれだけの事を行っただけです。
 
 アドバイスを提供していただいた方達に対して,礼儀でもある御報告を
投稿して何がいけなかったのでしょうか。

 確かに,まだ駱駝本は,うまくなじめませんが,それを読み学ぶと言う意見には,
私も賛同で,片道1時間以上の電車の中でも読んでいます。

 そして,split(" ",$hoge)=$rehogt;と言う関数の使い方も試して見ました。
改行で区切られている配列には,有効です。

 確かに,プログラムが出来ないからって,配列の此処が不都合な性格と言う様な
記事を投稿するのは,悪かったと反省してます。

 それでは,失礼します。


[RE] フォロー記事投稿 記事のキャンセル
From: Yasu.F <yasuf@big.or.jp>
Subject: Re: Yasu.F様へ(アドバイスを提供していただいた方達への御報告をしただけなのに)
Date: 1999/02/08 02:47:11
Reference: mesh.program/00619

2月7日に、三葉工房の管理者さんは書きました。

> 不明な点を質問して,それが出来る様になった事を報告するのは,質問者と
>しての礼儀です。ですから,ただそれだけの事を行っただけです。
> 
> アドバイスを提供していただいた方達に対して,礼儀でもある御報告を
>投稿して何がいけなかったのでしょうか。

どうも勘違いなさっているようですね。

わたしが言っているのは「報告記事なんて書くな」ということではありません。
「他人に分かりやすい記事の書き方をしてほしい」ということと、もうひとつは
「自分に向けられた質問には答えてほしい」ということです。


「他人に分かりやすい記事」というのは、例えば「分かりやすい日本語で書く」
「自分たちの周囲だけでしか通じないような "方言" は、なるべく使わない」
「相手が自分と同じ知識や価値観を持っていることを前提にしない」などと
いったことはもちろんですが、それだけではありません。

例えば、

  ○○というソフトをインストールしてみましたが動きません。
  どうすれば動くようになるのでしょうか?  教えてください。

という質問記事は「最悪」なもののひとつです。
この記事の中には、有用な情報が何ひとつ含まれていません。

# これは極端な例ですが、しかし最もよく見られる「悪い質問記事」の一例でも
# あります

この手の質問を受けた場合、それに答える側にとっては、

  1. 質問に対する適切な回答を、いろいろな資料の中から探すなどして調べる
  2. それを、質問者にも分かりやすいような形の文章にまとめる

という通常の手順の前に、

  0. 「どういう環境で、どういう操作をしたら、どう動かないのか」などの、
     回答を見つけるために必要な情報を、質問者とやりとりしながら引き出す

という余計な手間が増えてしまうことになります。

質問者が最初から必要な(必要だと思われる)情報を提供していれば、こんな
手順は発生しないのですから、これは「質問者としての礼儀」に欠けています。

答える側としては、いちいちこんな非生産的なことのために労力や時間を浪費
したくはない、ということで

  1'. 答えない

という手順を踏むひとも少なくありません。これでは、質問する側にとっても
結局損ですよね。
「読みづらい質問記事」に関しても同じことが言えます。


もうひとつ。あなたは#618の

| わたしは#607#613で、「あなた」に対して、「三葉工房の管理者さんに対して」、
| いくつかの質問を投げかけているのですが、あなたはそれに対して何ひとつ
| 答えようとしませんね。

という「*あなた*への」問いかけにも、全く応じようとしませんね。

そして、#614の

| 関連する話題は、新たにスレッドを起こさずに、フォローアップ記事として書いて下さい。

という要請(あるいは「アドバイス」)も、相変わらず無視したままですね。

あなたは「質問者」、「質問をする側」なのだから、自分が受けた「質問」に
答える必要は無い、ということでしょうか?  せっかく受けた「アドバイス」を
無視しても構わない、ということなのですか?

あなたは相手に対して質問しているのですから、相手があなたに質問した
ときには、可能な範囲で答える、というのが、「質問者としての」最低限の
「礼儀」ではないですか?

> 確かに,まだ駱駝本は,うまくなじめませんが,それを読み学ぶと言う意見には,
>私も賛同で,片道1時間以上の電車の中でも読んでいます。

おお。がんばってください。

ラクダ本にはPerlの非常に多様な機能のほぼ全てが記述されているため、
他の解説書と比較してもレベルが高く、難解な一面もありますが、それだけに
有用な情報がぎっしり詰まっています。
読破は大変でしょうが、健闘を祈ります:)

ちなみに、いきなりラクダ本ではきつい、という向きのために、姉妹篇として

  R.L.Schwartz,T.Christiansen,近藤嘉雪訳,「初めてのPerl 第2版」,
   オライリー・ジャパン,1998,ISBN4-900900-81-8

という入門書もあります(わたしは別にO'Reillyの回し者ではありません)。
ラクダ本自体は、プログラミングなどに関するそれなりの基礎知識を必要と
しますので、まずはこちらで基本的なPerlプログラミングの手法を身に
付けてからラクダ本に進む、という手順もいいかも知れません。

> そして,split(" ",$hoge)=$rehogt;と言う関数の使い方も試して見ました。

よくわかりませんが、splitって代入式の左辺に置けるものなんですか?
おそらく、やりたいのは

  @fields = split(" ", $hoge);

では?


[RE] フォロー記事投稿 記事のキャンセル
From: 三葉工房の管理者 <nature-create@amy.hi-ho.ne.jp>
Subject: Re: Yasu.F様へ
Date: 1999/02/08 10:57:05
Reference: mesh.program/00621

YASU様へ,

三葉工房です。

つい,この様な記事を投稿して済みません。

投稿後,もう一度,YASU様の記事を読み,おっしゃってる事が理解出来たので
消去しようとしましたがパスワードをメモしなかったので,そして,にあ様へ
も昨日の午前中にこの記事を消去する様に頼んだのですが,結局,一日中残っ
てしまいYASU様の目に触れてしまう結果なりました。

おっしゃてる事は良く理解出来ました。

1.質問に答える
2.次の処理プログラムの開発の前にPerlについての勉強会(学習)を行い
perlの基礎を理解する。
3.分かり安い記事で投稿する

ですね。


時間を作り,"例えば,変更システムの$***が出来ない"と言う様な質問を
投げかける前に,質問に関しての回答を必ずしようと思います。

自分本位のコメントばかりで本当に済みませんでした。


[RE] フォロー記事投稿 記事のキャンセル
From: 三葉工房の管理者 <nature-create@amy.hi-ho.ne.jp>
Subject: Re: Yasu.F様へ(回答コメントを2月3日の辺りにフォロー投稿しました。)
Date: 1999/02/08 12:44:52
Reference: mesh.program/00622

2月8日に、三葉工房の管理者さんは書きました。

>YASU様へ,
>
>三葉工房です。
YASU様の御質問への回答コメントを2月3日の辺りにフォロー投稿しました。

わかににくい位置投稿されたので,それをお知らせする為だけに投稿しました。


[RE] フォロー記事投稿 記事のキャンセル
From: 三葉工房の管理者 <nature-create@amy.hi-ho.ne.jp>
Subject: Re: 不都合な配列の性格に阻まれて(回答します。)
Date: 1999/02/08 12:40:46
Reference: mesh.program/00607

三葉工房です。既に5日前の投稿ですが,YASU様の御質問にお答えします。
A.に続く文章が回答です。

色々と,本当の礼儀の大切さについていい勉強になりました。
どうもありがとうございました。



>>簡易スクリプト(配列の性質)
>
>martとかgghとかsdとかdfrとかは何か意味のある単語や略語なんでしょうか。
>何のための変数なのか、もっと分かりやすい名前を付けたほうが読みやすいし、
>保守やデバッグが楽じゃないかと思うのですが…。

A.これは,MacParl上のテスト用で,適当にmartとかgghとかの名前を付けただけです。

>>print "$dfrのはずが$gghの$nrの$dhy\n";
>
>というのをぱっと見て、どういう情報を出力しようとしているのか分かりますか?

A.適当な称号を使っているので,自分か,若くは,よほど簡単なプログラムでなければ
分からないと思います。

>それと、ブロック("{" と "}" で囲まれた部分)などは
>
>  sub hoge {
>    if ($foo == $bar) {
>      &amp;baz(q{I said, "You said, 'She said it.'"});
>    }
>    else {
>      &amp;zot('abc', 'def', 'xyz',
>               $something[$foo + $bar] / $anythong{$qux . $quux});
>    }
>    
>    @sorted_array = sort { $a &lt;=&gt; $b } @array if $todo{'sort'};
>  }
>
>のように字下げして書くことを<STRONG>強く</STRONG>お勧めします。ブロックの中を全く字下げ
>していないと、プログラムの制御構造の流れが追いにくく、とても読みにくいです。
>
># 少なくとも、前に投稿された例えば「<A href="00580.html">徹底的な…</A>」などのスクリプトを
># 目にしたときは、ぱっと見ではどこからどこまでがひとつのサブルーチン
># なのかすらさっぱり分からず(今でもあまり把握していませんが)、読む気も
># しませんでした

A.そうですね。プログラムは,分かり易く書くべきと思います。だんだん,プログラミングに
慣れるに従ってメチャクチャになりましたので。

>
>ラクダ本の第2版(背表紙の青いほう)をお持ちなら、いちど「8.4 プログラミングの
>書法」(pp.626-)あたりに目を通してみてください。
>初版(背表紙の赤いほう)にも同じような内容があったはずですが、いま手許に
>無いので何処に載っていたかはわかりません。

A.プログラミングの書き方の基礎が記述されていました。

$dfr=@newmartと言う形で,$dfrの値は,しっかり配列の値の合計値の16と
>>出力され,その配列を更に@fft=@newmartと言う記述で@fftに代入して,$dhy=@fft;で
>
>16は「配列の値の合計値」ではなく、単に配列の要素の数ですね。
>
># 三葉工房の管理者さんにとってはそういう意味なのかも知れませんが、
># 少なくともプログラミング上の一般的な用語としては、両者は違うものを
># 意味します
>
># ちなみに、何故「17」ではなく「16」なのか理解してます?

A.配列は,C Languageと同じく0から数えるから。17は,$arrycnt=@arryと言う
形の配列の値の合計値を数えている。

>>という書き方の様に$martの変換前の状態を文字変換タグで配列の('値','値')に変換して,
>>変数のみで配列に代入するだけだと,$ggh=@martと言う形で配列の合計値を算出すると
>>値は1で,@mart=@mart,$nr=@martとしても$nrの値は1で,スクリプトの終わりの方の
>
>いくら文字列としてリスト(配列)に見えるように加工しても、依然として
>それは単なる文字列にすぎないからです。
>
># @array = $scalar という式が一体どういうことをやっているのか、
># よ〜く考えてみてください
>
>#   @array = (123, 456, 789);
>#   $scalar = @array;
>#   @array = $scalar;
>#   $scalar = @array;
># とすると @array と $scalar の内容はそれぞれどうなるのか、それは何故なのか、
># よ〜く考えてみてください

A.上記の
>同様に、$scalar = @array;をMacperlで実行してみました。
@arrayを$scalarへの1回目の代入は,@arrayの配列が記述されていますので,
3が返ります。
しかし,更に@arrayの入った$scalarから更に配列へ代入すれば,それは,単なる
1要素に過ぎないとみなされますので,@arrayを$scalarへの2週目の代入で値は
1が返ります。

>
>  $program = "print 1 + 2;\n";
>  $program;
>  print $program;
>
>は、3 とは表示せずに print 1 + 2; とだけ表示します。「プログラムっぽく
>見えるもの」は、必ずしも「プログラム」ではありません。
>
># しかし、eval($program); は 3 と表示します
># 何故なのかはマニュアルや本やWebをどうぞ

A.MacPerlで実行してみたら3が返ってきました。$evalは,プログラムの要素と要素
の計算をする関数らしいですが,駱駝本を読んだらやや初心者には,難解な解説が
書かれていました。ちなみに,駱駝本の他に購入したperl本は,技術評論社の
「CGIのための実践入門perl」ですが。

>では、どうやって文字列を配列に変換すればいいかは、いしどうさんの<A href="00605.html">投稿</A>を
>参照してください(そしてマニュアルや本やWebを探してください)。
>
>>foreach $keymatch(@keymatch){
>>($mail,$yourname,$date,$gurl,$hpagename,$coment,$password)=split(/&amp;&amp;/, $keymatch);
>>
>>if($in{'pawin'} eq $password){
>>$keyflag=$keyflag+1;
>>last;}}
>>だと,ファイルの最下段の記事のパスワード名(mailmg)しか出力せずに,そのパスワード
>>名の以外のパスワードは,一致しません。
>
># これだけだと、例えば @keymatch に何が入っているのか、もとのスクリプトを
># 読まなければ分かりません。必要に応じてそれなりに説明を加えてください
>
>「出力」というのは、何がどう「出力」されるのですか?
>引用された部分には「パスワード名」の「出力」と呼べるような処理は含まれて
>いないようですが。
>
>$keyflagの値が増えていたら「出力」されたことになるということでしょうか。
>
>>}でプリントアウトしています。foreachで直接プリントアウトすれば,$passwordで
>>全て出力されますが,それ以外の方法,例えば$passwordを@***に代入したりすると
>>@***は,(mailmg)しか出力しません。
>
>どういうふうに「代入」したのですか?



>  @array = $password;
>
>なら、最終的に @array に入っているのは当然ひとつの要素だけでしょう。
>代わりにpushなどを使ってください。詳細はマニュアルや本やWebを見てくださいね。
>
>>その様に,ユーザーパスワードを利用しての削除.変更を行うには,どうしても
>>$in{'pawin'}($in{'pawin'}は,変更.削除のページのパスワードを入れる記入項目
>>から受け取った値)と$passwordの全ての値と一致させなければそれは出来ません。
>
>何故?
>$passwordの値は @keymatch の各要素(つまりはファイルの各行)に応じて変化
>するのではないのですか?
>
>もしかしたら「一致」とは「比較」のことかも知れませんが、「全ての値」との
>「比較」は(foreachループを使って)なされていますよね…。
>
># そもそも、目的の記事を「パスワード」をキーにして探すという仕様自体が
># とても不自然に感じるのですが…

A.上記の質問は,黒幕的存在という記事で答えました。本来は
foreach $keymatch(@keymatch){
($mail,$yourname,$date,$gurl,$hpagename,$coment,$password)=split(/&amp;&amp;/, $keymatch);

if($in{'pawin'} eq $password)
{
$keyflag=$keyflag+1;
last;}
			}
で全ての$password)にマッチしますが,mailmgを除いてのパスワードに改行文字が付加
されていて,一致せずにそのような結果になりました。$keyfragは,パスワードが
マッチすれば,1たされ,削除or変更の対象記事が出力されます。
 ですから,$passwordの値は @keymatch の各要素(つまりはファイルの各行)に応じて
変化します。


>
>質問というものは、他人が読んで理解できるように書かなければ、誰も答える
>ことができません。三葉工房の管理者さんに限ったことではありませんが、
>
>  「<EM>答えてもらいやすい質問をしてください。</EM>」
>
>質問記事の読みやすさは、プログラムの読みやすさより数倍重要です:-)

A.その様に次回から心がけます。(これだけ無作法な行為をして投稿する資格は
あるはずないのですが。)


後,余談なのでずか,もし手が空いていたら教えて下さい。本来とは,関係の
ない質問もございますが,関心がありますので,失礼な事聞いて済みません。
1.YASU様は,perlを始めて何年になりますか。
2.perlのプログラミングで一番つまづいた経験はなんですか。
3.回答者の方々は,ふだんは,どんな事をしているのですか。そして,
TAD様とかにあ様と石堂様とかはかお知り合いですか。
にあ様と石堂様は,文章から見て女性の方だと思いますが。


[RE] フォロー記事投稿 記事のキャンセル
From: いしどう <ishidou@po.iijnet.or.jp>
Subject: Re: 不都合な配列の性格に阻まれて(回答します。)
Date: 1999/02/09 00:25:11
Reference: mesh.program/00623

いしどう です。

とりあえず、関係あるとこだけ (^^)

2月8日に、三葉工房の管理者さんは書きました。
>2.perlのプログラミングで一番つまづいた経験はなんですか。

正規表現でしょうか。
Perlを使い始める前に UNIX を使ってたもんで、その時のクセが抜けずに
何回もPerlに文句をいわれた記憶があります。

>3.回答者の方々は,ふだんは,どんな事をしているのですか。

とりあえず、わたしはここの会社に勤めてます。企業ユーザの
皆様にコンピュータを売る仕事をしてます。

>そして,TAD様とかにあ様と石堂様とかはかお知り合いですか。

えと、ここの会議室の上だけでの知り合いです (^^) (多分)
直接あった事はないはずです。

>にあ様と石堂様は,文章から見て女性の方だと思いますが。

いちおー、わたし、男ですけれど (^^;;

(一人称が「わたし」だからかなぁ。でも、昔っからこういう風に
書いてるもんで)


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mvg.biglobe.ne.jp>
Subject: 余談だけ (^^;
Date: 1999/02/09 00:29:23
Reference: mesh.program/00623

2月8日に、三葉工房の管理者さんは書きました。

>3.回答者の方々は,ふだんは,どんな事をしているのですか。そして,
>TAD様とかにあ様と石堂様とかはかお知り合いですか。

他の方はともかく、にあは計算機とはあまり関係の無い職場ですね。
# 業務以外でサーヴァの面倒を見てたりはしますが。(^^;

「お知り合い」と言うのが、会って酒飲んだりする関係だとすると、答えはNoです。
この会議室とか、オンラインでのコミュニケーションを取るだけの間柄ですね。
あたしはそう言うのも十分「お知り合い」だとは思っていますが。(^^)

>にあ様と石堂様は,文章から見て女性の方だと思いますが。

...では無いですね。(^^;

# 自分では、まだまだ若いつもりではいますが、世間一般の基準からすると、
# 既におじさんの部類に入りつつある、と言ったところでしょうか。(^^;
## 石堂さんもあたしより1つ上だから、やはり (以下自粛)

ちなみに、三葉工房さんはMacユーザなのでご存じ無いのでしょうが、石堂さんは
Windowsでは定番のニュースリーダ、WinVNの日本語化などもなさっている方ですよ。(^^)


[RE] フォロー記事投稿 記事のキャンセル
From: TAD <hotani@mua.biglobe.ne.jp>
Subject: Re: 不都合な配列の性格に阻まれて(コメントおよび回答)
Date: 1999/02/09 15:05:48
Reference: mesh.program/00623

2月8日に、三葉工房の管理者さんは書きました。

>>martとかgghとかsdとかdfrとかは何か意味のある単語や略語なんでしょうか。
>>何のための変数なのか、もっと分かりやすい名前を付けたほうが読みやすいし、
>>保守やデバッグが楽じゃないかと思うのですが…。
>
>A.これは,MacParl上のテスト用で,適当にmartとかgghとかの名前を付けただけです。

テストとはいえやはりわかりやすい名前を付けた方が良いと思いますよ。
あるいは、せめて他人に質問するときだけでもわかりやすい名前に変えるとか。

>>というのをぱっと見て、どういう情報を出力しようとしているのか分かりますか?
>
>A.適当な称号を使っているので,自分か,若くは,よほど簡単なプログラムでなければ
>分からないと思います。

そうです。そこが、「他人に分かりやすい記事」ではないとYasu.Fさんも言っているところですね。

>># そもそも、目的の記事を「パスワード」をキーにして探すという仕様自体が
>># とても不自然に感じるのですが…
>
>A.上記の質問は,黒幕的存在という記事で答えました。本来は

そういう仕様だと同じパスワードを設定しているものがあったら、
先にヒット(キーが一致)したものが目的の記事となってしまいますが、
そういう動きはおかしいですよね。
普通(というか絶対に)、ある項目をキーにして目的のひとつのものを探す場合、
そのキーにする項目というのは、ユニーク(一意)な値でないとダメです。
普通は記事番号とかを設定してそれをキーに使うでしょう。

>1.YASU様は,perlを始めて何年になりますか。

ちなみに私は1年半くらいです。
はじめは他の人の書いたスクリプト(perlプログラム)を参考に、どんな風に
プログラミングされているのか見てみたのですが、perlは見ただけでは何をしている
のか判りにくい言語だったので、まずは「perl入門」を一通り読みました。

>2.perlのプログラミングで一番つまづいた経験はなんですか。

一見記述は簡単に見えて、その実すごい処理をしているところですか。
$aaa = @bbb; なんて、最初見たときは何してるのか判りませんでした。

>3.回答者の方々は,ふだんは,どんな事をしているのですか。そして,

一応、コンピュータメーカ系グループの会社でSEやっています。
仕事上でのプログラミングはもう4、5年やってません。
C言語経験はゼロです。(^^;;

>TAD様とかにあ様と石堂様とかはかお知り合いですか。

他の方がすでに書いているとおりです。

#ちょっと遅かったか。(^^;;


[RE] フォロー記事投稿 記事のキャンセル
From: Yasu.F <yasuf@big.or.jp>
Subject: Re: 不都合な配列の性格に阻まれて(回答します。)
Date: 1999/02/10 07:21:16
Reference: mesh.program/00623

丁寧な回答をありがとうございます。
フォローが遅くなってしまって申し訳ないです。

2月8日に、三葉工房の管理者さんは書きました。

>A.これは,MacParl上のテスト用で,適当にmartとかgghとかの名前を付けただけです。

ちょっとした(簡単な、短い)コードのテストでしたらこれでも問題は無い
でしょうけど、少し込み入ったことをしようとすると途中で何が何だか
わからなくなる可能性もありますので、

  - 適切な名前を考える手間
  - いい加減に付けた名前が何を意味しているのか考える手間
  - 上記のどちらのほうがコストが掛かるか考える手間:)

などを比べたうえでのバランス感覚でしょうね。

# いつでも適切な名前を考えろ、と言っているわけではないです
# わたしもone-liner(“一行野郎”、シェルのコマンドラインで、
# "perl -e" の引数として直接入力して実行するような単純なプログラム)を
# 書くときなどは、面倒くさいので変数には大抵いい加減な名前を付けます

>A.適当な称号を使っているので,自分か,若くは,よほど簡単なプログラムでなければ
>分からないと思います。

それだと、他人に見せるためのプログラムとしては不親切ですよね。
相手が知りたいのは、「あなたがどんな文字列をタイプしたか」ではなく、
「あなたがどんなコードを実行しようとしたのか」なのですから。

>A.そうですね。プログラムは,分かり易く書くべきと思います。だんだん,プログラミングに
>慣れるに従ってメチャクチャになりましたので。

たぶん逆だと思います。というより、逆でないと将来きっと困ることになります。

よい癖でも悪い癖でも、身に付けるのは簡単ですが、取り除くのは至難の
技です。同じ癖なら、よい癖のほうを最初から身に付けておいたほうが幸せに
なれるでしょう。

>># ちなみに、何故「17」ではなく「16」なのか理解してます?
>
>A.配列は,C Languageと同じく0から数えるから。17は,$arrycnt=@arryと言う
>形の配列の値の合計値を数えている。

# 「配列の値の合計値」って、どういう意味で使ってます?
# 「配列に含まれる要素の数」ではないですか?

そうではありません。
元の記事のプログラムを、目を凝らしてよぉ〜く読んでみてください。

# ヒント:
#  $foo = "one
#  two" .
#  "three";
#  $bar = "four";
#  print $foo,
#  $bar;
# は何を表示するか?

>A.上記の
>>同様に、$scalar = @array;をMacperlで実行してみました。

# まずご自分で考えてみて、それから実際に実行して、結果を比較して
# いただけると、もっとよかったのですが;)

>@arrayを$scalarへの1回目の代入は,@arrayの配列が記述されていますので,
>3が返ります。
>しかし,更に@arrayの入った$scalarから更に配列へ代入すれば,それは,単なる
>1要素に過ぎないとみなされますので,@arrayを$scalarへの2週目の代入で値は
>1が返ります。

だいたい合っていると思います。

# キーワード: 「スカラコンテキスト」「リスト(配列)コンテキスト」

>A.上記の質問は,黒幕的存在という記事で答えました。本来は
>foreach $keymatch(@keymatch){
(snip)

# おや、「プログラミングの書法」はどうなりましたか? ;)

>A.その様に次回から心がけます。(これだけ無作法な行為をして投稿する資格は
>あるはずないのですが。)

そんなことはありません。

ほんとうに嫌がられるのは、間違った内容を投稿することでも、分かりづらい
文章を投稿することでもありません。
それらを指摘されても改善しようとせず、同じような投稿を繰り返すことです。

「過つは人の常」。大事なのは、そのあとどうするか、です。

>1.YASU様は,perlを始めて何年になりますか。

最初にPerlに触れたのは、NEC PC-9801DAという古いマシンで動く、MS-DOSという
これまた今となっては古くさい(しかし何故かWindows98の根幹を成している:)
OSに移植された 日本語化Perl 4.036 というバージョンです。
これが、既に曖昧になってきている記憶を辿ると、1995年のことだったと
思います。

ですから途中のブランクを無視すれば、Perl歴は約4年ということになる
でしょうか。

>2.perlのプログラミングで一番つまづいた経験はなんですか。

そうですね… いちばん苦労したのは、Perlの「TMTOWTDI (There's More Than
One Way To Do It; それには何通りもの方法がある)」というスローガン
そのものを体に馴染ませること、でしょうか。

自由度が高いということは、裏を返せばそれだけ節操の無い書き方ができると
いうことでもあります。TMTOWTDIだからといって、「どれでも結局同じ
なんだから適当に選んどけばいいや」とやってしまうと(もちろんこれでも
いい局面もありますが)、あとで誰かが(あるいは自分自身が)プログラムを読む
ときに、作者がどういう意図を持ってそのコードを書いたのかが伝わりにくく
なってしまいます。

# ある意味では、「名前の付け方」と同じ問題がここにもある、とも言えます

例えばPerl5では、次の3つの文はほぼ同じ働きをしますが、それぞれの持つ
「意味合い」は少しずつ異なっています:

  foo("bar") or baz($zot, @qux);
  baz($zot, @qux) unless foo("bar");
  baz($zot, @qux) if not foo("bar");

「TMTOWTDI、じゃあこの局面ではどうするのがベストだろう?」そういった
自分なりのプログラミングスタイルを見出すまでの間、たくさんの「読み出し
不能な」プログラムが、ハードディスクの中に現れては消えていきました。

>3.回答者の方々は,ふだんは,どんな事をしているのですか。そして,

普段はhacking(と自分では思っている行為)をやってます:)
ほかに、とあるISP(いわゆるプロバイダ)のサーバのお守りをしていることも
あります。

>TAD様とかにあ様と石堂様とかはかお知り合いですか。

知り合いといえば知り合いです。もちろんお互いの顔や声も、ひとによっては
本名も全く知りませんが、立派な知り合いです。

―そして、三葉工房の管理者さんとも「知り合い」なのかも知れません(^^)


[RE] フォロー記事投稿 記事のキャンセル
From: 三葉工房の管理者 <nature-create@amy.hi-ho.ne.jp>
Subject: Re: 不都合な配列の性格に阻まれて(回答します。)
Date: 1999/02/10 17:22:11
Reference: mesh.program/00628

興味本位の質問に回答者の方達全てからお返事をいただきました。
ありがとうございます。

 回答者の方達は,にあ様のサイトに遭遇して,perlの質問に対して,回答コメント
をお書きになっているだけという関係ですね。全員男性の方で?

ちなみに,私は,N.S.E2.75のプログラムの検索処理のサブルーチンの辺りに,
にあ様のサイトのURLが記されていてそれで知りました。



>ちょっとした(簡単な、短い)コードのテストでしたらこれでも問題は無い
>でしょうけど、少し込み入ったことをしようとすると途中で何が何だか
>わからなくなる可能性もありますので、
>
>  - 適切な名前を考える手間
>  - いい加減に付けた名前が何を意味しているのか考える手間
>  - 上記のどちらのほうがコストが掛かるか考える手間:)
>
>などを比べたうえでのバランス感覚でしょうね。
>
># いつでも適切な名前を考えろ、と言っているわけではないです
># わたしもone-liner(“一行野郎”、シェルのコマンドラインで、
># "perl -e" の引数として直接入力して実行するような単純なプログラム)を
># 書くときなどは、面倒くさいので変数には大抵いい加減な名前を付けます

>それだと、他人に見せるためのプログラムとしては不親切ですよね。
>相手が知りたいのは、「あなたがどんな文字列をタイプしたか」ではなく、
>「あなたがどんなコードを実行しようとしたのか」なのですから。

>たぶん逆だと思います。というより、逆でないと将来きっと困ることになります。
>
>よい癖でも悪い癖でも、身に付けるのは簡単ですが、取り除くのは至難の
>技です。同じ癖なら、よい癖のほうを最初から身に付けておいたほうが幸せに
>なれるでしょう。

A.それ通りだと思います。一番分かり易く一番のてっとり早い。
もちろん,人に見てもらうのに適切な変数名では。

>>># ちなみに、何故「17」ではなく「16」なのか理解してます?

>
># 「配列の値の合計値」って、どういう意味で使ってます?
># 「配列に含まれる要素の数」ではないですか?

A.そうですね。要素数です。合計値は,私の場合,掲示板の記事数のカウント
する目的で算出して使っています。
>
># ヒント:
>#  $foo = "one
>#  two" .
>#  "three";
>#  $bar = "four";
>#  print $foo,
>#  $bar;
># は何を表示するか?

A.one
twothreefour

># まずご自分で考えてみて、それから実際に実行して、結果を比較して
># いただけると、もっとよかったのですが;)
>
>>@arrayを$scalarへの1回目の代入は,@arrayの配列が記述されていますので,
>>3が返ります。
>>しかし,更に@arrayの入った$scalarから更に配列へ代入すれば,それは,単なる
>>1要素に過ぎないとみなされますので,@arrayを$scalarへの2週目の代入で値は
>>1が返ります。
>
>だいたい合っていると思います。
>
># キーワード: 「スカラコンテキスト」「リスト(配列)コンテキスト」
>
>>A.上記の質問は,黒幕的存在という記事で答えました。本来は
>>foreach $keymatch(@keymatch){
>(snip)
>
># おや、「プログラミングの書法」はどうなりましたか? ;)

A.foreachの構文の書き方が荒かったですか?駱駝本の8.4は読みました。
勉強になりました。どの様に構文を書くべきかですね。
>
>>A.その様に次回から心がけます。(これだけ無作法な行為をして投稿する資格は
>>あるはずないのですが。)
>
>そんなことはありません。
>
>ほんとうに嫌がられるのは、間違った内容を投稿することでも、分かりづらい
>文章を投稿することでもありません。
>それらを指摘されても改善しようとせず、同じような投稿を繰り返すことです。
>
>「過つは人の常」。大事なのは、そのあとどうするか、です。

A.いくらなんてだも折角御忙しい時間をさいてコメントしたいただいた方達へ
の口答え的な,「報告のつもりだったのに」と言う投稿には非常に反省してます。

>
>>1.YASU様は,perlを始めて何年になりますか。
>
>最初にPerlに触れたのは、NEC PC-9801DAという古いマシンで動く、MS-DOSという
>これまた今となっては古くさい(しかし何故かWindows98の根幹を成している:)
>OSに移植された 日本語化Perl 4.036 というバージョンです。
>これが、既に曖昧になってきている記憶を辿ると、1995年のことだったと
>思います。

A.私は,3か月です。

>>2.perlのプログラミングで一番つまづいた経験はなんですか。
>
A.ユーザーパスワードの設定法(こないだの黒幕的...というforreach文,とか
実行しはじめの頃,何百回ともサーバーエラー500を食らった事です。あの時は,
本当に辛かった。(多分,サーバーのバージョンが4.036なので,perl5の
orやnotでの条件指定が出来なかった事らしい。)。
あの時は,本当にperlプログミングの才能があるのかとも感じました。
そのorやnotをそれぞれ||と!に変えてから,macperlのエラーチェックも
行う様になり,サーバーエラーに遭う確率も減りました。
>
># ある意味では、「名前の付け方」と同じ問題がここにもある、とも言えます
>
>例えばPerl5では、次の3つの文はほぼ同じ働きをしますが、それぞれの持つ
>「意味合い」は少しずつ異なっています:
>
>  foo("bar") or baz($zot, @qux);
>  baz($zot, @qux) unless foo("bar");
>  baz($zot, @qux) if not foo("bar");
>
>「TMTOWTDI、じゃあこの局面ではどうするのがベストだろう?」そういった
>自分なりのプログラミングスタイルを見出すまでの間、たくさんの「読み出し
>不能な」プログラムが、ハードディスクの中に現れては消えていきました。

A.じっくり研究してみます。
>
>>3.回答者の方々は,ふだんは,どんな事をしているのですか。そして,
>
>普段はhacking(と自分では思っている行為)をやってます:)
>ほかに、とあるISP(いわゆるプロバイダ)のサーバのお守りをしていることも
>あります。
>
>>TAD様とかにあ様と石堂様とかはかお知り合いですか。
>
>知り合いといえば知り合いです。もちろんお互いの顔や声も、ひとによっては
>本名も全く知りませんが、立派な知り合いです。
>
>―そして、三葉工房の管理者さんとも「知り合い」なのかも知れません(^^)


=================
最後に


perlでCGIのスクリプトを作成する上で,一番大切な事の1つは,私なりの私的
な意見で,済みませんが,配列を必要に応じて,全方向から動かせる様になる
事だと思います。それが,出来かによって,スクリプトも作成しやすくなる。

色々と全方向からperlを推察して,上達の為に全力をつくそうと思います。

これからも色々とお世話になりますが宜しくお願い申し上げます。


[NEW] フォロー記事投稿 記事のキャンセル
From: Shige <t_shigetome@muf.biglobe.ne.jp>
Subject: core dumpは見れないものか?
Date: 1999/02/22 17:04:20

Mail送信用のscriptを刷新して
localでのTest(と言ってもsendmailはtestできないが)を終えて
いざ upして動作確認に入るとcore dumpを吐いて死んでしまいます。

問題と思われる個所までは特定できたのですが、
何故NGなのかが分からない・・・
同一のサブルーチンを2回callしているところがあって
一回目はOKなのに二回目で死んでしまう。
順番を入れ替えると2回目で死ぬところから引数には関係していないと思われる

そのサブルーチンの中で怪しいと見られるのが
jcode'convert()とMIME::Base64::encode_base64()の使い方です。

jcode'convert()は他にも多数同script内でcallしていますし
encode_base64()は単体では問題無し(直前のjcode'convertをコメントアウト)

因みにerror.txtには
Attemp うんたら とかで開放しようとしたら既に参照カウントが0だった
というメッセージが残ります
ラクダ本を参照しましたが ???です Perl onlyのscriptなのに・・・

今のところは次のような事を疑っています

・しょうもない文法ミスを犯している(ありがち・・・)
 先の被疑サブルーチンにreturnを追加しただけで少し進んだ所からして怪しい

・メモリ不足?(通常はout of memoryのlogが残るはず)

・応答時間が遅い?(他にもっと遅いものもある Benchmarkで確認した)

動作確認は
 ActivePerl 5.005?とCPANからWin95へportingされていた5.004を使用し
 両方で問題なさそうに動いています
 サーバーのPerlは 5.003です
#・・・5.003に戻せば再現できるんかな?


以上
長々と書きましたが、問題解決するには情報不足で
ほとんどグチみたいなもんですねf(^_^;)
でも、これでもう少し頑張ってみようという気になれました。


[RE] フォロー記事投稿 記事のキャンセル
From: Shige <t_shigetome@muf.biglobe.ne.jp>
Subject: Re: core dumpを吐く解決策は・・・(jcode.plの使い方)
Date: 1999/02/27 17:21:26
Reference: mesh.program/00630

2月22日に、Shigeさんは書きました。

>Mail送信用のscriptを刷新して
>localでのTest(と言ってもsendmailはtestできないが)を終えて
>いざ upして動作確認に入るとcore dumpを吐いて死んでしまいます。
>
> 略
>
>そのサブルーチンの中で怪しいと見られるのが
>jcode'convert()とMIME::Base64::encode_base64()の使い方です。
>

 これが当たりでした jcode.plのsubroutineの使い方を変えたら
 dumpを吐かなくなりました。
 なんとなくそんな気はしていたんですが認めたくなかった(^_^;

 で,具体的には
 「jcode subの引数となる変換またはチェック対象となる文字列変数の参照を
 レキシカル変数の参照からグローバル変数の型グロブに全て変えた」
 です。オプション等はレキシカル変数のままです。
 (どっかのFAQにも書いてありそうな結末ですね)

 どうしてそうなるのかまでは面倒なので調べていませんが
 2回目のコールにおいて既に開放されたデータを参照しようとしたため
 dumpを吐いたのかな?と考えています が ちょっと違うような気もします
#jcode.plを見てもその様な所は私には分かりませんでした。

>
>因みにerror.txtには
>Attemp うんたら とかで開放しようとしたら既に参照カウントが0だった
>というメッセージが残ります

 こちらは何故か Biglobeにcore dumpについて質問を投げかけたら
 でなくなっちゃいました。

 因みに core dumpはPerlの場合は見てもしょうがないよ
 と言うような解答でした。
#にあさんからも以前そのような事を教えてもらったような・・・
#でも,手がかりがないとすがりたくなる・・・


[NEW] フォロー記事投稿 記事のキャンセル
From: 三葉工房の管理者 <nature-create@amy.hi-ho.ne.jp>
Subject: アクセスカウンタ作成法他(訂正再投稿)
Date: 1999/02/28 17:00:00

お世話になっています。三葉工房です。

 今日まで,アクセスカウンタの製作に取りかかって来ました。

実は,私のperlスクリプト製作の今回の最終地点は,バナー一体型アクセス
カウンタです。

 それは,画像を連結させ,
<img src="****.cgi">と言うタグで出力する技術が必要です。
ちなみににあ様のアクセスカウンタも画像一体型カウンタですが,ダウンロード
して解凍いたしました所,C言語で記述されていた様です。こないだの「うぇぶ
会議室」は,ようやく解凍出来ました。日本版のエクスパンダーでなければ,
開けない様です。
 残念ながら,うちのサーバーでC言語のスクリプトは,不可です。

ですから,perlでそれを実行させてます。
いろいろと,その画像一体型アクセスカウンタのスクリプトを探し回った所,


 T's CGI-BIN Tools - TcounT Ver.4.XX
からgif-cat.plと言うGIFファイル連結ライブラリをコピーで,手にする事が出来,それ
を自分で記述したスクリプトと併用すれば,簡単に画像一体型アクセスカウンタの実行が出来ます。
そして,ログファイルも作成しました。

その,アクセスカウンタのスクリプトは,cgi-libと gif-cat.plとそして,自分で
作成したライブラリで動いています。ライブラリの末尾に1;がなければエラーにされ
てしまうのですね。面白い事に,そのスクリプト内に3つ程のサブルーチンが記述され
ていまして,その実行記号(&サブルーチン名;)をスクリプト本体に記述せず例の手作り
のライブラリに記述されていてそのライブラリを呼んで,実行記号も読み取って本体の
サブルーチンを実行してしまうプログラムです。

本題に戻ります。実は,そのログファイルの件ですが,そのログのページを見て頂ければ
分かると思いますが,日別カウントの 2月27日のカウントが有りません。スクリプトが実行されない(訪問無し)日のカウントは書かれません。つまり,日が変わると日別カウント
のファイルに新たな日付けの行が追加され,その日(今日)のカウントが実行の度に増えて
行く方式です。ですから,実行の無い日のカウントは記録されないのです。その
実行の無い日のカウントも0でファイルに記録する方法ですが,それには,日付の引き算
が出来る事が必要になると思います。よく表計算では,dateと言う関数でA年月日からB年月日までは,どれくらいの日数があるかを計算出来ます。しかしperlでは,どうやらdate
と言う関数は無いようです。localtimeでは,実行した時の時間情報しか手に出来ません。ところで,その様にperlにてA年月日からB年月日までどれくらいの日数があるかと
言う計算はどのように行うのでしょうか。
ちなみにそのログのページは下記からリンク出来ます。


 ログファイル

次に,バナー一体式アクセスカウンタの作り方の件ですが,よく上がアクセスカウンタ
で下がバナーというカウンタとバナーが一体になっているのを見かけますよね。
それを作りたいのです。そのスクリプトは何処にも公開されていません。
ですが,画像連結プログラムを理解して,イメージマップも理解すれば夢では無いと思います。
先程のgif-cat.plの内容を読んだところ処理が数多く書かれていまして,どうやらGIF
を連結するプログラムの技術は大変らしいです。
 ですが,その話しは別にしてperlプログラムで,GIFファイルを連結して,一体化
されたGIFを作成するには,どの様に行うのでしょうか。

後,アクセスカウンタの貼られている掲示板は,こないだ悪質ないたずらがあった様な
ので,スクリプト名を変更してアクセス出来ない様にして公開出来ない事をお詫び申し上げます。



御忙しい所,度々すみませんが,どうか御回答宜しくお願いします。


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mvg.biglobe.ne.jp>
Subject: Re: アクセスカウンタ作成法他(訂正再投稿)
Date: 1999/03/03 05:58:50
Reference: mesh.program/00635

2月28日に、三葉工房の管理者さんは書きました。

>実行の無い日のカウントも0でファイルに記録する方法ですが,それには,日付の引き算
>が出来る事が必要になると思います。よく表計算では,dateと言う関数でA年月日からB年月日までは,どれくらいの日数があるかを計算出来ます。しかしperlでは,どうやらdate
>と言う関数は無いようです。localtimeでは,実行した時の時間情報しか手に出来ません。ところで,その様にperlにてA年月日からB年月日までどれくらいの日数があるかと
>言う計算はどのように行うのでしょうか。

localtime()の逆関数でtimelocal()と言うのがあります。
前に記事268でも書いたことがありますが、perlの標準添付ライブラリにありますので、まず、

require "timelocal.pl";

で、timelocal.plを使えるようにしておいてから、

$time = &timelocal($sec, $min, $hour, $mday, $mon - 1, $year - 1900);

の様にして、指定時間の内部的な値(秒数)を得ます。
日付の引き算がしたいなら、得られた秒数で引き算して、日にちに換算すれば良いでしょう。

>次に,バナー一体式アクセスカウンタの作り方の件ですが,よく上がアクセスカウンタ
>で下がバナーというカウンタとバナーが一体になっているのを見かけますよね。
>それを作りたいのです。そのスクリプトは何処にも公開されていません。

以前、記事455でのりーさんが紹介してくれたカウンタがまさにそれだったのですが、
今見たらリンク先が無くなっていますね。
# のりーさんペーヂ移っちゃったのかなぁ

>先程のgif-cat.plの内容を読んだところ処理が数多く書かれていまして,どうやらGIF
>を連結するプログラムの技術は大変らしいです。
> ですが,その話しは別にしてperlプログラムで,GIFファイルを連結して,一体化
>されたGIFを作成するには,どの様に行うのでしょうか。

gifcat.plでは同じ大きさのGIFファイルを横につなげる機能しか提供していない様ですが
画像を横につなげるのもバナーの下に並べるのも、単に置く場所の指定を変えるだけで同じ事です。

まあ、その辺を変えるためにはGIFのフォーマットに付いて知っておかなければならないので
チョット面倒ですが、トホホさんのgifcat.plはそんなに見づらいソースでは無いので
ソースとGIFフォーマットの規格とを見比べていけば変更できると思います。

ちなみにGIFフォーマットに付いては、GIF89M規格の日本語訳などを見ると良いでしょう。
# って、さっき見つけたばかりなのだが。(^^)


[RE] フォロー記事投稿 記事のキャンセル
From: 三葉工房の管理者 <nature-create@amy.hi-ho.ne.jp>
Subject: Re: アクセスカウンタ作成法他:timelocal.plに必要なライブラリ
Date: 1999/03/08 17:12:35
Reference: mesh.program/00636

三葉工房です。

 にあ様のおっしゃられた通り timelocal.plを取り寄せました。しかし,1つ問題が
有りました。それは,更に3つのライブラリを入手しなければならない点です。
timelocal.plに更に取り込まなければライブラリは下記の3ライブラリです。
require 5.000;
require Exporter;
use Carp;

Exporterと Carpはどうにか簡単に入手出来ましたが 5.000は,サーチエンジンで
探しても難しいです。もし,そのライブラリの入手方法がお分かりでしたらお教え
願います。

後,例のgif-cat.plですが,上級レベルなのでじっくり時間を掛けて勉強しようと
思います。

色々と画像一体型アクセスカウンタスクリプトのページを見ましたが,やはり誰もが
gif-cat.plとサーフレスキューと御プログラムnpc.cgiの3スクリプトのいずれかを
ライブラリとして行っている様です。

gif-cat.plは等幅横一列のみ実行可能条件らしく,それに合致するイメージなら下の

様に画像連結出来ます。

ところで,にあ様のnpc.cgiと言う御スクリプトの画像結合処理プログラムも,
GIFイメージの仕様を勉強してスクリプトを作成されたのですか。
私としては,GIF連結プログラムをどのようにして作成されたか一番知りたい所です。
後は,最終的には,バナー一体型カウンタを目指しているので,そのタイプのカウンタ
を提供しているサイトへ「スクリプトを譲って頂けませんか」とメールしました。

結構,GIFイメージの仕様 自体も色々と習得しなければならない点があり覚え切るには大変だと思いますが面倒くさがらず学んで行こうと思ってます。



最後に余談ですが,perlと言う言語は,情報処理用語とは,あまり関係の薄い言語
だと思いますが,その言語は,どの様な言語のジャンルに当てはまるのでしょうか。
(例えば,高水準言語,手続き型言語等の振り分け方)

そして,perl言語に関する検定試験等あればいいですね。

最後に,去年の暮れからperlを学び始めた訳ですが,ここまで日が経つとある程度
スクリプトが出来る様になりました。
最近では,掲示板の変更記事を従来と同じ位置に書き直せる処理プログラムが出来る様に
ました。つまり,書き込みファイルの途中に上書きする処理です。
そして,先日紹介したログファイルも先輩のプログラムを見ず今まで覚えたperlの知識
を活用するプログラムを自分で発案して出来る様になりました。始めの頃,サーバエラー
100回とかのたうち回ってましたが自分なりのperlへの熱意でここまで出来るようになった
のも,にあ様をはじめとするアドバイザの方達のおかげてもあると思っています。

それでは,色々,perlに関する話題を書いて済みません。
宜しくお願いします。


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mvg.biglobe.ne.jp>
Subject: Re: アクセスカウンタ作成法他:timelocal.plに必要なライブラリ
Date: 1999/03/13 02:14:15
Reference: mesh.program/00637

3月8日に、三葉工房の管理者さんは書きました。

>timelocal.plに更に取り込まなければライブラリは下記の3ライブラリです。
>require 5.000;
>require Exporter;
>use Carp;
>
>Exporterと Carpはどうにか簡単に入手出来ましたが 5.000は,サーチエンジンで
>探しても難しいです。もし,そのライブラリの入手方法がお分かりでしたらお教え願います。

requireの後ろは、文字列なのかパッケージ名なのか数なのかで意味するところが違います。
文字列とかパッケージ名とかはお分かりでしょうが、数が指定された時は、その名前の
ライブラリが有るわけではなく、perlのバージョンがその数以降で有ることを指定しているのです。

つまり、

require 5.000;

なら、perl5.000 やそれより新しい perl を使いなさい、と言うことなのです。
古いヴァージョンを使うと正常動作しないような場合に、必要最低限のヴァージョンを
指定するものです。

>ところで,にあ様のnpc.cgiと言う御スクリプトの画像結合処理プログラムも,
>GIFイメージの仕様を勉強してスクリプトを作成されたのですか。

えーと、どちらかというと逆ですね。(^^;;

以前PC-9801用のGIF loader/saverを作っていたこともあって、GIFの仕様については
良く知っていたので、Netscapeがserver pushと言う機能をサポートして、画像の
アニメーションが可能になった時に、すぐにカウントアップアクセスカウンタというネタで
プログラムが書けるな、と思いついたわけです。

# と言うわけで、元々 npc.cgi は自分が技術的困難さ無しに簡単に書ける、
# 単なる一発ネタの冗談プログラムだったわけです。(^^;;

もちろん、GIF loader/saverを作っていた時には、GIFの規格について必死になって
調べましたけど、実は肝の部分のLZW圧縮については、昔々学生の頃にいじり倒した事が
あるので、これまた、良く知っていたのでした。(^^)

# と言うことで、効率良くプログラミングを進めるためには、自分が今どこまで理解していて、
# どれだけのものを加えれば上手く行くかを把握出来る事が大切なんじゃないかと思います。

>最後に余談ですが,perlと言う言語は,情報処理用語とは,あまり関係の薄い言語
>だと思いますが,その言語は,どの様な言語のジャンルに当てはまるのでしょうか。

まあ、分類で言えば、手続き型の高級言語、でしょうね。

>そして,perl言語に関する検定試験等あればいいですね。

ああ言う検定試験って実際役に立つんですかねぇ まあ、自分の実力を何らかの形で
評価してみたい、と言う用途には向いているとは思いますし、試験があれば包括的な
勉強はするでしょうけど。

# あたしも仕事では、X線取り扱い主任者なんちゃら、とか、レーザ取り扱いなんちゃら、
# とかの資格を取らされたけど、そう言う機会でもないとチャンと勉強しないからなぁ (^^;;
## 何て書いて良いのか? (笑)


[RE] フォロー記事投稿 記事のキャンセル
From: 三葉工房 <nature-create@amy.hi-ho.ne.jp>
Subject: timelocal.plを使いこなせない
Date: 1999/03/14 11:20:46
Reference: mesh.program/00638

お世話になります。
にあ様のおっしゃられた通り,reuire5.000の事情が分かりましたので,
早速,MacPerl5.0で実行して見ましたが,結局エラーにされて成功出来ません。

require 'timelocal.pl';

$time =&timelocal($sec,$min,$hours,$mday,$mon,$year);
    
print "現在時刻:$time\n";
様に記述しましたが,エラーにされました。
駱駝本の591ページを読んで見ましたが,
$time =&timelocal($sec,$min,$hours,$mday,$mon,$year);

を理解する事も困難で,plを利用出来ません。
テストスクリプトの&timelocalの文の上に例の
($sec,$min,$hour,$day,$mon,$year,$wday)=localtime(time);を付け加えて見ても
&timelocal の後にprint "現在時刻:$mon\n";と変えても
require Exporter;
use Carp;を外しても
やはりうまく行きません。
$time =&timelocal($sec,$min,$hours,$mday,$mon,$year);
をその後,どの様に使えばよろしいのでしょうか。
何度も質問責めで済みませんがアドバイス宜しくお願いします。


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mvg.biglobe.ne.jp>
Subject: Re: timelocal.plを使いこなせない
Date: 1999/03/16 00:51:36
Reference: mesh.program/00639

3月14日に、三葉工房さんは書きました。

>$time =&timelocal($sec,$min,$hours,$mday,$mon,$year);
>print "現在時刻:$time\n";
>様に記述しましたが,エラーにされました。

良く間違えるのは、$mon の範囲が[0〜11]であることと、$yearが(西暦-1900)な
事でしょうか。他は特にハマリそうな所は無いですね。


[RE] フォロー記事投稿 記事のキャンセル
From: こん <PXC06010@niftyserve.or.jp>
Subject: Re: アクセスカウンタ作成法他:timelocal.plに必要なライブラリ
Date: 1999/03/14 22:01:19
Reference: mesh.program/00638

3月13日に、にあさんは書きました。

こん%チャチャです。

># あたしも仕事では、X線取り扱い主任者なんちゃら、とか、レーザ取り扱いなんちゃら、
># とかの資格を取らされたけど、そう言う機会でもないとチャンと勉強しないからなぁ (^^;;
>## 何て書いて良いのか? (笑)

公の場では・・・。(笑)
私も本職の方の勉強は「そういう」機会がないと最近は、勉強しないな〜。
# でも「そういう」機会はない・・(^^;A
不況だしな〜、ちゃんと勉強しないと、、。(笑)


[NEW] フォロー記事投稿 記事のキャンセル
From: 三葉工房 <nature-create@amy.hi-ho.ne.jp>
Subject: CGI機能 とインターネット接続機能の精度の優れた充実したプロバイダ
Date: 1999/03/17 20:45:44

度々質問して申し訳ございません。
色々とお世話になります。
始めにtimelocal.plのアドバイスありがとうございます。
報告は後にしようと思います。

実は,1つ思い当たった事がございましたが,私の加入しているプロバイダ
はPanasonic Hi-Hoですが,本格的にCGIスクリプトの運営を考えています。

ですが,Panasonic Hi-Hoでは,perl4.036が装備されて自分の作成したプログラム
を実行出来ない事はないのですが,以下の出来ない機能もございまして,本格的
なCGIスクリプトの運営(BBSやアクセスカウンタをユーザー登録形式で提供する等)
するには,少し向かないかなと思います。
Panasonic Hi-Hoで使用出来ない機能は以下の通りです。
perl5は無し
sendmailがコンパクト化(機能を限定)された ssendmaiiにされている。
c言語プログラムは無し
NACAのサーバーサイド方式のクリティカルプログラムが装備されていない。
nkf,シェル不可
SSIの<!--#exec cmd="./cnt.pl"-->不可

以上の理由から,本格的にCGIスクリプトを運営するには,やはり,CGIプログラミング
の能力をフルに生かせるCGIに関する装備が多いプロバイダに変えようかなと思っています。色々と,CGIに関するサイトを見た所,にあ様の所もそうなのですが biglobeが一番多いみたいですね。そして,Infowebも色々とCGI機能が充実していました。

私は,1.CGI機能が充実,2.アクセスポイントが充実,3.料金が手頃,4.CGIスクリプト
の読み書きファイルを別サイトのサーバー(どこのサーバーにでも格納可能)に格納可能
なサーバーを提供するプロバイダを探しています。

もし,CGI機能 とインターネット接続機能の精度の優れた充実したお勧めのプロバイダがございましたら御紹介願います。

宜しくお願いします。


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mvg.biglobe.ne.jp>
Subject: Re: CGI機能 とインターネット接続機能の精度の優れた充実したプロバイダ
Date: 1999/03/20 15:27:24
Reference: mesh.program/00643

3月17日に、三葉工房さんは書きました。

>を実行出来ない事はないのですが,以下の出来ない機能もございまして,本格的
>なCGIスクリプトの運営(BBSやアクセスカウンタをユーザー登録形式で提供する等)
>するには,少し向かないかなと思います。

>以上の理由から,本格的にCGIスクリプトを運営するには,やはり,CGIプログラミング
>の能力をフルに生かせるCGIに関する装備が多いプロバイダに変えようかなと思っています。色々と,CGIに関するサイトを見た所,にあ様の所もそうなのですが biglobeが一番多いみたいですね。そして,Infowebも色々とCGI機能が充実していました。

その前に、通常、Web領域の又貸しは出来ないような契約になっているところが多いのじゃ
無いかしら? そうでなくても、他のユーザに BBS 領域の貸し出し等をする予定があるなら、
あらかじめプロヴァイダに連絡とって許可をもらっておいた方が良いのでは?

# ここのカウンタ(npc.cgi)のお試しが、biglobeユーザに限定されているのも、
# そう言う理由です。


[RE] フォロー記事投稿 記事のキャンセル
From: OZAKI'S <toshi@cyber-oz.com>
Subject: Re: CGI機能 とインターネット接続機能の精度の優れた充実したプロバイダ
Date: 1999/03/22 23:36:38
Reference: mesh.program/00643

3月17日に、三葉工房さんは書きました。

>以上の理由から,本格的にCGIスクリプトを運営するには,やはり,CGIプログラミング
>の能力をフルに生かせるCGIに関する装備が多いプロバイダに変えようかなと思っていま
>す。色々と,CGIに関するサイトを見た所,にあ様の所もそうなのですが biglobeが一番
>多いみたいですね。そして,Infowebも色々とCGI機能が充実していました。

 以上のような条件なら,レンタルサーバー/ホスティングサービスを選択肢にいれられたら
  いかがでしょうか?

  YAHOO! Japan ウェブサービス


[NEW] フォロー記事投稿 記事のキャンセル
From: 三葉工房 <nature-create@amy.hi-ho.ne.jp>
Subject: サーバの排他処理について
Date: 1999/03/26 10:35:49

三葉工房です。
プロバイタに関してのアドバイスありがうございます。
やはり,どこもセキュリティの事情にて,書き込みファイルの別サーバ
参照は不可の様です。

自分も色々とプロバイダを考えた結果,Inter-Qメンバーを第一に検討して
います。そこは,無料ホームページ50MBで,商用ページOKで,perl5とsendmailが用意
され,最寄りのアクセスポイントも設置されているからです。

又度々,質問して済みません。こんなに,しょっちゅう質問されては,
嫌になるかと思います。自分で考えろと言う感じに!
ですから,私もその記事についてサーチエンジンで探索しましたが
難しかったです。その探している記事の内容は以下の通りです。
CGIの配布を行う上で,アクセスの頻発に対する排他対策は大事な
問題なので,是非とも知りたいです。
やたらと質問が多すぎて大変済みませんが,よろしければお教え願い
ます。

実は,アクセスカウンタやバナークリックカウンタ等の開発を行って
おりまして,1つ問題があります。
それは,もしアクセスが頻発した時のことです。そこで,私は,同じ
ページファイル(htmlページやcgiスクリプトの事)を複数作成して,
アクセスの排他対策を考えておりまするつまり,ミラーサイトを作る
と言う事です。もし,それをする場合,同じサーバにそのページファイル
を複数おく場合,同一サーバに,複数のページが存在して,もし,その
サーバ内のある人は,Aページ,もう一人は,Bページをアクセスした場合
同じサーバの場合,どのような処理をするのかが大きな問題になります。
同じサーバ内でも同時アクセスしたページが別々なら,並列処理をしてく
れるのか,それとも,別々のページとは言え,サーバが同一なので,アク
セスの早い方から処理するのかを知りたいです。
サーバの性質により,これからの作業をどうするかも2分岐されます。
 
お忙しいところ,恐れ入りますが,サーバの排他処理について宜しくお願いします。


[NEW] フォロー記事投稿 記事のキャンセル
From: nez <nez@mud.biglobe.ne.jp>
Subject: ネスケ2でJavaScriptによる別窓がうまく動かない
Date: 1999/04/25 02:17:49

にあさん、皆様こんばんは〜。
ここで質問させて頂くのは久々です(^^)

さて、うちの久石譲&宮崎駿フォーラムで、「ダイジェストニュース機能」という
いわゆるJavaScriptで小窓を開いてそこに情報を表示するっていうプログラムを使
っているんですが、ネスケ2.02(Mac)の方から上手く動かないと言う報告を
頂きまして色々やっていたんですが、手詰まりになってしまいました(^^;;
元々JavaScriptなんてあまり知らない自分がいじっているので、も〜お手上げです
(^^;

---
function news(loc) {
	var wnd="news";
	var width='350';
	var height='300';
	var myWindow = window.open("", wnd, 'resizable=yes,scrollbars=yes,
	status=0,width='+width+',height='+height);location.href=loc;
}

---
<A href="javascript:news('news.html')">ダイジェストニュース</A>
---

こんな風に(実際はもうちょっとあるのですが)したらうまくいきませんでした。
ネスケ2のwindow.openにはバグがあって、URLの部分にURLを書いても上手く動か
ないということらしいので、ネスケ2では上の通りの処理になるようにしてみたん
です。上の例ではウィンドウは開きますがそこに内容が表示されず、元になるウィ
ンドウにURL記述した部分が反映されるようです。

うまく動くにはどうしたらよいのでしょうか?或いはもしかするとネスケ2では小
窓開いて云々って元々無理なのでしょうか?お教えいただければ幸いです。

尚、「久石譲&宮崎駿フォーラム」の「Testの部屋」443〜454番目の記事でこの問
題について問答やっていますので参考にしていただければ・・・と思います。初歩
的な質問かもしれませんが、よろしくお願いしますm(_ _)m


[RE] フォロー記事投稿 記事のキャンセル
From: Yasu.F <yasuf@big.or.jp>
Subject: Re: ネスケ2でJavaScriptによる別窓がうまく動かない
Date: 1999/04/25 04:41:34
Reference: mesh.program/00647

4月25日に、nezさんは書きました。

>元々JavaScriptなんてあまり知らない自分がいじっているので、も〜お手上げです
>(^^;

わたしもJavaScriptにはあまり明るくないのですが…(^^;

>---
>function news(loc) {
>	var wnd="news";
>	var width='350';
>	var height='300';
>	var myWindow = window.open("", wnd, 'resizable=yes,scrollbars=yes,
>	status=0,width='+width+',height='+height);location.href=loc;

  myWindow.location.href = loc;

じゃないでしょうか。
せっかく「新しく開いた窓」(というオブジェクト)に myWindow と名付けたのです
から、それに対して何かをしてもらうときは myWindow に対して呼びかけなくちゃ
いけないと思います。

もちろん、myWindowという変数を介さずに直接

  window.open(...).location.href = loc;

と書いても(「myWindowよ」ではなく「新しく開いた窓よ!」ってな具合に
呼びかけても)いいはずですが。

>}
>
>---
><A href="javascript:news('news.html')">ダイジェストニュース</A>
>---


[RE] フォロー記事投稿 記事のキャンセル
From: nez <nez@mud.biglobe.ne.jp>
Subject: Re: ネスケ2でJavaScriptによる別窓がうまく動かない
Date: 1999/04/26 19:39:22
Reference: mesh.program/00648

4月25日に、Yasu.Fさんは書きました。

>わたしもJavaScriptにはあまり明るくないのですが…(^^;

十分明るいですよ〜(笑)

>  myWindow.location.href = loc;
>
>じゃないでしょうか。

ああ、やはり初歩的ミスだったんですね(^^;;
早速変えてみたところ、ネスケ4.5では上手く動いているようです。2ではまだ
確かめてはいませんが多分うまく行くと思います。有り難うございます!!!

・・・で、ついでにもう一つ質問させて下さい(^^;

自動的に別窓を開くために。
−−−
<SCRIPT language="JavaScript">
<!--

function WinOpen(){Wina02=window.open('news.html','news','scrollbars=1,
resizable=1,width=350,height=300');

if(navigator.appVersion.charAt(0)>=3){Wina02.focus()}

}
//-->
<body onLoad="WinOpen()">;
−−−
こんな感じで記述しているのですが、ネスケ2ではうまくいかないみたいです。何
故なんでしょう・・・?(^^;
onLoad="..."ってダメなんでしょうか・・・。


[NEW] フォロー記事投稿 記事のキャンセル
From: 三葉工房 <nature-create@amy.hi-ho.ne.jp>
Subject: ネットスケープでのランダムイメージの無限リロードが出来ない!
Date: 1999/05/04 13:18:43

また三葉工房です。 お世話になります。
たびたびすみませんが,投稿させていただきます。


SSIではなくCGIでの<img src="***.cgi">でのイメージ出力では 
1度きりしか再読み込みをしてくれません。ですから,ランダム 
イメージが3点以上ある場合は,普通にネットスケープで,リロ 
ードボタンを押しただけでは,1度目の読み込みから数えて,2 
点目までしか読み込みません。私もランダムイメージを作成して 
いますが,今後は,ネット上に公開する予定なので,ネットスケープ 
で,shiftキーも押さなければ,ランダムイメージが1度しか読み込め 
ないのは,ちょとみっともないので,SSIでは無いCGI方式で普通にネ 
ットスケープで,リロードボタンを押しただけで,1度きりではなく 
無限にランダムイメージを入れ替えられるプログラムをCGIスクリプト 
に記述する方法をどうかお教え願います。


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mvg.biglobe.ne.jp>
Subject: Re: ネットスケープでのランダムイメージの無限リロードが出来ない!
Date: 1999/05/11 01:33:47
Reference: mesh.program/00652

5月4日に、三葉工房さんは書きました。

>SSIではなくCGIでの<img src="***.cgi">でのイメージ出力では 
>1度きりしか再読み込みをしてくれません。

通常、画像読み込みは文書に比べてバイト数が多いので、極力再読み込みを
しないような作りになっていることが多いようですね。

[Reload]ボタンの押下で再読み込みさせたいなら、画像出力のヘッダ部に

Expires: Mon, 10 May 1999 16:08:27 GMT

のような、コンテンツが無効になる時間を入れておけば良いと思います。
もちろん、その時間には現在の時間等を入れておけば、[Reload]を押した時には
既に過去の時間になっているので再読み込みされるでしょう。

# よく Expires: 0 とすれば良い、などと言う解説がありますが、文法的に
# 間違っていますので、ダメです。また、現在時より昔の時間が Expires に
# 入っていると無効になる/誤動作する、と言う話があるので、現在時を入れて
# おくのが無難でしょう。


[RE] フォロー記事投稿 記事のキャンセル
From: 三葉工房 <nature-create@amy.hi-ho.ne.jp>
Subject: Re: ネットスケープでのランダムイメージの無限リロードが出来ない!(再サポート依頼)
Date: 1999/05/13 21:14:47
Reference: mesh.program/00653

5月11日に、にあさんは書きました。

>5月4日に、三葉工房は書きました。
>
>>SSIではなくCGIでの<img src="***.cgi">でのイメージ出力では 
>>1度きりしか再読み込みをしてくれません。
>
>通常、画像読み込みは文書に比べてバイト数が多いので、極力再読み込みを
>しないような作りになっていることが多いようですね。
>
>[Reload]ボタンの押下で再読み込みさせたいなら、画像出力のヘッダ部に
>
>Expires: Mon, 10 May 1999 16:08:27 GMT
>
>のような、コンテンツが無効になる時間を入れておけば良いと思います。
>もちろん、その時間には現在の時間等を入れておけば、[Reload]を押した時には
>既に過去の時間になっているので再読み込みされるでしょう。
>
># よく Expires: 0 とすれば良い、などと言う解説がありますが、文法的に
># 間違っていますので、ダメです。また、現在時より昔の時間が Expires に
># 入っていると無効になる/誤動作する、と言う話があるので、現在時を入れて
># おくのが無難でしょう。

*********************************************
アドバイスどうも有難うございます。

失礼もうしああげて,申し訳ございませんが,
Expires: Mon, 10 May 1999 16:08:27 GMT
をどのように画像出力のヘッダ部に記述するか分かりません。
色々と試してみました。

Expires: Mon, 10 May 1999 16:08:27 GMT
print "Content-type: image/gif\n";
様に書いたり,これは,COOKIEの設定にもでて来ますので,いままでのライプラリの"Cookie.pl"に頼るCOOKIE設定をやめて$ENV{'HTTP_COOKIE'}と手書きに変更して
print "Set-Cookie: $cookname=imgID\:$Cookies{'imgID'}; Expires=Mon, 10 May 1999 16:08:27 GMT\n";
print "Content-type: image/gif\n";

と
しかしながら,今までと変わらず,"再読み込みボタン"だけのCGIからの処理による
<img src="***.cgi">の画像出力では,2回までしか,画像を
取り直してはくれません。

ところで,
Expires: Mon, 10 May 1999 16:08:27 GMT
年月日付の境目に半角の変わりにハイフンを用いた書き方
Expires: Mon, 10-May-1999 16:08:27 GMT
(ちなみに私は,"Monday"と言う様に週の欄は,フル書きで記述して,月の欄は,
上記の書き方と全く同様に英語の月名を3文字に省略して,書いています。)

は,どのように画像出力部に記述するのか,もしくは,COOKIE設定の中で,
記述するのかを大変くどい様で済みませんが,もう少し詳しくお教えいただけません
でしょうか。
どうか宜しくお願い申し上げます。


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mvg.biglobe.ne.jp>
Subject: CGIでのヘッダ出力
Date: 1999/05/15 00:14:53
Reference: mesh.program/00654

5月13日に、三葉工房さんは書きました。

>失礼もうしああげて,申し訳ございませんが,
>Expires: Mon, 10 May 1999 16:08:27 GMT
>をどのように画像出力のヘッダ部に記述するか分かりません。

あー、CGIで独自のヘッダを生成したり、サーヴァが付けるはずのヘッダを変更したり
する場合は、Content-type: 等と同じ所、つまり、コンテンツ自体を出力する前に
入れます。

例えば現在時刻を Expires: にセットしたいなら、

@wday = ('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
@mon = ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');

($sec, $min, $hour, $mday, $mon, $year, $wday) = gmtime;
$ctime = sprintf("%s, %02d %s %04d %02d:%02d:%02d GMT",
 $wday[$wday], $mday, $mon[$mon], $year + 1900, $hour, $min, $sec);
print "Content-Type: image/gif\r\nExpires: $ctime\r\n\r\n";
 
などとしてから画像を出力すれば良いですね。
# Expires: は必ず GMT なのに注意。

>(ちなみに私は,"Monday"と言う様に週の欄は,フル書きで記述して,月の欄は,
>上記の書き方と全く同様に英語の月名を3文字に省略して,書いています。)

HTTP手順で用いられる日時の書き方に関してはチョット前に「うぇぶ会議室の部屋3」の
2000年問題に関する記事でふれたのでそちらを参照して下さい。


[RE] フォロー記事投稿 記事のキャンセル
From: 三葉工房 <nature-create@amy.hi-ho.ne.jp>
Subject: Re: CGIでのヘッダ出力(投稿者からの報告)
Date: 1999/05/21 12:24:58
Reference: mesh.program/00656

三葉工房です。
報告が遅れて済みません!

アドバイスどうもありがとうございました。
とても分かり易かったです。

下記の通り
>print "Content-Type: image/gif\r\nExpires: $ctime\r\n\r\n";

で,色々と,$ctimeのフォーマット(WEEK_NAMEを3文字略(san等),若くはフル書きに
したり等),色々とRCEのフォーマットを替ながら,そのスクリプトのHTMLで出力される
サブルーチンにフォーマットその物をプリントアウトして確認出来る様にして,フォーマットのミスが無い事を確認しながら試して見ましたがやはり無理でした。

おそらく,NET-SCAPE4.5では,Expires: $ctimeの実現は,ちょっと難しい気がします。
ですから,残念ですがその再起動ボタンのみでイメージをネット上から読み直せる処理は,潔くあきらめようと思います。

後,余談ですがスクリプト処理で気付いた事に関してお話しさせていただこうと思い
ます。
最近は,ファイルの読み書きの際に,ファイルの内容を読み落としたまま,配列に代入
して,処理を完了してそのファイルに上書きする際に空白のリストを書き込むトラブル
が起こっています。ですから,自分もアクセスが多くなるのに踏まえて色々と,
ファイルの排他制御について勉強しなければいけないと思っています。

後,こんなのもありました。
perl4.306では,print文での文字列の末尾が"表"等の文字化け処理だとサーバエラー
になるそうです。"\表"で出力出来る様になりました。

そして,SENDMAILの処理は,随分と処理時間を費やすものですね。一度に,7つの
メッセージを作成する処理がありましてつくづくそう感じました。

それでは,又質問がありましたら投稿させていただきます。

失礼します。


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mvg.biglobe.ne.jp>
Subject: Re: CGIでのヘッダ出力
Date: 1999/05/22 00:24:48
Reference: mesh.program/00659

5月21日に、三葉工房さんは書きました。

>で,色々と,$ctimeのフォーマット(WEEK_NAMEを3文字略(san等),若くはフル書きに
>したり等),色々とRCEのフォーマットを替ながら,そのスクリプトのHTMLで出力される
>サブルーチンにフォーマットその物をプリントアウトして確認出来る様にして,
>フォーマットのミスが無い事を確認しながら試して見ましたがやはり無理でした。

うーん、どんなスクリプトになったのか分かりませんが、例えば以下のように
(大胆にエラー処理などを削除してある(^^;;)簡単なスクリプトを実行してみましょうか。

#!/usr/local/bin/perl @wday = ('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'); @mon = ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'); srand; ($sec, $min, $hour, $mday, $mon, $year, $wday) = gmtime; $ctime = sprintf("%s, %02d %s %04d %02d:%02d:%02d GMT", $wday[$wday], $mday, $mon[$mon], $year + 1900, $hour, $min, $sec); print "Content-Type: image/gif\r\nExpires: $ctime\r\n\r\n"; open(IMG, sprintf('%s/ba%d.gif', '/home3/nir/public_html/icons/ball', int(rand(6)))); $/ = undef; print <IMG>; close(IMG); exit(0);
これを実行すると、ba0.gif〜ba5.gifのどれかが「」の様に表示されます。 どうですか? リロードしても違うボールになりませんか? (^^)

[RE] フォロー記事投稿 記事のキャンセル
From: TAD <hotani@mua.biglobe.ne.jp>
Subject: Re: CGIでのヘッダ出力(ボールイメージの件について)
Date: 1999/05/28 11:59:15
Reference: mesh.program/00663

5月27日に、三葉工房さんは書きました。

>ボールイメージの件なのですが,残念ながらNetscapeでは,私の
>質問した問題のイメージプログラムと同様に,リロードボタンでは
>1回きりしか,オンラインからイメージをリロードしません。

#ちょっとあきらめが早すぎるのではないでしょうか。
#なぜ、にあさんが言っている動きをしないのかの理由をブラウザのせいにして終わりなのですか。
#もっと自分を疑ってみましょうよ。

結論から言うと、私の使用している以下のブラウザではちゃんとリロード(再読み込み)
するたびに違う画像が表示されましたよ。
NetscapeCommunicator  4.5
NetscapeNavigator  3.01

但し、最初試したときはすぐにリロードすると何回やっても変わらなかったので
おかしいと思い、しばらく経って(1分程度)からリロードしたらちゃんと変わりました。
どうしてこうなったのかと少し考えてみましたが、以下のような理由ではないかと思います。
三葉工房さんの場合も同じ理由じゃないでしょうか。

<理由>
サーバから画像が送られるときに有効期限(Expires:)はサーバでの現在時刻が設定されてきます。
それで、クライアント側の時計がサーバと同じ時刻であれば、
ブラウザでリロードする時点では当然すでに有効期限が過ぎているので
ブラウザは再度、画像を要求するというのが想定した動き(正しい動き)ですが、
クライアント側の時計が例えば1分くらいサーバより遅れている場合、
すぐにリロードしたのでは、クライアント側ではまだ有効期限を過ぎていないので
ブラウザは再度、画像をサーバに要求することなく自分のキャッシュ上の前の画像を
そのまま表示してしまうため、何度やっても画像が変わらない、ということになってしまう。

そこで私は自分のPCの時刻を確認してみたところやはり時刻が1分程度遅れていたので
117に電話して、正しい時刻に設定しました。
そうしてやり直してみたところすぐにリロードしても画像が変わるようになりました。

>又,分からない事が思いつきましたら改めて宜しくお願いします。

別に、思いついたときすぐに質問に来る必要はないですよ。
考えて考えて考えてもわからなかった時に初めて、質問するようにした方が
自分のためにもなるしみんながハッピーになれると思います。

では。


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mvg.biglobe.ne.jp>
Subject: Expiresの動作
Date: 1999/05/28 22:58:24
Reference: mesh.program/00664

5月28日に、TADさんは書きました。

>クライアント側の時計が例えば1分くらいサーバより遅れている場合、
>すぐにリロードしたのでは、クライアント側ではまだ有効期限を過ぎていないので
>ブラウザは再度、画像をサーバに要求することなく自分のキャッシュ上の前の画像を
>そのまま表示してしまうため、何度やっても画像が変わらない、ということになってしまう。

そうなんですよね。Expiresレスポンスヘッダと言うのは時計が狂っていると
キチンと動作しなくなって扱いづらいんですね。

そこで、HTTP/1.1(長文注意450kB)では、Expiresでは無く、Ageと言うレスポンス
ヘッダが使えるようになっています。

これは文字どおり賞味期限を示す物で、

Age: 600

とか書けば、600sec=10min後に賞味期限が切れるようになります。
これなら、サーヴァとユーザエイジェントで時計が狂っていても正しい動作が見込めるわけです。(^^)

# もう、HTTP/1.1を正しく認識出来るユーザエイジェントってあるのかな?


[RE] フォロー記事投稿 記事のキャンセル
From: TAD <hotani@mua.biglobe.ne.jp>
Subject: Re: Expiresの動作
Date: 1999/05/29 00:06:52
Reference: mesh.program/00665

5月28日に、にあさんは書きました。

>そうなんですよね。Expiresレスポンスヘッダと言うのは時計が狂っていると
>キチンと動作しなくなって扱いづらいんですね。

ちゃんとご存じでしたか。(^^;;

>そこで、HTTP/1.1(長文注意450kB)では、Expiresでは無く、Ageと言うレスポンス
>ヘッダが使えるようになっています。
>
>これは文字どおり賞味期限を示す物で、
>
>Age: 600
>
>とか書けば、600sec=10min後に賞味期限が切れるようになります。
>これなら、サーヴァとユーザエイジェントで時計が狂っていても正しい動作が見込めるわけです。(^^)

なるほどそんなものがあったんですね。
勉強になります。

># もう、HTTP/1.1を正しく認識出来るユーザエイジェントってあるのかな?

どうなんでしょうね。
IE5あたり、やってそうでやってない、かもしれないし
やってなさそうで実はやってたりして。<-未確認


[RE] フォロー記事投稿 記事のキャンセル
From: 三葉工房 <nature-create@amy.hi-ho.ne.jp>
Subject: Re: Expiresの動作(ついに成功しました!)
Date: 1999/05/29 13:45:44
Reference: mesh.program/00666

にあ様&TAD様

お世話になります。

熱心なExpiresのアドバイスどうもありがとうございました。

こないだは,クライアント側とサーバ側の時刻のズレを忘れて,イメージ
が変わらないと記述して,本当に済みませんでした。とても反省してます。

TAD様に言われた通り,3~4分時間を置いたらイメージは変わりました。

そして,根拠となる記述を得て,早速自分のスクリプトのイメージプログラム
の Expiresのデバックをした末に自分のプログラムでも Expiresの動作が出来る
様になりました。

その Expiresの動作を成功させるには,gmtimeで時刻を得る事が条件でした。
時刻のズレを見込んで,gmtime(time-60*5)とクライアントの時刻の後にならない
様にして実行すれば,ランダムイメージを読み込んだ時点で直ぐに イメージをオン
ラインリロードする事が可能です。まるでSSIのランダムイメージの感覚を得られます。

それでは,又質問したい事柄が思いつきましたら改めて宜しくお願いします。


[RE] フォロー記事投稿 記事のキャンセル
From: TAD <hotani@mua.biglobe.ne.jp>
Subject: Re: Expiresの動作(ついに成功しました!)
Date: 1999/05/30 19:08:28
Reference: mesh.program/00667

5月29日に、三葉工房さんは書きました。

>そして,根拠となる記述を得て,早速自分のスクリプトのイメージプログラム
>の Expiresのデバックをした末に自分のプログラムでも Expiresの動作が出来る
>様になりました。

よかったですね。

>それでは,又質問したい事柄が思いつきましたら改めて宜しくお願いします。

いや、だから... (^^;;
私の投稿記事の最後のところは読んでいただけなかったのでしょうか。


[RE] フォロー記事投稿 記事のキャンセル
From: 三葉工房 <nature-create@amy.hi-ho.ne.jp>
Subject: Re: CGIでのヘッダ出力(TAD様へ)
Date: 1999/05/31 10:38:22
Reference: mesh.program/00664

TAD様へ
お世話になります。

気になられたのは,117へTELして,クライアント側の時刻を正しく
して,イメージスクリプトの出力を試す事ですよね。

私も同じ様に117で時刻を正しくして,gtime(time)と,時刻を現在
の時刻に書き直して実行しました。TAD様のおっしゃられている通り
の結果が得られました。

それでは,失礼します。


[RE] フォロー記事投稿 記事のキャンセル
From: TAD <hotani@mua.biglobe.ne.jp>
Subject: Re: CGIでのヘッダ出力
Date: 1999/05/31 15:37:31
Reference: mesh.program/00669

5月31日に、三葉工房さんは書きました。

>私も同じ様に117で時刻を正しくして,gtime(time)と,時刻を現在
>の時刻に書き直して実行しました。TAD様のおっしゃられている通り
>の結果が得られました。

そういう結果を得られたというのは、前の記事でわかりましたよ。
それで、「解決できてよかったですね。」という以下の私の発言となります。

[記事番号:668より]
TAD>よかったですね。

>気になられたのは,117へTELして,クライアント側の時刻を正しく
>して,イメージスクリプトの出力を試す事ですよね。

ちょっと違います。
確かに「自分から問題提起しておいて、さっと引いてしまうのはどうかと思うし、
自分でもう少し考えてはどうですか」ということも書きましたが、
私が気になったのは、以下の三葉工房さんの発言から
'自分で考えようとせず、すぐに人に聞いてしまえばいい'という姿勢が
感じられたことです。(三葉工房さんはなにか特別のことをされているようですから、
自分で解決する力も必要ではないかと思ったのです。いらぬお節介かもしれませんが。)

「又,分からない事が思いつきましたら改めて宜しくお願いします。」

これは私には

「また、わからないことが出てきたら(自分でじっくり考えないで、すぐ)質問しに来ます。」

という風に聞こえましたので、以下の様に私は書いたのです。

[記事番号:664より]
>>又,分からない事が思いつきましたら改めて宜しくお願いします。

TAD>別に、思いついたときすぐに質問に来る必要はないですよ。
TAD>考えて考えて考えてもわからなかった時に初めて、質問するようにした方が
TAD>自分のためにもなるしみんながハッピーになれると思います。

その後また、ほとんど同じ発言があったので、以下のように私は書きました。

[記事番号:668より]
>>それでは,又質問したい事柄が思いつきましたら改めて宜しくお願いします。
>
TAD>いや、だから... (^^;;
TAD>私の投稿記事の最後のところは読んでいただけなかったのでしょうか。

べつに質問するのがいけないと言っているのではないですよ。
そこは誤解しないで下さい。


[RE] フォロー記事投稿 記事のキャンセル
From: 三葉工房 <nature-create@amy.hi-ho.ne.jp>
Subject: Re: CGIでのヘッダ出力(回答される方全てへ)
Date: 1999/05/31 17:07:03
Reference: mesh.program/00670

三葉工房です。
お世話になります。

そうですね。

確かに,今回の事に関して, Expiresの動作しないと,あっさり質問
したのは,自分としてもあさはかすぎ失礼過ぎたと思います。

確かに,PERLを学び始めて,半年になりましたので,ある程度のプログラミング
力はついたと思います。ですから,今は,自分の発想である目的のCGIスクリプト
を開発しています。(アクセスカウンタのログプログラムは,人のスクリプトを
参考にせず思いつきで作成した。随分と大雑把な書き方であるが一応動作する。)

それも,TAD様やにあ様を始めとする助けがあったからと感謝しています。

そして,こないだのよくない記事のキャンセルの件なのですが,TAD様の,
"時間を置けばイメージは動作する"と言う記事で,私が間違った事に気付き,
せめて,こんな失礼な投稿をせめてにあ様だけには見せられないと思い,やって
しまいました。

確かに,このような投稿の仕方では,投稿する筋合いは無いと思っています。


ですから,又出会う時は,雑巾から水滴が出無くなるまで自分の頭をしぼりあげた
上で,それでも分からなかったら,投稿しようと思いますが,やはり,回答される
方に印象よくする様に努められないならば,投稿はしないべきだと思います。

ですから,投稿を礼儀作法について,振り返りしっかり反省しようと思います。


[NEW] フォロー記事投稿 記事のキャンセル
From: Shige <t_shigetome@muf.biglobe.ne.jp>
Subject: Web server間のアクセス
Date: 1999/05/14 12:29:11

www2s.biglobe.ne.jpから他のWeb Serverへのアクセスは
禁止されているんでしょうかね?

connectionが確立できないみたいなんですが、
スクリプトの問題かどうか切り分けがちょっと面倒だなぁって (^_^;;

他のサーバーや自宅マシンからの動作テストではうまく行ってるので
抑止されているんだと信じたい所
Biglobeに問い合わせて薮蛇になってもアレだし・・・

どなたかご存知無いでしょうか?>ALL


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mvg.biglobe.ne.jp>
Subject: Re: Web server間のアクセス
Date: 1999/05/15 00:43:52
Reference: mesh.program/00655

5月14日に、Shigeさんは書きました。

>www2s.biglobe.ne.jpから他のWeb Serverへのアクセスは
>禁止されているんでしょうかね?

うーん、どうでしょうか?
S号機は分かりませんが、すくなくとも1号機からは問題無く出られますが...

Shigeさんとこの会議室はログ取ってましたっけ? こんな感じで読めました。

|$ ./Kagami -a 'http://www2s.biglobe.ne.jp/%7Et_shige/cgi-bin/forum/index.cgi'
|
|HTTP/1.0 200 OK
|Server: Netscape-Enterprise/2.01b
|Date: Fri, 14 May 1999 15:32:29 GMT
|Expires: Fri, 14 May 1999 15:47:29 GMT
|Last-modified: Fri, 14 May 1999 15:12:26 GMT
|Content-type: text/html
|
|<HTML>
|<HEAD><TITLE>井戸の蛙</TITLE></HEAD>
| ...以下略

meshsv14.tk.mesh.ad.jpからのKagami/0.5とか言うユーザエージェントが残るはずですが。

# って、1号機の事書いてもしょうがないのかな? (^^;


[RE] フォロー記事投稿 記事のキャンセル
From: Shige <t_shigetome@muf.biglobe.ne.jp>
Subject: Re: Web server間のアクセス
Date: 1999/05/15 09:51:19
Reference: mesh.program/00657

5月15日に、にあさんは書きました。

>5月14日に、Shigeさんは書きました。
>
>>www2s.biglobe.ne.jpから他のWeb Serverへのアクセスは
>>禁止されているんでしょうかね?
>
>うーん、どうでしょうか?
>S号機は分かりませんが、すくなくとも1号機からは問題無く出られますが...
>
>Shigeさんとこの会議室はログ取ってましたっけ? こんな感じで読めました。
>
>|$ ./Kagami -a 'http://www2s.biglobe.ne.jp/%7Et_shige/cgi-bin/forum/index.cgi'
>|
>|HTTP/1.0 200 OK
>|Server: Netscape-Enterprise/2.01b
>|Date: Fri, 14 May 1999 15:32:29 GMT
>|Expires: Fri, 14 May 1999 15:47:29 GMT
>|Last-modified: Fri, 14 May 1999 15:12:26 GMT
>|Content-type: text/html
>|
>|<HTML>
>|<HEAD><TITLE>井戸の蛙</TITLE></HEAD>
>| ...以下略
>

 いえ うぇぶ会議室ではログを取っていません
#誰がアクセスしているか見えちゃうと気になって記事が書けなくなる(^_^;)

>meshsv14.tk.mesh.ad.jpからのKagami/0.5とか言うユーザエージェントが残るはずですが。
>
># って、1号機の事書いてもしょうがないのかな? (^^;

 そうですねBiglobeでもwww2hは接続出来る事を既に確認しています。

#www2hは私のアカウントではないので色々やるにはちょっと手間が掛かり
#先方(素人)にも手を煩わせてしまふ


[NEW] フォロー記事投稿 記事のキャンセル
From: massa <m.fujii@dream.sse.bch.ntt.co.jp>
Subject: ファイルのアップロードについて
Date: 1999/05/26 22:34:43

ファイルのアップロードについて質問させてください。

ファイルのアップロードについてHTML本をみながら作成しているのですが、
トリガーボタンが”参照”と日本語でブサイクにでてきてしまいます。

どうやら、HTMLの仕様のようですが、
INPUTタグで、TYPEをFILEにすると
日本語版Windowsでは参照...ボタンになり
英語版Windowsでは英語になるようです。

<INPUT TYPE=”FILE” VALUE=”ABC”>と入力しても
ボタンには「ABC」とではなく、「参照...」ボタンになってしまいます。

どなたかよい解決方法をしりませんでしょうか?
突然お邪魔して申し訳ございませんがよろしくお願い致します。


[NEW] フォロー記事投稿 記事のキャンセル
From: ジン <jin@zin.net>
Subject: 2つのCGIを一度に起動させるには・・・
Date: 1999/06/02 05:18:36

2つの異なったCGIを一度に起動させるにはどうしたらいいのでしょうか?

具体的にはレスキューさんのアクセス制限自動管理(regist.cgi)とWebFORM(webform.cgi)をメンーバーサイトの
申込みのページでsubmitを一度押す事で一度に起動させたいのです。

<FORM METHOD=POST ACTION="/webform.cgi">
<FORM METHOD=POST ACTION="/regist.cgi">
<input type=hidden name="recipient" value="jin@zin.net">
<input type=hidden name="subject" value="[ORDER]:">
<input type="hidden" name="no_check" value="on">
<input type="hidden" name="space_check" value="on">

以上の様にしてみましたが、1つしか起動出来ません。
1度に2つのCGIを有効にする事は可能でしょうか?
それとも2つのCGIを1つにまとめるしか方法はないのでしょうか?
宜しくお願いします。


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mvg.biglobe.ne.jp>
Subject: Re: 2つのCGIを一度に起動させるには・・・
Date: 1999/06/02 06:04:59
Reference: mesh.program/00673

6月2日に、ジンさんは書きました。

>2つの異なったCGIを一度に起動させるにはどうしたらいいのでしょうか?

><FORM METHOD=POST ACTION="/webform.cgi">
><FORM METHOD=POST ACTION="/regist.cgi">

>以上の様にしてみましたが、1つしか起動出来ません。

<FORM>を書き並べたり、ACTIONを複数書いてもダメですね。(^^;

>1度に2つのCGIを有効にする事は可能でしょうか?

ここの会議室選択のフレームから部屋へのリンクをたどると、二つのフレームが同時に
更新されると思いますが、これはひとつは通常のリンクでもう一つはjavascriptによる
リンクです。

この様にターゲットフレームが異なる場合には複数のCGIを同時に起動することも可能ですが、
あくまでもユーザエイジェント(ブラウザ)からの別々の要求によって複数のCGIが起動される
事になるので、接続の関係で片方だけ起動できなかったりすることはざらにあるわけです。

>それとも2つのCGIを1つにまとめるしか方法はないのでしょうか?

と言うことで、必ず2つ同時に実行したいのなら、複数のセッションに分けずに、
単独のセッションで処理できるように、CGIを変更するしかないでしょう。


[NEW] フォロー記事投稿 記事のキャンセル
From: 岡安 <boardmaster@po.dream-gogogo.com>
Subject: DreamBBSservice
Date: 1999/09/28 21:29:54

インターネット・プログラム・JAVA関係の電子掲示板をつくりました。
オリジナルなので、アクセスがとても早いです。(CGIを使ってません)(^^)
私が苦労して頑張って作ったものですから、是非書き込んで下さい。
私も知識がありますので、返答できると思います。

是非、是非、是非、私の掲示板も利用して下さい。宜しくお願いします!

http://www.dream-gogogo.com/bbs/


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mvg.biglobe.ne.jp>
Subject: Re: DreamBBSservice
Date: 1999/09/29 02:15:21
Reference: mesh.program/00676

9月28日に、岡安さんは書きました。

>インターネット・プログラム・JAVA関係の電子掲示板をつくりました。
>オリジナルなので、アクセスがとても早いです。(CGIを使ってません)(^^)

CGIを使っていない、と言うことはJava servletsか何かを使っていると
言うことでしょうか?
# それとも単に読み込み時にはCGIを使っていない、と言うことかしら?

見た所、Macサーヴァ(AppleShareIP)の様ですが、何か特殊な機構とか
入っているのでしょうか?
# なかなか興味津々です。(^^)

Apacheサーヴァでもmod_perl等々を使ってCGIの実行を軽くしようと言う
試みは色々ありますが、一般の商用プロヴァイダーでそう言うのをサポートして
いる所はどのくらいあるのでしょうか?

# そう言うのを売りにしたら、スキルが高い人が集まるような気はしますが
# 腕っこきは、自前のサーヴァを立てる方に流れているのかな?
## うちのサーヴァにもmod_perl入れてみようかと思いつつ、実はサーヴァの
## ヴァージョンすら全然上げてないのは秘密。(爆)


[NEW] フォロー記事投稿 記事のキャンセル
From: SAYKA. <sayka@halcyon.ne.jp>
Subject: NTサーバ用実行形式でファイルを開けない
Date: 1999/10/12 05:51:22

始めまして SAYKAと言う者です。
私のHPのサーバがNTなので、
ここのカウンター「npc.exe」を使わせていただいております。

突然の質問で…読みにくいのを承知で書かせていただきます。

現象
「ファイルを開く」プログラムが動かない。

サーバ
OS :WindowsNT(確か4.0)
IIS:4.0
パールスクリプトが実行できる設定無し

アップロード(自分のマシン)環境
OS :Macintosh(8.6)
ツール:Fetch 3.0.3J2


詳細
自分のHPに掲示板を設置しようと思い、
同じサーバで掲示板(.exe仕様)を立ちあげている知人に頼んで、
自分HP用にカスタマイズしてもらい、
アップロードしてテストしてみたら
「ファイルが開けない」という不具合が起きました。
ここのサーバは、パールスクリプトが動作せず、
Windowsの(C等の言語で)実行形式を作成するか、
拾ってくるしかCGIを実行する手だてがありません。
知人のHP(同一サーバ)では動作しているのに私の方では動作しない…。
ローカルでの動作も確認しています。
そこで、html(要はテキストですね)ファイルを開いて中身を出力する…
というだけのプログラムを作ってみたんですが、
同様に「ファイルが開けない」(正しくは見つからない)
というエラーが出て動作しませんでした。
(パーミッション設定は正常(の様にFetch上からは見える))
(単にHTMLを掃き出したりするだけなら正常に動くんですが…)
知人との違いはWindowsでアップロードしているのか
Macintoshでアップロードしているのか…
の違いくらいしか思い当たりません。
(自分のWindowsはインターネットに繋げられないんです…)

そこで思い出したのがここのカウンタです。
「.exe」なのにもかかわらず、
私の環境でアップロードして全く正常に動作しています。
もしかしてプログラムの作成時に注意しなくてはならない事とかがあるのでしょうか?
特に外部ファイルの読み書きに関して です。


聞きたい事まとめ
☆NTサーバ用の実行形式ファイルをアップロードする時、
 環境が関係あるのか?
☆関係ないとしたらプログラムを作る時に
 注意しなくてはいけない事があるのか?
の2つです。


どなたかお心当たりがありましたら教えていただけないでしょうか?


[RE] フォロー記事投稿 記事のキャンセル
From: TAD <hotani@mua.biglobe.ne.jp>
Subject: Re: NTサーバ用実行形式でファイルを開けない
Date: 1999/10/18 19:26:18
Reference: mesh.program/00679

#ちょっと時間が経ってしまっていますから、すでに解決されているかもしれませんが... (^^;;

10月12日に、SAYKA.さんは書きました。

>始めまして SAYKAと言う者です。

初めまして、こんにちは。

>突然の質問で…読みにくいのを承知で書かせていただきます。

「承知」しているのでしたら、できればわかりやすく書いて欲しいですね。(#^_^#)
'箇条書き'にするだけでももう少しわかりやすくなると思いますよ。

>現象
>「ファイルを開く」プログラムが動かない。

以下の認識であってますか?
 CGIプログラムの中でファイルを操作(読み書き)するプログラムを実行すると
 「ファイルが開けない」(正しくは見つからない)というエラーメッセージが出力される。
  CGIプログラム自体は動作している。
 このCGIはperlスクリプトではなくてWindowsの実行形式(.exe)。

>サーバ
>OS :WindowsNT(確か4.0)
>IIS:4.0
>パールスクリプトが実行できる設定無し
>
>アップロード(自分のマシン)環境
>OS :Macintosh(8.6)
>ツール:Fetch 3.0.3J2
>
>
>詳細
>自分のHPに掲示板を設置しようと思い、
>同じサーバで掲示板(.exe仕様)を立ちあげている知人に頼んで、
>自分HP用にカスタマイズしてもらい、
>アップロードしてテストしてみたら
>「ファイルが開けない」という不具合が起きました。

何のファイルを開こうとして開けないのでしょうか。
その開こうとしているファイルは在るべきディレクトリに在りますか?
(これが一番有力だと思いますが...)
また、そのファイルのパーミッションは?

>そこで、html(要はテキストですね)ファイルを開いて中身を出力する…
>というだけのプログラムを作ってみたんですが、
>同様に「ファイルが開けない」(正しくは見つからない)
>というエラーが出て動作しませんでした。
>(パーミッション設定は正常(の様にFetch上からは見える))
>(単にHTMLを掃き出したりするだけなら正常に動くんですが…)

CGIでファイルを作成するとどのディレクトリに作成されましたか?
それは想定しているディレクトリですか?

>聞きたい事まとめ
>☆NTサーバ用の実行形式ファイルをアップロードする時、
> 環境が関係あるのか?

FTPするときは、サーバ側クライアント側とも環境は関係ありません。
ただ、
 ファイルをそのまま送るか(バイナリモード)
 改行コードを変換するか(テキストモード)
を指定されたモードで送るだけです。
その違いについては要注意です。
Macをお使いの場合は特に改行コードの問題は気をつけないといけないですね。

>☆関係ないとしたらプログラムを作る時に
> 注意しなくてはいけない事があるのか?

ファイルを操作(読み書き)するプログラムを作るにあたっては、という事ですよね。
特定のファイルを読む場合はそのファイルを見つけられるか、パスは通っているかを
気を付けないといけないでしょうね。
取りあえず書き出すだけなら、どこかにファイルは作ってくれるでしょうけど。

#参考になりますか。(^^;;


[RE] フォロー記事投稿 記事のキャンセル
From: SAYKA. <sayka@halcyon.ne.jp>
Subject: Re: NTサーバ用実行形式でファイルを開けない
Date: 1999/10/21 02:24:50
Reference: mesh.program/00680

10月18日に、TADさんは書きました。

コソニチハ SAYKAデス

TADさん、答えていただいてありがとうございます


>'箇条書き'にするだけでももう少しわかりやすくなると思いますよ。

箇条書き…そうですね、列挙しておいた方が判りやすそう…(殴
今度はそうします


>>現象
>>「ファイルを開く」プログラムが動かない。
>以下の認識であってますか?
> CGIプログラムの中でファイルを操作(読み書き)するプログラムを実行すると
> 「ファイルが開けない」(正しくは見つからない)というエラーメッセージが出力される。
>  CGIプログラム自体は動作している。
> このCGIはperlスクリプトではなくてWindowsの実行形式(.exe)。

はい。その通りです。


>>「ファイルが開けない」という不具合が起きました。
>何のファイルを開こうとして開けないのでしょうか。
>その開こうとしているファイルは在るべきディレクトリに在りますか?
>(これが一番有力だと思いますが...)
>また、そのファイルのパーミッションは?

開こうとしているのは「.html」という拡張子のテキストファイルです。
置いてある階層は、実行ファイルと同じ階層で、
プログラム中ではパスの指定がなされていません。
(違う階層だとパス自体を間違ってしまう可能性が出ると思ったので)
パーミッションはFTPツールから見る限りでは、
誰でも読み書きできる様になっています。


>>そこで、html(要はテキストですね)ファイルを開いて中身を出力する…
>>というだけのプログラムを作ってみたんですが、
>>同様に「ファイルが開けない」(正しくは見つからない)
>>というエラーが出て動作しませんでした。
>CGIでファイルを作成するとどのディレクトリに作成されましたか?
>それは想定しているディレクトリですか?

言葉が足りませんでしたね。(^^
中身を出力…って言うのは「ファイルに」ではなく標準出力に、です。
でも、ファイルを作成する、というのはプログラムが参照している
場所を探る為には有効かもしれません。
この方法を試してみたいと思います。


>>☆NTサーバ用の実行形式ファイルをアップロードする時、
>> 環境が関係あるのか?
>FTPするときは、サーバ側クライアント側とも環境は関係ありません。
>ただ、
> ファイルをそのまま送るか(バイナリモード)
> 改行コードを変換するか(テキストモード)
>を指定されたモードで送るだけです。
>その違いについては要注意です。
>Macをお使いの場合は特に改行コードの問題は気をつけないといけないですね。

関係ないんですね。
改行コードで問題が出るのは何処かの書き込みで
幾つか触れているのが有ったと思います。
ハマリやすいんでしょう、私もこの記事を読んでから注意する様にしています。


>>☆関係ないとしたらプログラムを作る時に
>> 注意しなくてはいけない事があるのか?
>ファイルを操作(読み書き)するプログラムを作るにあたっては、という事ですよね。
>特定のファイルを読む場合はそのファイルを見つけられるか、パスは通っているかを
>気を付けないといけないでしょうね。
>取りあえず書き出すだけなら、どこかにファイルは作ってくれるでしょうけど。

私も「パスが通っているのか」というのが引っ掛かっている様に思えます。
実際、エラーを表示する部分もHTMLとして出力しているわけですし…(^^;


>#参考になりますか。(^^;;

ありがとうございます。参考になりました。
取り敢えずプログラムが何処を見ようとしているかが
確かめられるかもしれません。


とても困ったらまた質問させていただくかもしれませんが、
その時はまたよろしくお願いします


-----------------------------------------
sayka@halcyon.ne.jp
SAYKA.


[RE] フォロー記事投稿 記事のキャンセル
From: SAYKA. <sayka@halcyon.ne.jp>
Subject: Re: NTサーバ用実行形式でファイルを開けない
Date: 1999/10/25 22:54:53
Reference: mesh.program/00680

10月18日に、TADさんは書きました。

コソニチハ SAYKAデス

ファイル操作がうまく行かない件、取り敢えず解決されました。
原因は思われていた通り、

「パスが違う」

でした。
オープンする際にファイル名だけ指定すると、何処になるか良く判らないので、
プログラム側に渡されるargvの頭に入っているコマンドラインのパスを使い、
絶対パスでオープンをかけた所、正しく動作しました。
結局これだと、プログラムが何処を参照しようとしているのかが
突き止められませんでしたが、動いたのでよしとします(ぉ
あまり良い方法ではないのかもしれませんが…
恐らく知り合いに作ってもらった伝言板プログラムも、
このパスの問題で動作しなかったんだと思います。

と言うわけでこれからオリジナル伝言板作成に取り掛かります(^^

また何かお知恵を拝借するかもしれませんが、その時はよろしくお願いします。


-----------------------------------------
sayka@halcyon.ne.jp
SAYKA.


[RE] フォロー記事投稿 記事のキャンセル
From: いしどう <ishidou@po.iijnet.or.jp>
Subject: Re: NTサーバ用実行形式でファイルを開けない
Date: 1999/10/28 06:25:40
Reference: mesh.program/00682

自分としては超早起きしてしまった いしどう@自宅 です。

10月25日に、SAYKA.さんは書きました。

>ファイル操作がうまく行かない件、取り敢えず解決されました。
>原因は思われていた通り、
>
>「パスが違う」
>
>でした。
>オープンする際にファイル名だけ指定すると、何処になるか良く判らないので、
>プログラム側に渡されるargvの頭に入っているコマンドラインのパスを使い、
>絶対パスでオープンをかけた所、正しく動作しました。
>結局これだと、プログラムが何処を参照しようとしているのかが
>突き止められませんでしたが、動いたのでよしとします(ぉ

えっと、Cのライブラリの中に、getcwd() とかそんなのありません
でしたっけ。これでカレントディレクトリがどこかわかるような
気がするのですが。

IIS上のCGIのカレントディレクトリは、ここの掲示板(どの会議室か
忘れちゃいました。わたしの名前で検索してみてください)で以前
投稿したことがありますが、割り当てている仮想ディレクトリの
てっぺんのディレクトリになるみたいです。
たとえば、C:\inetpub\scripts\myscripts\cgifile.exe という
ファイル(HTTPでアクセスする時の仮想ディレクトリは、
/scripts/myscripts/cgifile.exe になると思いますが)を CGI
として実行した場合、カレントディレクトリは C:\inetpub\scripts
になるはずです。

>と言うわけでこれからオリジナル伝言板作成に取り掛かります(^^

がんばってください (^o^)/~


[NEW] フォロー記事投稿 記事のキャンセル
From: MADZ <madz@cool.email.ne.jp>
Subject: sendmailルールセット3の質問
Date: 1999/11/12 09:54:09

みなさんはじめまして。松澤と申します。

現在、sendmail.cfをカスタマイズ中ですが、次の簡単なルールセット3がマッ
チしません(8.9.0/Linux 及び8.8.6/HPUX10.20の両方ともNG)。
私の拙い知識では、マッチしてくれても良さそうなのですが、全くマッチしない理由
が解りません。
どなたかお知恵をお貸しください。
やりたいことは、アドレスのサブドメイン"yyy"が一致したら"@"を"&"に変えたいだけ
なのです(a@b.yyy.c ---⇒ a&b.yyy.c)。


sena78 $ 
sena79 $ 
sena710 $ sendmail -Cs3.txt -d21.12 -bt
No local mailer defined
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter  
> 3 a@b.yyy.c rewrite: ruleset 3 input: a @ b . yyy . c -----trying rule: $- @ $- yyy $* ----- rule fails rewrite: ruleset 3 returns: a @ b . yyy . c > > sena711 $ s3.txtの内容は; sena77 $ cat s3.txt V7 DXyyy CO @ % ! & O OperatorChars=.:%@!^/[]+& S3 R$-@$-$X$* $1&$2$X$3

[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mvg.biglobe.ne.jp>
Subject: Re: sendmailルールセット3の質問
Date: 1999/11/12 12:05:29
Reference: mesh.program/00684

11月12日に、MADZさんは書きました。

>現在、sendmail.cfをカスタマイズ中ですが、次の簡単なルールセット3がマッ
>チしません(8.9.0/Linux 及び8.8.6/HPUX10.20の両方ともNG)。

>> 3 a@b.yyy.c
>rewrite: ruleset   3   input: a @ b . yyy . c
>-----trying rule: $- @ $- yyy $*

>s3.txtの内容は;

>R$-@$-$X$*	$1&$2$X$3

'.'もトークンですから、

R$-@$-.$X$*	$1&$2.$X$3

とか、

R$-@$+$X$*	$1&$2$X$3

とかにすればよろしいのでは?


[RE] フォロー記事投稿 記事のキャンセル
From: MADZ <madz@cool.email.ne.jp>
Subject: Re: sendmailルールセット3の質問
Date: 1999/11/12 14:57:47
Reference: mesh.program/00685

11月12日に、にあさんは書きました。

>11月12日に、MADZさんは書きました。
>
>>現在、sendmail.cfをカスタマイズ中ですが、次の簡単なルールセット3がマッ
>>チしません(8.9.0/Linux 及び8.8.6/HPUX10.20の両方ともNG)。
>
>>> 3 a@b.yyy.c
>>rewrite: ruleset   3   input: a @ b . yyy . c
>>-----trying rule: $- @ $- yyy $*
>
>>s3.txtの内容は;
>
>>R$-@$-$X$*	$1&$2$X$3
>
>'.'もトークンですから、
>
>R$-@$-.$X$*	$1&$2.$X$3
>
>とか、
>
>R$-@$+$X$*	$1&$2$X$3
>
>とかにすればよろしいのでは?

 にあさん、ありがとうございました。全くそのとおりですね。助かりました。
 にあさんには、この会議室を自社のイントラネット上に立ち上げるときも大変お世話になっておりました。今後ともお知恵を拝借させていただく事があるかと思いますがよろしくお願い致します。


[NEW] フォロー記事投稿 記事のキャンセル
From: SAYKA. <sayka@halcyon.ne.jp>
Subject: リンクで呼んだREQUEST_METHODをPOSTにするには?
Date: 1999/12/11 03:21:51

こんにちはSAYKAです。
前回の問題の後から、ちまちまと伝言板作成を進めていますが、
ちょっと判らない事が出たので質問させていただきにまいりました。

<A HREF="xxx.exe?">
などとして呼び出したやつの「REQUEST_METHOD」を調べると
「GET」になっているのですが、
これを「POST」で送る方法はありませんでしょうか?

FORMで見えるsubmitボタンだったら簡単なんですが
いかんせんボタンなんで…(^^;

解決策が有るようでしたお願いします
--------------------
SAYKA.
sayka@halcyon.ne.jp


[RE] フォロー記事投稿 記事のキャンセル
From: NK <beatbase@mxb.mesh.ne.jp>
Subject: Re: リンクで呼んだREQUEST_METHODをPOSTにするには?
Date: 1999/12/11 16:20:46
Reference: mesh.program/00687

SAYKAさんこんにちは!

<INPUT TYPE="image" SRC="image.gif" name="xxx">

というのはどうでしょう。
 ボタンのかわりにイメージが表示されます。
押すと、その座標も送られてきますが無視すれば
良いと思います。

それでは。


[NEW] フォロー記事投稿 記事のキャンセル
From: hide <akm@nasuinfo.or.jp>
Subject: isdnについて
Date: 1999/12/15 22:49:47

isdnにしたのにアナログよりつながるのがおそい!
なぜ?


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mvg.biglobe.ne.jp>
Subject: Re: CGIのパラメータ区切りに';'を使う事
Date: 1999/12/24 21:50:02

Reference: http://www8.big.or.jp/~yasuf/proj/FAQ/forum/talk/00041.html

# やっと仕事がひとやま越えたので、スクリプト書き、ペーヂ書きをぼちぼちとやっています。(^^;
# 違う会議室から引っ張ってきた話題です。(^^;

>11月19日に、Yasu.Fさんは書きました。
>
>>せっかくなのでやってみました(^^;;  といっても数文字追加しただけですが。
>>
>>  npc.cgi?N=123;DI=1&INC=-1
>>
>>とかは利くみたいです。たぶん、これだけでいいんじゃないかな。見落しがあったら
>>失礼。

チョット困っているのが、QUERY_STRING以外で渡された';'の扱いをどうしようか? と
言うことです。

例えばPOSTのデフォルトエンコーディングは"application/x-www-form-urlencoded"で、
この場合は英数字以外は皆、"%XX"形式にエンコーディングされていますから、';'は
現れないはずなので、';'に'&'と同じ意味を与えてしまってもよさそうな気もしますが、
逆にもともとPOSTには、"&amp;"問題は存在しないわけで、';'に特別な意味を与えるのも
変ですし...

>># うぇぶ会議室のほうは…まだ見てません(^^;

と、言う事で、試しに、『npc.cgi』と『うぇぶ会議室』の両方で、';'をパラメータ区切りに
使えるようにしてみましたが、今のところ、';'が区切り記号と思われるのは、QUERY_STRINGの
中だけにしてあります。

どっちにした方が良いですかねぇ > ALL


<DIV CLASS="余談">
### 会議室を跨いだ Followup-To: のイメーヂの試験も兼ねていたりするんですが、
### 最初に「〜は書きました」を挿入するの忘れてた。再編集モードだとCookieが利かないし... (^^;
</DIV>


[RE] フォロー記事投稿 記事のキャンセル
From: Yasu.F <yasuf@big.or.jp>
Subject: Re: CGIのパラメータ区切りに';'を使う事
Date: 1999/12/26 02:59:58
Reference: mesh.program/00690

なんか、呼び出されてしまった…(^^;;

12月24日に、にあさんは書きました。

>チョット困っているのが、QUERY_STRING以外で渡された';'の扱いをどうしようか? と
>言うことです。
>
>例えばPOSTのデフォルトエンコーディングは"application/x-www-form-urlencoded"で、
>この場合は英数字以外は皆、"%XX"形式にエンコーディングされていますから、';'は
>現れないはずなので、';'に'&'と同じ意味を与えてしまってもよさそうな気もしますが、
>逆にもともとPOSTには、"&amp;"問題は存在しないわけで、';'に特別な意味を与えるのも
>変ですし...

わたしは逆に、「同じquery stringをrequest lineに書くとうまくいくのに、entity bodyとして
送るとうまくいかない」というのは、たとえばuser agentを実装する側にとって混乱の元に
ならないかなぁと思ったりもするのですが、どうなんでしょうね。

# そもそもuser agentが & の代わりに ; を生成するというのはやりすぎ?
# そんなことはないと思うんだけど…。

><DIV CLASS="余談">
>### 会議室を跨いだ Followup-To: のイメーヂの試験も兼ねていたりするんですが、
>### 最初に「〜は書きました」を挿入するの忘れてた。再編集モードだとCookieが利かないし... (^^;
></DIV>

ちょっとびっくりしました:)  思ったより簡単に実現しそうですね。


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mvg.biglobe.ne.jp>
Subject: Re: CGIのパラメータ区切りに';'を使う事
Date: 1999/12/26 13:42:39
Reference: mesh.program/00691

12月26日に、Yasu.Fさんは書きました。

>12月24日に、にあは書きました。
>
>>逆にもともとPOSTには、"&amp;"問題は存在しないわけで、';'に特別な意味を与えるのも
>>変ですし...
>
>わたしは逆に、「同じquery stringをrequest lineに書くとうまくいくのに、entity bodyとして
>送るとうまくいかない」というのは、たとえばuser agentを実装する側にとって混乱の元に
>ならないかなぁと思ったりもするのですが、どうなんでしょうね。

うーん、確かにwww-form-urlencodedされた文字列なら両者に共通に使えますが、そこでは
'&'や'='は特別な意味を与えられているし、逆に';'は書くことが出来ないわけです。

しかし、request lineではwww-form-urlencodedを使わねばならない、と言う規約はなく、
URLの一部として扱われるから、単にURL中に書けない文字だけがurlencodeされれば良いので、
';'が使えるわけですよね。

HTML中のURL中に "...?n+=i;&amp;len(p=ptr);" と言う所があったとしても、それは
単に "n+=i;&len(p=ptr);" と言う文字列を渡したいだけで、その意味として、
項目"n "に値"i;"を、項目"len(p"に値"ptr);"を入れる、と言う意味が強制されている
わけでは無いですし、"n+=i;&len(p=ptr);"と言う文字列を渡すのに、必ず、
"n%2B%3Di%26len%28p%3Dptr%29"と書かなくてはいけないことも無いですよね。

また、FORMのエンコードに、と言うより、entity bodyのエンコードにwww-form-urlencoded以外
(multipartとか)のエンコードを使っても、別に構わないわけですよね。
# うぇぶ会議室的には、まだ実装されていないから大いに構いますが...(^^;

># そもそもuser agentが & の代わりに ; を生成するというのはやりすぎ?

www-form-urlencodedを使っているんなら、';'は書けないですし、そうじゃないなら
'&'は'&'として渡してほしいです。

ただし、ここからは実装上の話になるわけですが、request lineでも(www-form-urlencoded)な
entity bodyでも『区切り記号に'&'ないし';'を使い、項目と値の区切りに'='を使い、
文字はurlencodeされている可能性がある』という、緩いwww-form-urlencoded形式を入力に
仮定することは安全な選択かな、と言う気はします。

# まあ、どうせ、正しいwww-form-urlencoded中に';'は来ないので、あくまでもアルゴリズム上の
# 正しさ、と言うか、意味上はどうあるべきなのか、と言うことだけに尽きるのですが。(^^;
## あ、へぼなUserAgentからのfool proofをとるためにはどちらが良いのか、というのもあるな。


>ちょっとびっくりしました:)  思ったより簡単に実現しそうですね。

# この頃サボって顔出していなかったので、少し強力な召喚呪文を唱える必要があるかしらと...(^^;;;

実は、プレヴューモードのソース表示を貼り付けて、ちょっと編集しただけなので、大して
手間はかからなかったのですが、実際に実装する場合には、Followup-To:先のCGIの
URLと部屋名を知らないと指定できないので、その辺をどうすれば良いのかがポイントですね。

今のユーザカスタマイズ設定の転送みたいに直書きさせたのでは使いづらいし、第一、
間違いが多くなって、フォローアップ先が見つからないことが多くなってしまうでしょうから、
複数会議室間の有機的リンク機構が働くようになった後の話かもしれませんね。(^^;
# って、いつの事やら。(^^;


[NEW] フォロー記事投稿 記事のキャンセル
From: あら <ara@ask.ne.jp>
Subject: javascript(onClick)
Date: 2000/04/06 16:55:22

こんにちは。
数年前にうぇぶ会議室の設置に質問をさせていただいた以来です。(^^;
おかげさまで好評稼働中です。

さて、今回はjavascriptに関して教えてください。
画像の一部をクリックして小さいウインドウを開きたいのですがIE(5)だと開くのに
Netscape(4.6,4.7)だと何も起こりません。
Netscapeではareaタグの中にonClickと記述しても無効なのでしょうか?

--------------------------------------------------------------------
<html>
<head>
<title>index</title>

<SCRIPT LANGUAGE="JavaScript">

<!--
function subWin1(){
         window.open("select.htm","window2","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width=220,height=180" );
        }
// -->

</SCRIPT>

</head>

<body bgcolor="white">
<center><br>
<img border="0" frame src="img/top.jpg" name="main" noresize usemap="#top" width="571" height="451"><br>
	<map name="top">
   #↓ onClickがNetscapeで動作しません
    <area shape="rect" coords="13, 4, 72, 63" onClick="subWin1()">
    <area shape="rect" coords="493, 2, 555, 63" href="a.htm">
    <area shape="rect" coords="180, 238, 377, 260" href="b.htm">
    </map>
<hr>
</center>
</body>
</html>
--------------------------------------------------------------------

長文失礼しました。


[RE] フォロー記事投稿 記事のキャンセル
From: いしどう <ishidou@po.iijnet.or.jp>
Subject: Re: javascript(onClick)
Date: 2000/04/10 17:38:34
Reference: mesh.program/00694

いしどう@自宅 です。

4月6日に、あらさんは書きました。

>さて、今回はjavascriptに関して教えてください。
>画像の一部をクリックして小さいウインドウを開きたいのですがIE(5)だと開くのに
>Netscape(4.6,4.7)だと何も起こりません。
>Netscapeではareaタグの中にonClickと記述しても無効なのでしょうか?

Netscape の DevEdge Online 中の HTML のドキュメントを見ると、AREAタグには onClick はないようです。

ですので、Netscape Navigator ではサポートしてないんでしょう。たぶん。


[RE] フォロー記事投稿 記事のキャンセル
From: あら <ara@ask.ne.jp>
Subject: Re: javascript(onClick)
Date: 2000/04/11 20:38:52
Reference: mesh.program/00695

あらです。

いしどうさんありがとうございました。

>ですので、Netscape Navigator ではサポートしてないんでしょう。たぶん。

なるほどNetscapeではサポートしていないんですね。
javascriptだけじゃなくてもブラウザ依存ってやっかいですね。。。

対応としてはjavascriptを使用せずに他の部分と同様通常のリンクに変更しました。
どうもありがとうございました。m(_ _)m


[RE] フォロー記事投稿 記事のキャンセル
From: Kaz <kaz-h@ra2.so-net.ne.jp>
Subject: Re: javascript(onClick)
Date: 2000/06/15 11:34:45
Reference: mesh.program/00696

4月11日に、あらさんは書きました。

>なるほどNetscapeではサポートしていないんですね。
>javascriptだけじゃなくてもブラウザ依存ってやっかいですね。。。
>
>対応としてはjavascriptを使用せずに他の部分と同様通常のリンクに変更しました。
>どうもありがとうございました。m(_ _)m

 AREAのなかに HREF="javascript:subWin1()" と書くのはどうでしょう。
 試してから書けばよかったですが・・・
 いずれにしろJAVASCRIPTは、やっかいですね。(^^;;


[RE] フォロー記事投稿 記事のキャンセル
From: Kaz <kaz-h@ra2.so-net.ne.jp>
Subject: Re: javascript(onClick)
Date: 2000/06/15 11:43:59
Reference: mesh.program/00700

 自己レスです。

> AREAのなかに HREF="javascript:subWin1()" と書くのはどうでしょう。
> 試してから書けばよかったですが・・・
> いずれにしろJAVASCRIPTは、やっかいですね。(^^;;

 ネスケ4.73とIE3.02では、確認できました。
 IE4以上でダメだったりして・・・(^^;;


[RE] フォロー記事投稿 記事のキャンセル
From: あら <ara@ask.ne.jp>
Subject: Re: javascript(onClick)
Date: 2000/06/15 14:51:10
Reference: mesh.program/00701

6月15日に、Kazさんは書きました。

こんにちは。

> ネスケ4.73とIE3.02では、確認できました。
> IE4以上でダメだったりして・・・(^^;;

すばらしい!
私の方で

 ネスケ4.7, 6 Preview Release 1
 IE5

でも正常に動作しました。
ありがとうございました。
でわでわ〜。


[NEW] フォロー記事投稿 記事のキャンセル
From: くろみつ <kuromitu@mxb.maple.or.jp>
Subject: 特殊文字の抜き出しについて
Date: 2000/06/06 17:49:29

はじめまして、くろみつと申します。
検索エンジン(NinjaSearch)のスクリプトを見て、にあさんのHPに訪れました。
スクリプトの中の特殊文字のエスケープ処理をにあさんが考えられたという事なので、
この掲示板に書き込みします。(誰でもいいから教えてほしいんです。)
掲示板のCGIを作成中ですが、imode,PC,EZでも共通に見れるようにしているのですが、
imodeの絵文字が、PCでは文字化けですんでいるのですが、EZになると、コンパイルエラーが出るのです。
そこで、EZに表示する時のみ絵文字(SJIS:63647〜63919)を除いて表示したいのです。
だれか、特定の文字コードの文字だけを取り除く方法をお教え願えないでしょうか?
お願い致します。


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mvg.biglobe.ne.jp>
Subject: Re: 特殊文字の抜き出しについて
Date: 2000/06/08 01:12:29
Reference: mesh.program/00697

6月6日に、くろみつさんは書きました。

>掲示板のCGIを作成中ですが、imode,PC,EZでも共通に見れるようにしているのですが、
>imodeの絵文字が、PCでは文字化けですんでいるのですが、EZになると、コンパイルエラーが出るのです。
>そこで、EZに表示する時のみ絵文字(SJIS:63647〜63919)を除いて表示したいのです。
>だれか、特定の文字コードの文字だけを取り除く方法をお教え願えないでしょうか?

とりあえずEZとは何の事だか分からないんですが、(^^;; ドコモの絵文字リストを見ると、
ずいぶん飛び飛びにコードが割り当てられているんですね。

コードの範囲は、

No.001 0xF89F (63647)
 .
 .
No.094 0xF8FC (63740)
No.095 0xF940 (63808)
 .
 .
No.104 0xF949 (63817)
No.105 0xF972 (63858)
 .
 .
No.117 0xF97E (63870)
No.118 0xF980 (63872)
 .
 .
No.134 0xF990 (63888)
No.135 0xF9B0 (63920)
No.136 0xF991 (63889)
 .
 .
No.166 0xF9AF (63919)

ですから、正規表現で書くと、

$re_emoji = '\xF8[\x9F-\xFC]|\xF9[\x40-\x49\x72-\x7E\x80-\xB0]';

となりますね。

簡便にはこれらの文字が現われたら、ゲタ(〓)か何かに差し替えてしまえば良いので、

$str =~ s/$re_emoji/〓/g;	# 簡単な式

で出来ますが、これだと偶々隣り合った漢字の[2バイト目1バイト目]の並びが
絵文字に一致してしまうと、そこまで変換してしまいます。

例えば、

$str = "半角カナ(\xB6\xC5)やAlphabetが有っても"
     . "絵文字(\xF9\x75\xF8\xA2)は除けるけど、"
     . "需要とかも化けてしまうかも?";

と言う文字列が有ると、これが、

「半角カナ(カナ)やAlphabetが有っても絵文字(〓〓)は除けるけど、氏vとかも化けてしまうかも?」

の様になってしまいます。

perlのヴァージョン5を使っているなら、上の簡単な式の代わりに、

$re_ascii     = '[\x00-\x7F]';
$re_sjis_c    = '[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC]';
$re_sjis_kana = '[\xA1-\xDF]';
$re_emoji     = '\xF8[\x9F-\xFC]|\xF9[\x40-\x49\x72-\x7E\x80-\xB0]';

$str =~ s/\G((?:$re_ascii|$re_sjis_c|$re_sjis_kana)*?)(?:$re_emoji)/$1〓/g;	# 複雑な式

とすれば、正しく、

「半角カナ(カナ)やAlphabetが有っても絵文字(〓〓)は除けるけど、需要とかも化けてしまうかも?」

となります。

# perl4だと、前回の一致位置のしっぽ(\G)も最短一致(*?)も無いので、
# ループを回さなくてはいけないでしょうから面倒そう。取りあえずperl4版はパスです。(^^;


[RE] フォロー記事投稿 記事のキャンセル
From: くろみつ <kuromitu@mxb.maple.or.jp>
Subject: Re: 特殊文字の抜き出しについて
Date: 2000/06/09 15:12:09
Reference: mesh.program/00698

にあさん、お忙しい中、早速の返信ありがとうございました。
詳しい説明なので、よくわかります。

6月8日に、にあさんは書きました。

>とりあえずEZとは何の事だか分からないんですが、(^^;; ドコモの絵文字リストを見ると、
>ずいぶん飛び飛びにコードが割り当てられているんですね。
EZというのは、DDIセルラーやIDOなどで使っているEZWebとEZAccessのことです。
PCのHTML,imodeのC-HTMLに対して、EZはHDMLという言語(正確にはWAP上で動くらしい...詳しい事はよくわかりません。)を使っていて、これがちょっとやっかいなんです。

>perlのヴァージョン5を使っているなら、上の簡単な式の代わりに、
>
>$re_ascii     = '[\x00-\x7F]';
>$re_sjis_c    = '[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC]';
>$re_sjis_kana = '[\xA1-\xDF]';
>$re_emoji     = '\xF8[\x9F-\xFC]|\xF9[\x40-\x49\x72-\x7E\x80-\xB0]';
>
>$str =~ s/\G((?:$re_ascii|$re_sjis_c|$re_sjis_kana)*?)(?:$re_emoji)/$1〓/g;	# 複雑な式
>
>とすれば、正しく、
>
>「半角カナ(カナ)やAlphabetが有っても絵文字(〓〓)は除けるけど、需要とかも化けてしまうかも?」
>
>となります。
>
># perl4だと、前回の一致位置のしっぽ(\G)も最短一致(*?)も無いので、
># ループを回さなくてはいけないでしょうから面倒そう。取りあえずperl4版はパスです。(^^;
使っているperlは5です。(よかった。すみません、最初に書くのを忘れていました。)

さっそく、使ってみます。


[NEW] フォロー記事投稿 記事のキャンセル
From: Kaz <kaz-h@ra2.so-net.ne.jp>
Subject: Cookieを覚えない
Date: 2000/06/22 10:05:35

 Kazです。こんにちは。

 私のこういうチャットの部屋で、問題が起こっております。
 http://ya.sakuraweb.com/%7Ekaz/gchat/

 名前やメールアドレス・色などの入室情報をCookieで伝えていきます。
 まずは、フレームをprintするCGIが起動されて、各フレームでは、
発言欄を表示するCGIと過去発言を表示するCGIが起動されます。

 どうも、この発言欄を表示するCGIに全てのCookie情報が伝えられていない
ようなんです。
 特にWin98でIE5を使っているひとに頻発しています。

 入室のCGIから伝えられたCookie情報をブラウザが認識する前に
発言欄を表示されるCGIが起動されてしまい、Cookie情報が伝えられないのかなぁと
考えたのですが、そんなことになるのでしょうか??
 どぉーも、うまいデバッグ方法が見つからず困っています。
 何よりうちのマシンでは、うまくいってしまうのが、ネックです。(^^;;

 上記のような現象が起こり得るなら、画面構成を替える等の処置で
とりあえず、逃げたいと思いますが。。。

 何か思い当たる節がありましたら、教えて下さい。
 よろしくお願いします。


[RE] フォロー記事投稿 記事のキャンセル
From: Kaz <kaz-h@ra2.so-net.ne.jp>
Subject: Re: Cookieを覚えない
Date: 2000/06/22 11:14:49
Reference: mesh.program/00703

6月22日に、私が書きました。

> 名前やメールアドレス・色などの入室情報をCookieで伝えていきます。
> まずは、フレームをprintするCGIが起動されて、各フレームでは、
>発言欄を表示するCGIと過去発言を表示するCGIが起動されます。

 勘違いです。cookieで伝えているのではなく、パラメータでした。
 でもそれが正しく伝えられないとは、どういうことなのでしょう。

 Cookieに覚える覚えないというのもパラメータで伝えられるので、
これが正しく伝えられず、すっかり入室情報がクリアされてしまうひともいるようです。
 (入室してから入室情報の一部を変更することができるので、
この画面でも、Set-Cookieやっています。)

 IEの仕業でしょうか?やはり。


[NEW] フォロー記事投稿 記事のキャンセル
From: SAYKA. <sayka@halcyon.ne.jp>
Subject: imgタグから呼んでるCGIの仕組みは?
Date: 2000/10/03 09:03:14

こんにちは。
以前伝言板作成で四苦八苦していたSAYKAです。

今度はexeのカウンターを作ろうと思っているのですが、
にあさんの開発されたnpcのカウンタはCGIの結果が画像ですよね?
これはどういう原理なんでしょうか?
動作からすると、1つの画像として書き出しているようですが…

------------------------------
SAYKA.
sayka@halcyon.ne.jp


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mvg.biglobe.ne.jp>
Subject: Re: imgタグから呼んでるCGIの仕組みは?
Date: 2000/10/07 20:41:30
Reference: mesh.program/00705

にあです。
皆さんお久しぶりです。(って、ぉぃ)

10月3日に、SAYKA.さんは書きました。

>にあさんの開発されたnpcのカウンタはCGIの結果が画像ですよね?
>これはどういう原理なんでしょうか?
>動作からすると、1つの画像として書き出しているようですが…

いや、単純にCGIでGIF画像を出力しているだけです。
言い換えれば、CGIでContent-Typeがimage/gifなデータ列を出力している、
と言うことです。

# 昔は自作の高速LZW圧縮コードが売りだったりもしたのですが、
# 今はUnisysのLZW特許の関係で無圧縮モードしかサポートしなくなって
# しまったので、単にGIFのフォーマットを出力しているだけの様な
# つまらないコードになってしまいました。 (^^;;


[RE] フォロー記事投稿 記事のキャンセル
From: SAYKA. <sayka@halcyon.ne.jp>
Subject: Re: imgタグから呼んでるCGIの仕組みは?
Date: 2000/10/08 22:54:22
Reference: mesh.program/00706

10月7日に、にあさんは書きました。

>>にあさんの開発されたnpcのカウンタはCGIの結果が画像ですよね?
>>動作からすると、1つの画像として書き出しているようですが…
>いや、単純にCGIでGIF画像を出力しているだけです。
>言い換えれば、CGIでContent-Typeがimage/gifなデータ列を出力している、

という事はGIFを読み込んで
printf("Content-Type: image/gif\n\n");
ってやってstdoutにたれ流しっていう安直なやり方なんですか?(^^;
この時必要な個数分だけgifデータを読んで出力すれば(隣の座標に)繋がってでるって事でしょうか?


>今はUnisysのLZW特許の関係で無圧縮モードしかサポートしなくなって
>しまったので、単にGIFのフォーマットを出力しているだけの様な
>つまらないコードになってしまいました。 (^^;;

PNGとか言うが進出してきてますが、なんかまだぱっとしない感じします。個人的に(^^;

----------------------------------------
SAYKA.
sayka@halcyon.ne.jp


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mvg.biglobe.ne.jp>
Subject: Re: imgタグから呼んでるCGIの仕組みは?
Date: 2000/10/08 23:23:42
Reference: mesh.program/00707

10月8日に、SAYKA.さんは書きました。

>10月7日に、にあさんは書きました。
>
>>いや、単純にCGIでGIF画像を出力しているだけです。
>
>という事はGIFを読み込んで
>printf("Content-Type: image/gif\n\n");
>ってやってstdoutにたれ流しっていう安直なやり方なんですか?(^^;

だと簡単で良いのですが、複数桁繋げて一つの画像にするには、一度繋がった数字画像を
作っておき、それをGIFのフォーマットにしたがって出力する必要があります。

>この時必要な個数分だけgifデータを読んで出力すれば(隣の座標に)繋がってでるって事でしょうか?

ということで、これでは上手くいきません。
もっとも、ひとつながりの画像にしないで並べる方法なら、GIFデータを読んで書く、
と言った方法も使えます。もちろん、その場合でも、単に続けて出力しても
並んでは表示してくれませんから、フォーマットにしたがって再結合する必要は
ありますが、LZWの伸張、圧縮を行う必要がありませんから、Unisysの特許に
抵触せず圧縮GIF画像を扱うことが出来ます。
# 世の中にある、perlを使ったカウンタは大抵このタイプじゃないかしら?

>PNGとか言うが進出してきてますが、なんかまだぱっとしない感じします。個人的に(^^;

PNGは主要ブラウザがサポートするようになったので、もう十分使える段階に
入っていると思います。ただ、PNG単体ではアニメーションが出来ないんですよ。

現在、Web上の画像では、フルカラーの物は大抵JPEGになっていますから、
GIFが使われているのは、ごく小さいアイコンかアニメーションとなってしまって、
なかなかPNGで置き換わることが進みませんね。アニメーション対応のMNGが
広範囲に使われるようになれば事情は変わるとは思うのですが。

現在、GIFの代わりにPNGを使うのは、Unisysに対する抗議の意味が強くて、
PNG自体の魅力で使うのは、ごく限られた範囲内でしか無いですから。
# たとえば、24bitsフルカラーをlossless圧縮で置きたいと言う、
# どちらかと言うとマニアックな趣味とか。(^^;;


[RE] フォロー記事投稿 記事のキャンセル
From: SAYKA. <sayka@halcyon.ne.jp>
Subject: Re: imgタグから呼んでるCGIの仕組みは?
Date: 2000/10/09 22:23:33
Reference: mesh.program/00708

10月8日に、にあさんは書きました。

>>>いや、単純にCGIでGIF画像を出力しているだけです。
>>という事はGIFを読み込んで
>>printf("Content-Type: image/gif\n\n");
>>ってやってstdoutにたれ流しっていう安直なやり方なんですか?(^^;
>だと簡単で良いのですが、複数桁繋げて一つの画像にするには、一度繋がった数字画像を
>作っておき、それをGIFのフォーマットにしたがって出力する必要があります。

やはり、世の中そんなに甘くないですか(笑
有りがとうございます。
GIFフォーマットの事を調べてやってみます…いや、npcのソースをもっとよく見てみれば判るかも(^^;
そういう意味では縦並びの漢数字カウンタも作ろうと思えばできそうですね


>>PNGとか言うが進出してきてますが、なんかまだぱっとしない感じします。個人的に(^^;
>PNGは主要ブラウザがサポートするようになったので、もう十分使える段階に
>入っていると思います。ただ、PNG単体ではアニメーションが出来ないんですよ。

あ、あれアニメーションができないんですか(^^;
じゃぁ今のところ強みはフルカラーでマスクができるってことくらいですかね

#私としてはそれでも充分ですが…重い(^^;

----------------------------------------
SAYKA.
sayka@halcyon.ne.jp


[NEW] フォロー記事投稿 記事のキャンセル
From: dio <dio_@mail.infoseek.co.jp>
Subject: データを受け取らないでCGIを起動したときの判別方法
Date: 2000/11/09 22:59:08

C言語で、CGIを作り始めたのですが、

if( getenv( "QUERY_STRING" ) != NULL ){
    //GETでデータを渡されたとき
    func1();
}else if( getenv( "CONTENT_LENGTH" ) != NULL ){
    //POSTでデータを渡されたとき
    func2();
}else{
    //データを渡さず、普通に起動したとき
    func3();
}

という感じで、場合分けして実行したかったのですが、
普通にCGIを実行すると、REQUEST_METHODはGETで、
QUERY_STRINGに、なんだかわからない、文字ではないデータが入ってます
これはどういうデータなんでしょう?
そして、CGIを普通に起動した時を見分ける方法ってあるのでしょうか?


[RE] フォロー記事投稿 記事のキャンセル
From: Yasu.F <yasuf@bsdclub.org>
Subject: Re: データを受け取らないでCGIを起動したときの判別方法
Date: 2000/11/10 12:44:45
Reference: mesh.program/00710

11月9日に、dioさんは書きました。

>if( getenv( "QUERY_STRING" ) != NULL ){
>    //GETでデータを渡されたとき
>    func1();
>}else if( getenv( "CONTENT_LENGTH" ) != NULL ){
>    //POSTでデータを渡されたとき
>    func2();
>}else{
>    //データを渡さず、普通に起動したとき
>    func3();
>}
>
>という感じで、場合分けして実行したかったのですが、
>普通にCGIを実行すると、REQUEST_METHODはGETで、

「普通に」とは?

>QUERY_STRINGに、なんだかわからない、文字ではないデータが入ってます

上のコードから見ると、「普通に起動したとき」には
getenv("QUERY_STRING") は NULL を返すはずですが、そこから
無理矢理読み込もうとしているのではないですよね?


[RE] フォロー記事投稿 記事のキャンセル
From: dio <dio_@mail.infoseek.co.jp>
Subject: Re: データを受け取らないでCGIを起動したときの判別方法
Date: 2000/11/10 15:55:41
Reference: mesh.program/00711

11月10日に、Yasu.Fさんは書きました。

>>普通にCGIを実行すると、REQUEST_METHODはGETで、
>「普通に」とは?
えーと、
http://〜〜〜〜〜/hogehoge.cgi
を、ブラウザで見たときというか・・・・
こういう場合、なんて言うのがいいんでしょうね?


>getenv("QUERY_STRING") は NULL を返すはずですが、そこから
>無理矢理読み込もうとしているのではないですよね?
getenv("QUERY_STRING") は NULL を返すハズなんですが、
NULLを返さず、func1に飛んでしまうという状況です。


以上100記事(キャンセル分を含む)


・ ホームペーヂに戻る
nir@mvg.biglobe.ne.jp
Last Update: 7 March 1998