ニックネーム
E-mail
言いたい
ゆーやん 2004年08月27日 16時00分
はじめて来た。こーいうとこ。

ゆーやん 2004年08月27日 15時59分
はじめて来た。こーいうとこ。

test 2004年01月19日 15時44分
test.

aaa 2004年01月19日 15時37分
abc.

aaa 2004年01月19日 15時36分
abc.

**** 2003年12月03日 20時27分
arasi

われわん 2000年11月09日 18時33分
また、書きこみ後BIGLOBEへ飛んでったよ。

warewan 2000年11月09日 18時32分
そういえば、
print "Location: $cgi_url?\n\n";
の、URLですが、CGIそのもののファイル名だと、うまく行かない時(サーバー)もあった。HTTPからのURLで、書いたほうが無難か、もう、どっちだったか忘れてる。
たまには、ことらも、書かないとね。
まだ、たくさんあるはずだけど、いつ思い出すか?

warewan 2000年09月16日 18時16分
\w
じゃなく、[9−F]とかありましたよね。
正規表現の、半角英数と、アンダーバー、ハイフンは、どう書くんでしたか?
参考ページか、なんかどこにかいてましたかね?

John 2000年04月10日 03時23分
 一応 print "正規表現\n";   の文字化けなら

    print "正規表\現\n"; でOK!

正規表現 → 90B3 8B4B 955C 8CBB
可能   → 89C2 945C

 可能も文字化けする 「表(955C)」 「能 (945C) 」

どうもこの(5C)がくせ者らしい。

これらの文字の後ろに「 \ (5C) 」 を付けるとOK!

詳しくは?? まあ,2バイト文字の区切りの認識に関係ある

とは確かでしょう。?!

なんで,この落書き帳のデータ表示では文字化けしないのか?

<TABEL>の中はOKか????? とりあえず,ここまで。


warewn 2000年04月09日 15時07分
しばらくぶりにしては、たいしたことないけど、忘れない為。

まだ、いくつかあるので、追加する予定。

warewan 1999年11月15日 16時42分
これ書くのに、1時間ぐらい試した。
BIGLOBE2Uは、もうだめかもしれない。

warewan 1999年11月15日 16時41分
warewan_img.cgiは、
失敗してました。
アニメーションGIFだと、あらあらです。
そのままにしときます。
試してください。

warewan 1999年11月15日 16時17分
warewan_img.cgiは、
失敗してました。
アニメーションGIFだと、あらあらです。
試してください。

warewan 1999年11月15日 16時16分
warewan_img.cgiは、
失敗してました。
アニメーションGIFだと、あらあらです。
試してください。

warewan 1999年11月15日 16時16分
warewan_img.cgiは、
失敗してました。
アニメーションGIFだと、あらあらです。
試してください。

warewan 1999年11月15日 14時47分
w/w8/の、BBSは、えらーがでるので、削除しました。
説明は、良くわかりました.
multipart/form-dataは、また、テストしてみます。
使い方が、解っていないし、説明もないから、テストで、しか確かめられないです。

warewan 1999年11月04日 13時56分
作り直しました。
説明も入れました。
課題
名前,コメントなどの、書きこみを、どうするか?
どう、分けるか?
教えてください。

warewan 1999年11月04日 08時14分
書きこみかたが、間違っていた。
ずいぶん作ってないので、忘れていました。
解説は、想像しかできないです。
くわしく、説明したものがなく、まだ、確信がもてません。

John 1999年11月03日 23時51分
久しぶりに大変おもしろかったです!?

ファイル転送・参照等のテクニックを

できたら,このBBSではなく,

詳しく「Perl Lesson」の方に

HTMLで解説してもらえると

助かります。

自分でまとめておくと,後でソースだけを見て

思い出すより,楽ですよ。(私の場合)


ソースも見えるように修正してください!

warewan 1999年11月03日 17時33分
ちょっと、ヒントがあったんで、一気につくったので、変です。
つかれましたんで、また、明日。
不明な部分の説明お願いします。

warewan 1999年11月03日 17時31分
ソースが出ないなんでだろう。
755にしたのに。
前のBBSもでない。

warewan 1999年10月26日 18時00分
広がっちゃった。
すみません。

warewan 1999年10月26日 17時58分

############変更##########################################
if (($FORM{'name'} =~/\s+/)||($FORM{'name'} eq "")) { &error("nameには、空白文字は、使わないで下さい。"); }
unless ($FORM{'comment'} =~/\S+/) { &error("comment"); }

$new_value = "$number$host$addr$date$size$FORM{'name'}$FORM{'mail'}$FORM{'dai'}$FORM{'pass'}$FORM{'img'}$FORM{'url'}$FORM{'comment'}$FORM{'res'}\n";
###############二重投稿は禁止########################
local($flag) = 0;
foreach $line (@lines) {
($memo_number$memo_host$memo_addr$memo_date$memo_size$memo_name$memo_mail$memo_dai$memo_pass$memo_img$memo_url$memo_comment$memo_res) = split(// $line);
if ($FORM{'name'} eq "$memo_name" && $FORM{'comment'} eq "$memo_comment") {
$flag=1; last;
}
}
if ($flag) { &error("二重投稿は禁止です。名前と、コメントが、過去に同じ記事があります。"); }
#######################################

warewan 1999年10月22日 10時40分
print "Content-type: text/html\n\n";

print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n";
#print "<HTML lang=\"ja\">\n";
print "<HTML>\n";
print "<HEAD>\n";
#print "<META HTTP-EQUIV=\"CONTENT-TYPE\" CONTENT=\"TEXT/HTML; CHARSET=ISO-2022-JP\">\n";

HTML採点ページの、得点を上げるタグを、CGIに追加したら、文字化けで、困った。
perlでの、文字ではなく、書きこんだ記事が文字化けで、ファイルに、書きこまれているんです。
#で、消した部分が、文字化けの原因みたいです。
HTTPDや、ブラウザを、立ち上げたり、消したり、繰り返して確認しました。
疲れます。
知らないで、丸コピーで、使った報いか?

John 1999年10月18日 00時50分
組立パソコンのことや,その他いろいろ報告したいけど,
まだ,旧PCと新PCの設定や使えなくなったHDに
あったソフト,さらに辞書,マクロプログラム等の整理・作成と
いろいろあり,もうちょっと時間かかりそうです。
それに加え,Hさんから,「動かなくなった,・・・」等の
TELにも対応。
 ちょと落ち着いたら,まずこのbiglobeのサーバーエラーを
なんとか,したいですね。

原因(可能性)
@biglobeのシステム不良
AWさんに割り当てられた容量(5M?)がいっぱい。
 (これは私に責任がある)
BWさんが最近アップロードしたCGI(その他)の問題
CわたしのCGIが原因(ただし,最近は変更,新アップロードなし)
 (ただし,初心者Hさんが書き込んだけど・・・。)
Dbiglobeの他のユーザーのせい。

最近おかしくなったのだから,
最近何かその原因が起こった,誰かが起こしたのでしょう。
(ただし,以前もこういうことがあった・・)

私はCOARAのサーバーの方も変更が途中で,これもまだ
終わってない。

とにかく,Wさんの方から,簡単に移せるものから,
CGIが使用可能なCOARAに移したいと考えてます。

申し訳ないけど,もう少し待ってください!
(雷事故とか,いろいろなことが,一緒におこったものだから) 

warewan 1999年10月17日 22時26分
#初期設定
if($FORM{'page_end'} eq ''){$FORM{'page_end'} = '0';}
if($FORM{'action'} eq ''){$FORM{'action'} = 'delete_off';}
if($FORM{'page'} eq ''){$FORM{'page'} = 'no';}
if($FORM{'txt'} eq ''){$FORM{'txt'} = 'no';}
など、書き足してフログラムちょっと変えてエラーはなくなった。
それにしてもこの時間は、サーバーエラーが多い。
2〜3回リロードしてやっとでる。
プログラムが悪いのか?


warewan 1999年10月17日 14時18分
全体のCGIが多すぎるからでしょうか?
ここも、(RAKUGAKI)サーバーエラーが多いです。
リロードするとなおるんですが。

warewan 1999年10月17日 14時17分
UP BEAT BBSは、確認キー忘れたりで面倒ですね。
サーバーエラーが多いです。
そろそろ変えたらどうでしょうか?

warewan 1999年10月17日 14時17分
UP BEAT BBSは、確認キー忘れたりで面倒ですね。
サーバーエラーが多いです。
そろそろ変えたらどうでしょうか?

warewan 1999年10月17日 14時14分
お知らせ: 「warewan」さんは退室しました(10月17日 14時10分11秒)
--------------------------------------------------------------------------------
warewan: BYBY(10月17日 14時10分8秒 210.147.42.74)
--------------------------------------------------------------------------------
warewan: 2行のコメントを貼りつけられないし(10月17日 14時9分57秒 210.147.42.74)
--------------------------------------------------------------------------------
warewan: CHATは、すぐきえるのでだめですね。(10月17日 14時9分18秒 210.147.42.74)
--------------------------------------------------------------------------------
warewan: JHONさん、hatuさんの(10月17日 14時8分42秒 210.147.42.74)
--------------------------------------------------------------------------------
warewan: そうそう、パソコンの値段など。(10月17日 14時8分9秒 210.147.42.74)
--------------------------------------------------------------------------------
warewan: あと、なにか?わすれた(10月17日 14時7分47秒 210.147.42.74)
--------------------------------------------------------------------------------
warewan: それと、答えは、聞いてないんですが(10月17日 14時6分46秒 210.147.42.74)
--------------------------------------------------------------------------------
warewan: です。(10月17日 14時5分57秒 210.147.42.74)
--------------------------------------------------------------------------------
warewan: Use of uninitialized value at(10月17日 14時5分42秒 210.147.42.74)
--------------------------------------------------------------------------------
お知らせ: 「warewan」さんが入室しました(10月17日 14時5分13秒)
--------------------------------------------------------------------------------
お知らせ: 「warewan」さんは退室しました(10月17日 12時8分12秒)
--------------------------------------------------------------------------------
warewan: あとでもう1度来る(10月17日 12時8分10秒 210.147.42.13)
--------------------------------------------------------------------------------
warewan: -wで、CGIテストしたら、初期化されてないと、何ヶ所かでた。(10月17日 12時7分30秒 210.147.42.13)
--------------------------------------------------------------------------------
warewan: と、いって解説も見てないし、書き換えもしてない(10月17日 12時6分23秒 210.147.42.13)
--------------------------------------------------------------------------------
warewan: COREファイルのページのHTMLリンク集からいきました。(10月17日 12時5分40秒 210.147.42.13)
--------------------------------------------------------------------------------
warewan: がんばりましょう、でした。(10月17日 12時4分56秒 210.147.42.13)
--------------------------------------------------------------------------------
warewan: だって、私のINDEX、HTMが。(10月17日 12時4分35秒 210.147.42.13)
--------------------------------------------------------------------------------
warewan: 120個のエラーがありました。このHTMLは -143点です。タグが 18種類 68組使われています(10月17日 12時3分55秒 210.147.42.13)
--------------------------------------------------------------------------------
warewan: HTML2.0 としてチェックしました。(10月17日 12時3分37秒 210.147.42.13)
--------------------------------------------------------------------------------
お知らせ: 「warewan」さんが入室しました(10月17日 12時3分23秒)
--------------------------------------------------------------------------------
お知らせ: 「warewan」さんは退室しました(10月17日 8時0分36秒)
--------------------------------------------------------------------------------
warewan: こんなリンク集がほしいですね(10月17日 8時0分33秒 210.147.42.164)
--------------------------------------------------------------------------------
warewan: いろいろと、よく見つけますね(10月17日 7時59分17秒 210.147.42.164)
--------------------------------------------------------------------------------
warewan: ありがとうございます(10月17日 7時58分55秒 210.147.42.164)
--------------------------------------------------------------------------------
お知らせ: 「warewan」さんが入室しました(10月17日 7時58分35秒)
--------------------------------------------------------------------------------
お知らせ: 「John」さんは退室しました(10月17日 2時12分32秒)
--------------------------------------------------------------------------------
お知らせ: 「John」さんは退室しました(10月17日 2時11分55秒)
--------------------------------------------------------------------------------
John: オートコンプリート(10月17日 2時11分28秒 210.252.136.12)
--------------------------------------------------------------------------------
John: warewanさん,クリヤは可能みたい,編集はツールを探さないと無理では?(10月17日 2時9分58秒 210.252.136.12)
--------------------------------------------------------------------------------
John: 下の人はなんだか気持ち悪い!2分間無言電話???(10月17日 2時7分15秒 210.252.136.12)
--------------------------------------------------------------------------------
お知らせ: 「John」さんが入室しました(10月17日 2時4分17秒)
--------------------------------------------------------------------------------
お知らせ: 「hatu」さんは退室しました(10月16日 11時27分3秒)
--------------------------------------------------------------------------------
お知らせ: 「hatu」さんが入室しました(10月16日 11時25分9秒)
--------------------------------------------------------------------------------
お知らせ: 「warewan」さんは退室しました(10月16日 8時57分37秒)
--------------------------------------------------------------------------------
warewan: つまりジャマな文字列で、加えたいのもある。(10月16日 8時57分30秒 210.147.42.30)
--------------------------------------------------------------------------------
warewan: BBSでも、過去コメント、名前などでるが、変更したいんです。(10月16日 8時56分49秒 210.147.42.30)
--------------------------------------------------------------------------------
お知らせ: 「warewan」さんが入室しました(10月16日 8時55分40秒)
--------------------------------------------------------------------------------
お知らせ: 「John」さんは退室しました(10月16日 3時11分36秒)
--------------------------------------------------------------------------------
John: マイクロソフトIE5.0の機能みたい,ネットスケープではダメ。(10月16日 3時11分31秒 210.252.136.22)
--------------------------------------------------------------------------------
お知らせ: 「John」さんが入室しました(10月16日 3時9分19秒)
--------------------------------------------------------------------------------
お知らせ: 「John」さんは退室しました(10月16日 3時6分35秒)
--------------------------------------------------------------------------------
John: これは,どのソフトによるものなのか? 試して報告を?ちょっと便利!(10月16日 3時5分59秒 210.252.136.22)
--------------------------------------------------------------------------------
John: ハンドル・ネーム・発言等を書くとき,カーソルがBOX内にあれば,右クリック後,左クリックをすると・・・・?(10月16日 3時4分38秒 210.252.136.22)
--------------------------------------------------------------------------------
John: 今,初めて気がついた。知ってた?(10月16日 3時2分18秒 210.252.136.22)
--------------------------------------------------------------------------------
お知らせ: 「John」さんが入室しました(10月16日 3時1分21秒)
--------------------------------------------------------------------------------
お知らせ: 「John」さんは退室しました(10月16日 2時59分8秒)
--------------------------------------------------------------------------------
John: 未復旧のまま,中間TESTモードに入り,ちょっとBUSY!(10月16日 2時58分22秒 210.252.136.22)



--------------------------------------------------------------------------------

warewan 1999年10月17日 14時03分
左クリック2回でも、名前はでます。
パーミッション755にかえますか?

warewan 1999年10月17日 14時01分
Use of uninitialized value at
がHTTPDではでるが、-wをかいたままなのに、BIGLOBEサーバーでは、出ないね。

warewan 1999年09月25日 07時00分
このままで使用すると、
*タイトルは、スペースを入れないで下さい。「。」もダメか?(注意書き)
*ファイル名のダブりチェック(同じタイトルがあります。タイトルを変更してください。エラー!)
*ディレクトリーまで、作る
変えると、
*時間からなら、簡単
*乱数は、わからなかった。
*ファイル名は、番号nunber++とかでも十分

こんなもんでいいのか?
やってみなければわかりません。
話題が、広がれば検索も必要でしょう。

John 1999年09月25日 00時31分
「ファイルを作るBBS」の「新規ファイルを作る」

はBBSのページ作成にも使えそう。

1月ファイル,2月ファイル,これでファイルを小さくできる。

この場合は,ファイル名は簡単にできそうだけど,

>タイトルを、ファイル名にした。問題あるが、とりあえず。

と言っているようにこのBBSの記事タイトルは難しい。

いうも言うことだけど,こういう小さいことが大変。

普通,どうするのか,連番か日付関連か・・・・?

(その他はchatで)

われわん 1999年09月24日 15時49分
画像UPBBSを考えてるうちに、思いつきました。
UPBBSは、今のところ?です。
一発で成功すると、張り合いがないですね。
そちらは、進んでますか?
ハッちゃんは、MAIL待ちですが、どうしてます。

WAREWAN 1999年09月20日 11時15分
UP_BAET BBS、しばらくぶりに見ました.
面白いですね。
自分で書いたのになんの事か、解らない事もありまして。
遠い昔も物語みたいです。

warewan 1999年09月20日 11時13分
深夜の仕事は、人にまかせて、釣りモードへはいります。
PERLも御休みです。
分業できない頭なんです。

warewan 1999年09月20日 10時21分
UP BAET で、公開されてたは、知らなかった。
バカなこと書けないね.
Perl Lesson [UP-BEAT]には、未完成なものがほとんどだけど、書きなおしましょうか?
それじゃおもしろくない?んでしょう。

John 1999年09月20日 00時07分
 「いいところ」までいっているように思えますが・・。

勉強してない私にはよく判りませんが。

がんばってみてください!目標がはっきりしていれば

意欲もわくでしょうから。

「Perl実践入門(三島俊司)」は青本と同時に進めた本です。

私はこれで勉強しました。 では!

(その他は久しぶりの「チャット」を見て)


warewamn 1999年09月19日 17時04分
経過

ポケット本のupload.cgiを、動かしてみた。
OH!〜何やりたいのか解りません。ファイルもディレクトリーもない。と、エラーメッセージが
でるが、HTMLファイルは、フォルダーにUPされている。
画像ファイルは、だめみたい。
バイナリー、どうのこうのの問題でしょうか?
CGI_Lite.pm Util.pl cgi-lib217.plなど、ライブラリーや、モジュールを使うには、勉強が必要です。
スカラー、リファレンスなどが、登場すると、今までの配列、サブルーチンなど、使い方が広がって
もう1度大変勉強しないと、だめです。
また、画像UPBBSは、CGI_Lite.pmを使っていない。
どうやってるのか、まだ、わかりません。
upload.cgiとは、まったく別ものみたいです。
画像ファイルの、削除とか、名前の確認などは、読み取れるが、UPしてる部分が?
ちょっと、サボっていたのと、新しいものが、でてきて混乱しています。
'application/x-www-form-urlencoded' "multipart/form-data"って書けばいいのか、
この意味は?
openは、すでにUPしているファイルを開くんでしょう?
なかったら、パソコンのファイルをファイルと判断するのかな?

Perl実践入門買いました.三島俊司さん
これで、4冊目ですが、これが1番良さそうかな?
拡張しが、PLになってるけど、
動きません。
持っていましたか?
休憩。

warewan 1999年09月06日 19時20分
オートリンクについてです。
CGI?***と?の後が、リンクされません。sub auto_link {
$_[0] =~ s/([^=^\"]|^)(http\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#]+)/$1<a href=$2 target=_top>$2<\/a>/g;
}

$memo_comment =~ s/([^=^\"]|^)(http\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#]+)/$1<a href=$2 target=_blank>ここを押してリンクです。<\/a>/g;

これだとうまくいってるみたいです。考えるとややっこしい。

われわん 1999年09月06日 07時41分
また、難しいことやってますね。
勉強してみます。
アクセス統計は、今日もCOREが、できていて、600Kぐらいでした。
ログがとんでしまうとできるみたいです。
1000件にかえてTESTです。意味なさそうですが。
ファイルロックが古いのかな。
ボーとしてましたので、ナンにも勉強してません。
もう、飽きてきたのかな?
BBSで、RES機能をつけましたので、今までのは消してUPしときます。
BBSいろいろ、機能を考えましたが、正規表現が、ちょっとで、
配列操作がほとんどですね。
あと、ifばっかりで、ifbbsといってもいいくらいです。
落書きさんの本では、なんにも勉強してません。
プログラムは考えるのは好きですが読むのはまったく向きません。
だから、いろいろな、CGIがおまけでついてても、動かしておわりです。
むずかしい注文ですが、
勉強したくなる本あったら、教えて下さい。

John 1999年09月06日 02時35分
一ヶ月ぶりの「Perl Lesson」

「CGI」・「htm」ファイルとソースが分かれている

プログラムで使われている手法「HTMLテンプレート」です。

 次は「ライブラリ」を予定。(ただし,これは少し大物で大変)

「アクセス統計」トラブルは解決しましたか?

われ 1999年08月31日 07時16分
Out of memory!
というエラーが記入されてましたが、アクセス統計の件数を多くしすぎたのかな?
エラーtxtを0にしてもう1日様子をみます。

warewan 1999年08月31日 07時13分
アクセス統計の、TXTは、毎日飛んでいるようです。coreという拡張しなしのファイルが、今回で2回目だすが、勝手にディレクトリーにできてる。
690kも使ってたんですが、ナンだか知ってますか?

 k・ <HP-UX bgsv110 B.10.20 E 9000/898 662878361  kフ D  ( ォ・  @ ー @  ・
 L・  access2.cgi ン  l    .U8 ・ / A タ
Aサ@キ< {((@キ<


 @ マ< 。1999年08月30日(月)*.web-sanin.co.jpMozilla/4.0 (compatible; MSIE 5.0; Windows 98)http://www2u.biglobe.ne.jp/~k-saka/power/img_get/minibbs.cgi22
@ マ< )@^h
@  @ マ< ゥ1999年08月30日(月)*.katch.ne.jpMozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)http://www2u.biglobe.ne.jp/~k-saka/power/img_get/warewan_bbs01.cgi22
@ マ< )@ツX @G 

こんなかんじが、続いてます。

John 1999年08月30日 02時07分
>どうでしょう?

正解です。

#pagecnt.cgiを設置したディレクトリ

このコメントは間違いですね。

設置の際のコメントにはいろいろ苦労します。

だから,ある程度ソースを見て判断することも

大事なようです・・・!

warewan 1999年08月29日 07時25分
と、言ったけど、正規表現なら、できそうと、おもいまして、成功しました。
CGIの説明が、間違ってます。
meshnetも、問題でした。
簡単で、自分のホームページ全体の何所に設置しても良い方法は、
$homeaddrを、一番上のINDEXのディレクトリーにして、上にはファイルを置けないディレクトリーです。
$changeaddrは、pagecnt.cgiからみた、最上階のディレクトリーまでの何回上か、だけです。

#最終更新日の表示 'yes' / 'no'
#複数のサーバを利用している場合や、CGIとホームページのサーバが異なる場合は'no'
$update = 'yes';
#絶対パスを相対パスに変換 ↑を'yes'にした場合に設定する
#pagecnt.cgiを設置したディレクトリ
$homeaddr = 'http://www2u.meshnet.or.jp/~k-saka/';
#$homeaddr = 'http://vaio/HP2/';
#pagecnt.cgiから見た各ページの相対パス
$changeaddr = '../../';

どうでしょう?

1999年08月29日 05時02分
うまくいかない。
ディレクトリーはみてみて。
NOにして使います。

わっれ 1999年08月29日 05時00分
public_html--|--html----**.htm
|--power---cgi-bin----pagecnt.cgi
|
|____***_______******.cgi

WAREWAN 1999年08月29日 04時59分
あどれすを下は下記間違えた public_html--|--html----**.htm
|--power---cgi-bin----pagecnt.cgi
|
|____***_______******.cgi


$MAINGIF[0] = '../../img/count1/0.gif';
$return_gif = '../../img/bana2.gif';
で、カウンターもbana2.gif';も表示されてる

WaRE 1999年08月29日 04時47分
1999/08/26http://www2u.meshnet.or.jp/~k-saka/html/referenc.htmReference1
1999/08/28http://www2u.meshnet.or.jp/~k-saka/html/thanks05.htmTHANKS054
1999/08/28http://www2u.meshnet.or.jp/~k-saka/html/thanks04.htmTHANKS043
1999/08/28http://www2u.meshnet.or.jp/~k-saka/html/thanks03.htmTHANKS034
1999/08/28http://www2u.meshnet.or.jp/~k-saka/html/bbx3.htmBBX折れた!4
1999/08/26http://www2u.meshnet.or.jp/~k-saka/html/ogasawara.htm小笠原3
1999/08/26http://www2u.meshnet.or.jp/~k-saka/html/tosen1.htm宿、渡船3
1999/08/28http://www2u.meshnet.or.jp/~k-saka/html/sikine01.htm式根島大鯛5
など、が、各ファイルのアドレス(pagecnt.dat)です。
meshnetが問題なんでしょうか?
html----**.htm
power---cgi-bin--**.cgi
| |_____pagecnt.cgi
|____***_______******.cgi

#最終更新日の表示 'yes' / 'no'
#複数のサーバを利用している場合や、CGIとホームページのサーバが異なる場合は'no'
$update = 'yes';
#絶対パスを相対パスに変換 ↑を'yes'にした場合に設定する
#pagecnt.cgiを設置したディレクトリ
$homeaddr = 'http://www2u.biglobe.ne.jp/~k-saka/power/cgi-bin/';
#$homeaddr = 'http://vaio/HP2/power/cgi-bin/';
#pagecnt.cgiから見た各ページの相対パス
$changeaddr = '../../html/';

John 1999年08月29日 01時54分
久しぶりのPerlのソースを見ました。

かなり,忘れています!

さて,「ページカウンタの最終更新日」の件ですが

              $stataddr = $addr;

if ($update eq 'yes') {
$stataddr =~ s/$homeaddr/$changeaddr/g;
@FILESTAT = stat($stataddr);
($sec$min$hour$mday$mon$year$wday$yday$isdst) = localtime($FILESTAT[9]);
$up_date = sprintf("%02d/%02d/%02d"$year + 1900$mon + 1$mday);
}

文字どうり statという関数で「ファイルの最終更新日」を取得しています。

@データファイル(pagecnt.dat)から $addrにファイルのURLが入る

例:$addr = http://127.0.0.1/homepage/pagecnt2/UPBEAT.htm

A 置換の S でURLをフィルアドレスに変換

$homeaddr = 'http://127.0.0.1/homepage/';

$changeaddr = '../../homepage/';



$stataddr = ../../homepage/pagecnt2/UPBEAT.htm

となり,pagecnt.cgi のあるアドレスから2個上にある

homepage/pagecnt2/UPBEAT.htmといいうファイルの位置が設定される。

B@FILESTAT = stat($stataddr) で @FILESTAT にファイル情報が配列としてはいる。

$FILESTAT[9]に最終更新日が入っている。後はこれを表示用に変換。


と長々と書きましたが,

warewanさんはこの

#pagecnt.cgiを設置したディレクトリ
$homeaddr = 'http://127.0.0.1/homepage/';
#pagecnt.cgiから見た各ページの相対パス
$changeaddr = '../../homepage/';

の設定がおかしいのでしょう。

Sの置換で置き換えて,各ファイルのアドレス(pagecnt.dat)が

pagecnt.cgiからの実際のアドレスになるか

チェックしてみてください! 

たぶんそれでOK!?

John 1999年08月28日 00時06分
 精力的な活動にパワー不足な私としては

圧倒されます!

「アクセス統計」についてはわかりませんが,

「ページカウンタ」で

>最終更新日の表示 'yes' / 'no'
どう違っているんでしょう。

といっているように「最終更新日」は何でしょう。

私はどうも表示を削除しているみたいです。
(以前のことだから,忘れた)

warewanさんの
http://www2u.biglobe.ne.jp/~k-saka/power/cgi-bin
/pagecnt.cgi?action=vew

の「更新日」はすべて1970/01/01になっていて,

これはなんだろう!ソースをみる元気がまだないから・・・。


それから,私の「ページカウンタ」には最新1日以内の

最終アクセス日は「赤」で表示されるようにしてます。

これは,以外と便利です。

ただし,ずっと前,Perl勉強以前ですから

プログラム自体はヘタヘタだと思いますが。

完全復活までもう少し時間が・・・。

ワレワン 1999年08月27日 05時01分
アクセス統計の問題解決しました。
JavaScriptを、リターンなしで、print に押しこんでいた為。
ヒアドキュメントで、OKでした。
自分で、作りませんでした。やっぱりVEW画面が、面倒でしたので。
http://www2u.biglobe.ne.jp/~k-saka/power/cgi-bin/access2.cgi?vew

われわん 1999年08月27日 01時41分
http://www2u.biglobe.ne.jp/~k-saka/Reference/の、ディレクトリ-は、
使用しませんので、自由にどうぞ。

われわん 1999年08月27日 01時35分
最終更新日の表示 'yes' / 'no'
どう違っているんでしょう。
私はYESにしました。
http://www2u.biglobe.ne.jp/~k-saka/power/cgi-bin/pagecnt.cgi?action=vew

warewan 1999年08月27日 01時32分
pagecnt.cgiのためと、ホームページの整理のため、いろいろ整理しました。
カウントされ、統計もとれてますが、リンクがBIGLOBEがメッシュに書きかえられています。まあ、リンクできなくても良いですが。
どうせ、見ないんですから。

warewan 1999年08月25日 07時09分
#最終更新日の表示 'yes' / 'no'
#複数のサーバを利用している場合や、CGIとホームページのサーバが異なる場合は'no'
$update = 'no';
#絶対パスを相対パスに変換 ↑を'yes'にした場合に設定する
よくわからんから、NOにした。
#pagecnt.cgiを設置したディレクトリ
$homeaddr = 'http://www2u.biglobe.ne.jp/~k-saka/cgi-bin/';
#pagecnt.cgiから見た各ページの相対パス
カウントされるページは、同じディレクトリーに入れないとダメなのか。
$changeaddr = './';
まあ、これで、画像はでました。
HTTPでは、出ない、考えソンしました。

warewan 1999年08月25日 06時29分
# IPアドレスからホスト名に変換する関数

sub domain_name {
local($addr) = $ENV{'REMOTE_ADDR'};
local($_) = gethostbyaddr(pack("C4"split(/\./$addr))2);
if ($_ eq '') { $_ = $addr; }
else {
if (/.+\.(.+)\.(.+)\.(.+)$/) { $_ = "\*\.$1\.$2\.$3"; }
elsif (/.+\.(.+)\.(.+)$/) { $_ = "\*\.$1\.$2"; }
elsif (/.+\.(.+)$/) { $_ = "\*\.$1"; }
else { $_ = "on the internet"; }
}
$_;
}
これは、でました。
「ページカウンタ(統計付き)」は、HTTPでは、表示されないのかな?
CGIにいれてもだめなのかな?
カウントされるが、画像はでない。
統計は、やめます。自分で作ってみます。
人の読むなら、作るほうが意欲がでるので。
見てると眠くなる。

warewan 1999年08月22日 07時56分
「ページカウンタ(統計付き)」
の、設定を教えてください。
統計
http://www2u.biglobe.ne.jp/~k-saka/cgi-bin/access2.cgi?vew
これもうまく動いてない。
アクセス800ぐらいの、MAILがきてるが、統計は6個だった。
タグ
# 無効にしたタグを許可したものだけ復活させる
# 許可しているのは<IMG>イメージ、<B>ボールド、<I>イタリック、<FONT>フォント
#---------------------------------------------------------------------------------------
sub tag_change {
local($_) = $_[0];
$_ =~ s/&eq;/=/g;
1 while s/(.*)(<(img([!-:A-~\s\=]+))>)/$1<img$4>/i;
1 while s/(.*)(<(b)>(.*)<\/b>)/$1<b>$4<\/b>/i;
1 while s/(.*)(<(i)>(.*)<\/i>)/$1<i>$4<\/i>/i;
1 while s/(.*)(<(font[\s\w\=\#\"\']+)\>(.*)\<\/font\>)/$1<$3>$4<\/font>/i;
$_ =~ s/=/&eq;/g;
$_;
}
これも成功しない。
# IPアドレスからホスト名に変換する関数
#---------------------------------------------------------------------------------------
sub domain_name {
local($addr) = $ENV{'REMOTE_ADDR'};
local($_) = gethostbyaddr(pack("C4"split(/\./$addr))2);
if ($_ eq '') { $_ = $addr; }
$_;
}
これも失敗みたい。

John 1999年08月22日 01時31分
>らくがきさんの、アクセス統計画像がでません?
統計は取れてるみたい。

「アクセス統計」は動かしたことがないので?。

現在,頭の体調(?),生活リズム等メインテナンス中で・・・。

似たような「ページカウンタ(統計付き)」

はだいぶ前に動かしています。参考に!?

ただし,アドレス等(リンク)がおかしい。

この当時,Perlがほとんどわかってなく,

UPしたままで。

http://cgi.coara.or.jp/cgi-bin/cgiwrap/upbeat/pagecnt/pagecnt.cgi?action=vew

元気が出たら,こちらでも動かしてみます・・?

warewan 1999年08月21日 08時46分
らくがきさんの、アクセス統計画像がでません?統計は取れてるみたい。
HTTPDでもだめ。
JAVAスクリプトは、コピーしたんだけど。
UPしてないけど、pagecnt.cgiも、画像が、でません。
便リとおもったけど、

warewan 1999年08月20日 06時40分
「落書きさんの本」は、今日手にいれました。
ホームページと同じ内容です。
CGIのプログラムを買ったってかんじです。

John 1999年08月20日 01時09分
どうも,どうも〜。

コメントを書こうとしましたが,夏バテから夏ボケで

頭がまわりません・・・。次回にまた。


追伸:

例の「落書きさんの本」は各書店で目にしました。

一応買っときましたが,内容はまだ見てない。

warewan 1999年08月19日 18時20分
修正画面で、PASSを、****で、表示してもソースで、見られるので、
修正する時は、再度PASSを変えるか、おなじものを書いてもらうかです。

暑中御見舞い申し上げます。

warewan 1999年08月17日 07時07分
WAREWAN_BBSの、削除プログラムは失敗してました。
また、やりなおしです。
らくがきさんの本はまだきません。

warewan 1999年08月12日 06時25分
ADDRでは、個人識別不可能でした。
私のADDRも、毎日変わっています。
常連さん個人、個人の、カウントはとれませんでした。

あと、送られてきたものは?
サブルーチンが多かった前のプログラムも、解読しにくかったけど、
それ以上で、まだ手付かずです。

John 1999年08月08日 03時21分
>送られてきたMAILを、エディターで〜に置換してます。

「wwwcount.acc」をまず読み込んで,CGI上で
正規表現より置換したら,わざわざ前処置しなく
てもいいのでは?

>128.223.198.100 ADDRとなんですか?個人情報ですか?
IPアドレスというものでしょう。
これで個人識別が可能か?う〜ん。これがよくわからない。
今の認識では個人がサーバーに接続すると,このアドレスを
サーバーがくれ,これで通信が可能。このアドレスが毎回変わるか
変わらないかが?メールのヘッダーにもこのアドレスが書かれていて
それを見るとほとんど変わらないようだけど,ときどき違うような?
判ったら教えて?またこのアドレスでプロバイダーは判るみたい。

>CGIで、良い案は?
カウンター+アクセスログというCGIスクリプトはありますよ!

また,このアクセスログは例の「環境変数」を使ってます。
青本に簡単なスクリプトがあったのでアップロードしときました。
参考に
 http://www2u.biglobe.ne.jp/~k-saka/Reference/up_beat_2/perl/j/getenv.cgi

warewan 1999年08月07日 00時56分
この時間は重い。
エラーテキストが84Kぐらいになっていましたので、0にしました。

warewan 1999年08月07日 00時46分
wwwcount.accは、MAILで、送られてきます。
カウントCGIから、wwwcount.accに書きこまれるのは、MAIL目的で、そのままだと表示が、できないので、送られてきたMAILを、エディターで、¥nを、コンマ(正式にはなんていうのか忘れた)に、COUNTを、コンマCOUNTを、¥nCOUNTに置換してます。
カウントCGIは、MAILを送ると、wwwcount.accをフォーマットしますが、カウントCGIの書きこみ方を、変更して別のLOGファイルに書きこんで統計でも取ってみようかと思います。
ナンの統計かは、やっぱり同じ人が何回きてるか?ぐらいですかね。
128.223.198.100こんなのを、送ってマッチしたものがあれば、カウントを増やし、マッチしなければ書き足すCGIで、良い案はないですか。
落書きさんの本こないんで、暇です。
ADDRとなんですか?個人情報ですか?
PERLをちょっと書いていなかったら、書き方をすぐ忘れてしまいます。
良く覚えてないものありますが、見てるだけではだめですね。
今回のプログラムも怪しい?
エラーがでる。今からなおします。

John 1999年08月01日 02時12分
> 旗は、目印でしょうか

そうです!
なんかあったら ”1”,なかったら”0”みたいな。
その後,そのフラグを見て判断する。
マシン語(機械語)の初期の段階からの考え方です。


> =と、==は、何でしたか?
=   代入   $mail = "ju8y-hstn@asahi-net.or.jp"
==  比較 if( $mail == "***** " ){
ときどき if でも = と書いてしまうけど,動いたかな?


> 増え続けるページは問題ないんですかね。
それは「ページ制限ルーチン」でやるべきでしょう。
(記事ファイルが大きくなりすぎるのを防ぐもの)
まあ,「表示ルーチン」で表示に制限をかけてもいいけど
それではファイルにあるけど見せないことになってしまう。

現在,ライブラリ,テンプレートを勉強中。
う〜ん。いつもながら苦戦。では。

warewn 1999年07月31日 08時41分
chop($line);
を、付けていませんでしたので付けました。warewan_BBS

表示方法の、1と、検索の1は理解できましたが、後はまだです。
確かに人のプログラムは見にくいですね。
いろいろ苦労があっても解らないものですから。

旗は、目印でしょうか、
=と、==は、何でしたか?
ページ表示ルーチンだけでも、たくさんできて大変ですが、増え続けるページは問題ないんですかね。

warewan 1999年07月28日 06時36分
見てないから、よく解りませんが、綺麗です。
落書きさんは、予約してますが、電話がまだきません。
このごろのCGIは、再利用(他人)できるプログラムにしてますね。

John 1999年07月28日 02時52分
>perl.cgiは、わたしが、困ったのと同じで、変更機能で、
次のページと、 さかのぼると、最初の記事の前に1つ
何もない記事欄ができている。

これは落書きさんのCGIスクリプトです。
最終ページは特別処理がいりますよね。
例えば93個の記事があり5個ずつ表示すると
最後のページが3個と空白記事2個となるわけです。

>$sel = substr($QUERY_DATA,7,5);

$QUERY_DATAの先頭から7+1番目から5文字とりだす。
(青本より)

> <INPUT size="29" type="password" name="P_WORD">

そのとおりです。

>サブルーチン、warewanとすると、何も出ません。

調べたらサブルーチンの「ー」(のばす文字)
がダメ! 理由は不明。暇なとき考えてみてください!

それでは,次はテーマを探しま〜す!

warewan 1999年07月27日 07時25分
perl.cgiは、わたしが、困ったのと同じで、変更機能で、次のページと、
さかのぼると、最初の記事の前に1つ何もない記事欄ができている。

warewan 1999年07月27日 06時26分
perl.txtを、HTTPDで、使えるように、置換したら、変な表示になってしまう。
結局、cgiを、HTTPDで、動かして、1づつ、書き換えました。
見直しています。
今まで、よく見てなかったので、改めて気づいたこと。
$sel = substr($QUERY_DATA75);
これは、なんでしょう?
<INPUT size="29" type="password" name="P_WORD">
これで、文字が、***になるんでしょう。
まだ、最初の方だけですが、自分の過程を、確かめます。

warewan 1999年07月21日 04時44分
掲示板(ワード検索B)で、
サブルーチン、warewanとすると、何も出ません。

ロックはつきましたが、次のページがおかしかったので、作りなおしました。
仕事場で、クッキーも入れて見ます。
検索は、タグ見つけに良いかも。

warewan 1999年07月20日 06時38分

#正規表現は、perlでは、遅いそうです。indexが、正解と思います。
#絞り込み検索もできますね。フォームデーターを2つにするか、
#2つの単語を、スペースなどで、間を空けて記入してもらうか。
#ちょっとやって見てけど、失敗したので止めた。それほど必要としないでしょう。
#$_ = $FORM{'keyword'};
#($a$b) = /(\w+)\W+(\w+)/;

$new = "<font color=#ff0000><U><B>$FORM{'keyword'}<\/U><\/B><\/font>";

foreach $line (@lines) {

if ($line =~ s/$FORM{'keyword'}/$new/g){

$count++;
unshift(@DATA$line); }#unshiftでは

}

warewan 1999年07月19日 19時27分
print "<BR><BR>\n";
print "$FORM{'comment'}\n";#確かめ表示
print "<BR>\n";#1つでも良いけど念の為、
print "<BR>\n";
*print "<form action=warewan_bbs.cgi method=POST>\n";

前に作ったプログラムで、似たような事がありました。
</fontで、どうしてか?はわかりませんが、
消されてしまう行があるようです。
*が認識できてないと思われます。

warewamn 1999年07月19日 08時06分
検索は、後で,見させてもらいます。
INDEXは、リャマに乗ってるんで解るとおもいます。

確かにイカサマっぽく感じました。
でも、難しいテクニックで、同じ事を、私が考えついても、簡単な方法の方が
カッコイイんでは。
PERLは、そういうセンスが、必要では、と、生意気に思います。

>ミスを発見したら,書き込みさせないようにしたほうがいいのでは?
>そうします。

></font>→</font
と>を忘れると,変なモードになりました。
どうしてか? わからない・・。
>これは,笑いました。何だか、張り合いのないプログラムでしたんで、
問題が無いのが不思議でした。私の作るのはこんなもんでしょう。
正規表現の正規の使い方になってないんでしょう。
でも、確かに問題です。また考えます。

>,「タグ忘れ自動修正まで」必要では?
>今思うと絶対無理では、タグは、多すぎますよ。

BIGLOBE
/usr/mesh/bin/perl (v4)
/usr/mesh/bin/perl5 (v5)
/usr/lib/sendmail
symlink利用可能(ファイルロック機構関係)。
標準DES暗号利用可能(crypt関係)。
だそうです。
symlinkを使ってやると便利なのか。
dream.cgiというカウンターを使ってsymlinkでロックしてもカウンターは
飛んで、0にもどります。

落書きさんの本が、今月末にでるそうで、それでも買います。
ちょっと、恩返しです。
クッキーや、ファイルロック、アクセス解析などの関係の本で、よく解るのを
見つけないと理解したものしか、使いたくないですね。

思い出したこと
1、表示が文字化けするCGIプログラムないで使った時。
   ポケット本には、シングルクオートでくくって、¥nを、ダブルでと、
  書いていた。試してない。
2、私の作った外部からの書きこみCGIは削除したほうが良いのでは。
  と、いうより、全部整理してもJOHNさんのでたりるので。
  なんか、いたずらが怖いです。
3、ログファイルの作成、パーミッション設定、アクセス解析、を含んだCGIも
  できそうですが そんなBBSでも作ってほしいですね。
  はじめは簡単なやつで。
4、リャマの後ろのほうは、全然つかえるのかわからないけど、前の方を、
  次の本買うまで、テスト、勉強、繰り返してます。

John 1999年07月19日 02時52分
>テスト表示方式

他の掲示板を調べたら,同じ方式でした。
今回はめずらしく,調べる前に自分で考えたのですが,
まあ,それが正解のひとつだったみたいでちょっと
happy!自画自賛!
考えてみたら,テスト表示と書き込み内容は
同時に見れた方がいいですよね。そのときはちょっとインチキ
と思ったのですが,いい気なもんです・・・。


>タグ閉じ忘れチェック

配列にaとfontを入れてforeachでチェックなんて,
かっこいいですね!

ミスを発見したら,書き込みさせないようにしたほうがいいのでは?

そらから,困った問題だけど

</font>→</font

と>を忘れると,変なモードになりました。
どうしてか? わからない・・。

タグ専門掲示板なら,「タグ忘れ自動修正まで」必要では?
そういう掲示板はありますよ。いいサンプルがあれば送りますけど
そちらでも探してみては?自分では作るのはちょっと難しそう。

>ワード検索

自動ページ機能の掲示板に必要な「検索」
落書き帳にはいらない。NN,IEで検索できるから。
検索(2)でand,orにチャレンジしますが・・。

>ファイルロック

どんな方式のどんなプログラムなのか?

warewan 1999年07月16日 07時23分
#コマンド分岐
if ($FORM{'action'} eq 'TRY'){&tagu;}#記事、記入ページへ
elsif ($FORM{'action'} eq 'OK'){&memo;}#ファイルへ、書き込みルーチンへ
elsif ($FORM{'action'} eq 'delete'){&delete;}#削除のパスワード確認ページ
elsif ($FORM{'action'} eq 'delete_memo'){&deletememo;}#削除実行ルーチン
else {&comment;}#記事紹介ページ

warewan 1999年07月16日 07時21分
解りやすく作ってもらってありがとうございます。
こういうふうにも、考えられたでしょうが、。
これ以外は、わからないので、これでいきます。
クッキーは、パスワードぐらいしかつかえなえので、つけません。
タグチェックでも考えます。
ファイルロックは、いくつかみましたが、わかりません。#--------------------書き込みページ----------------------------------------
sub tagu
{
&head;
print "<blockquote>\n";
print "<BR>\n";
print "<font size = +2><i>BBS_β</i></font>\n";
print " $date<BR><BR>\n";
print "<HR NOSHADE SIZE=3 WIDTH=\"700\" ALIGN=CENTER>\n";
print "<BR><ul>\n";
print "<DIV style=\"line-height:130%\">\n";
print "<li>改行する時は,<BR>を使ってください。</li>\n";
print "<li>画像タグ <IMG SRC=\"http://***.jpg\"></li>\n";
print "<li>リンク <a href=\"http://***.html(jpg)\">コメント</a></li>\n";
print "<li>メール <a href=\"mailto:メールアドレス\">名前</a></li>\n";
print "<li>フォント <font color=\"***\">コメント</font>、デフォルトは、#C0C0C0</li>\n";
print "<li>書き込みサイズは、最高200000bytesです。</li>\n";
print "<li>面倒な、BBSですが、名前、メールアドレス、コメント、その他、適当に何か書けばOK!。</li>\n";
print "<li>テストで、何回も書き込み確認できます。</li>\n";
print "<li>初心者ですので、よろしくお願いします。少しずつ改良していきます。</li>\n";
print "</DIV>\n";
print "</ul>\n";
print "<HR NOSHADE SIZE=3 WIDTH=\"700\" ALIGN=CENTER>\n";
#書き込み後、記事サイズ表示
if ($FORM{'size'} eq 'byt'){
print "<SPACER TYPE=\"HORIZONTAL\" SIZE=\"40\">書き込みされた記事です。サイズは、$ENV{'CONTENT_LENGTH'}bytesです。\n";}
print "<BR><BR>\n";
print "$FORM{'comment'}\n";#確かめ表示
print "<form action=warewan_bbs.cgi method=POST>\n";
#結局これを、使わせてもらいます。UP_BEAT案
print "<textarea name=comment rows=8 cols=90>$FORM{'comment'}</textarea>\n";
print "<BR>\n";
print "<input type=hidden name=size value=byt>\n";#書き込み後、記事サイズ表示のためのパラメーター
#submitの、valueが表示されるのは、知っていたが、パラメーターになるのは知らなかった。
print "テスト確認する <input type=submit name=action value=TRY>\n";
print "<SPACER TYPE=\"HORIZONTAL\" SIZE=\"40\">\n";
if ($FORM{'size'} eq 'byt'){
print "成功 BBSに、書き込み <input type=submit name=action value=OK>\n";}
print "</form>\n";
print "</blockquote>\n";
print "</BODY>\n";
print "</HTML>\n";
exit;
}

warewan 1999年07月13日 08時20分
雨が降っていなかったら、仕事場で、試させてもらえます。
理解できたようなできないような。
私は,$FORM{'comment'}が分解されたか?と思ってました。
%FORMの、値の取りだしで、できるかな?など。
<STDIN>は、まったくなぞ。
CGIでどう使うかも解らないです。
表示ルーチンに

$comment =~ s/\r/<br>/g;

は、どうでもいいんです。
タグで書かれた、commentを、テストして、書きこみに渡すんで、<BR>をいれてくれない人の書きこみは、そのままです。
書いてくれたそのままを、別のファイルに書きこむんですが、(テスト表示はされる)ファイルのかきこみが、スペースまでで終わる、という事が、伝わっていないような。私の理解力の低さだったら、アドバイスを。
酒が回った、おやすみなさい。

John 1999年07月13日 02時59分
>>$FORM{'comment'}を、どうしたら、渡せるか?

各モード 
@&comment(表示)
A&tagu(コメント書き込み)
B&test(テスト表示)
C&memo(ファイル書き込み)

と進むとき,必ずプログラム最初の
FORM&GET取得・分解・編集ルーチン
を通ります。

例えば
print "<input type=hidden name=comment
value=$FORM{'comment'}>\n";

の場合,、$FORM{'comment'}の
スペースは「+」ではなくてはならないと
思います。なぜなら

$value =~ tr/+/ /;

というルーチンを後で通るから。

言い換えると,A→Bでは
テキストエリアに書かれた文字は
スペースを+でとばすということ
B→Cでは+じゃない。


それから改行の問題は
表示ルーチンに

$comment =~ s/\r/<br>/g;

がないためでは?

それでは,、$FORM{'comment'}の方は
どうしたらいいか・・・?
いろいろ考えられますが。
それはそちらで宿題でしょう!

言っていることは間違っていたら
ゴメン!

追伸:<STDIN>はいつまでその
値を維持しているか?
何かやると消えるのでは・・・?

warewan 1999年07月12日 06時48分
>$FORM{'comment'}を、どうしたら、渡せるか?

1999年07月10日 06時23分に、書いてますが,どうも引っかかっています。
TESTページで、$FORM{'comment'}を、print "$FORM{'comment'}\n";
したあとで、OKなら、
print "<input type=hidden name=comment value=$FORM{'comment'}>\n";
で、ファイルの書きこみルーチンに送ったんですが、スペース、改行後が、書きこまれてないわけです。
クッキーを、使うか、もうひとつメモを増やすかしかないのか、いや、少しでも
かきこまれているのでできるはずです。
HHHと入力すれば、テストページから、書きこみページへは、ファイルにかきこんでる。
HHH GGGだとHHHだけ書きこまれてるんです。

>「タグ入力エラーチェック」
これは、難解なクイズですね、もう1度おさらいしないと、まだ先の話です。

では、簡単な私のきずかない事があるはずです。

John 1999年07月12日 02時37分
>$FORM{'comment'}を、どうしたら、渡せるか?

「書き込み前の表示確かめページ」だと思いますが,
どういう状態から,どんな状態にパラメーターを
渡したいのかが判らず,コメントできません!


>「タグ入力エラーチェック」

まさに正規表現の出番ですね。
この正規表現で「ワード検索」も出来そうです!

>クッキーは、チンプンカンプンで、これから、
良くみてみます。
使い方は、いろいろなCGIで御決まりのパターンと
いった使い方なんですか?

「御決まりのパターン」ではないと思います。
ただし,読み込み後の分解ルーチンは
FORMの分解と同じようなルーチンを
複数パラメータの時は2回繰り返します。
これはある程度,お決まりでしょう。

送ってくれた「裏ワザのBBS」を参考に
したら?

warewan 1999年07月11日 07時41分
サブルーチンの中にサブルーチンをいれて引数を渡しても失敗でした。

$FORM{'comment'}を、どうしたら、渡せるか?

@a = <STDIN>;
って、使えないのか,どうも、FORMからの入力しかわかりません。

「タグ入力エラーチェック」は、確かめページの下にコメントを書いとけば、

FONTもリンクも確かめられるでしょうが、正規表現を使ってみたいものですね。

クッキーは、チンプンカンプンで、これから、良くみてみます。
使い方は、いろいろなCGIで御決まりのパターンといった使い方なんですか?

John 1999年07月11日 03時12分
「書き込み前の表示確かめページ」は

確かにほしいですね!

それから,地味だけど「タグ入力エラーチェック」,

例えば<FONT・・・  があれば</FONT>があるかなど

このエラーで掲示板が滅茶苦茶になりますね!

せっかく掲示板を作るなら,なんか新しいワザが

ほしいですね!そうでないと,いくら自分で作ったと

言ってもアイデンティティというやつに欠けるという

ことになりますから。だけど,なかなか良いアイデア

が見つかりません。私も!

 音楽といっしょでコピー,技術習得後は

オリジナリティが必要な〜んて・・・・!

warewan 1999年07月10日 06時23分
#------------------------------test-----------------------------
#書き込み前の表示確かめページだったけど、失敗。アイディアあります。
sub test
{
$Title = 'warewan_bbs';
print "Content-type: text/html\n\n";
$BODY = '<BODY BGCOLOR="#000000" TEXT="#C0C0C0" LINK="#0000FF" VLINK="#00CC00" ALINK="#FFFF00">';
print "<HTML><HEAD><TITLE>$Title</TITLE></HEAD>\n";
print "$BODY\n";
print "<center>\n";
print "<font size = +2><i>BBS_β</i></font>\n";
print "<SPACER TYPE=\"HORIZONTAL\" SIZE=\"40\">サイズは、$ENV{'CONTENT_LENGTH'}bytesです。\n";
print "<a href=\"warewan_bbs.cgi?action=1\">書き直しページへ</a>\n";
#GET,POSTも、結果は、全部読み込まれず、最初の1文字だけだった。
print "<a href=\"warewan_bbs.cgi?action=true&comment=$FORM{'comment'}\">OK</a>\n;
#print "<form action=warewan_bbs.cgi method=POST>\n";
#print "<input type=hidden name=action value=true>\n";
#print "<input type=hidden name=comment value=$FORM{'comment'}>\n";
#print "<input type=submit value=OK!>\n";
#print "</form>\n";
print "<HR NOSHADE SIZE=3 WIDTH=\"700\" ALIGN=CENTER>\n";
print "</center>\n";
print "$FORM{'comment'}\n";
print "</BODY>\n";
print "</HTML>\n";
exit;
}
#-----------------------------------------------------------------------------
乱数ナンバーにしたいけど、randは、うまく使えない。ポケット本は、説明がむずかしい。クッキーと、ファイルロックつけると、一段落ですが、人からもらうしかないかも?

John 1999年07月07日 03時33分
「warewan_bbs.cgi」は詳しく見てないので

コメントは控えますが,これを修正・改良・機能付加

することにより,テクニックをつけてください!

そして,その細かいテクニックを整理し

ここに発表しとくと,覚え書きとしていいかも。

案外,昔のワザは忘れやすいものです!

それから,CGI本体にもコメントを多くつけておくと

これも後からの見直しが楽!(遅くなるけど・・)

今回の「warewan_bbs.cgi」のソースは

これまでになく綺麗!


 それからクッキーはいろいろ横道にそれたり

して,すこしづつ作ってます。ちょっとややこしく

奥が深い! そちらでもチャレンジしてください!

では!

WAREWAN 1999年07月06日 06時10分
print "Location: $rakugakiurl" . '?' . "\n\n";と、
1,2倍の削除が使いきれなかったので、強引なファイルハンドル書きこみに、
なって、やっと動いた。変ですかね。知ってる事だけだと、こんなプログラム
になりました。
時間、日にちのlocaltime(time)は、人のコピーです。
よくわからないけど、スマートなもので、真似しました。
人のコピー使うのも、大変です、まねできず時間だけ過ぎてしまいました。
HTTPDも、いまいち信用できない。
@lines = reverse(@lines);は、使わないで,できました。
どうせ、ぜんぶの、配列を、読みこむのなら、上書きしても、同じ手間では?。
クッキーが、よく解らないので,削除、書き換えは、付けてませんが、
付けたいので,よろしくおねがいします。

warewan 1999年07月06日 06時09分
あら、そうだったんですか。
知りませんでした。
私が思いつく事はいつもトンチンカンですね。

John 1999年07月06日 03時24分
「こんな、localサブルーチンを集めて、組み合わせで、
作る方法を考えるのは、どうですかね?」

そんな考え方を「ライブラリ」「モジュール」と言います。

有名なのは

# 日本語変換ライブラリの宣言

require 'jcode.pl';

ですね!

青本「CGI&Perl」のCDにも

『cgi−lib.pl』が入っているはず。

ライブラリとはよく使うサブルーチンの

寄せ集め・詰め合わせと考えていいじゃないかな?

プログラムからこんなライブラリを利用する

サンプルでも作ってみたら!

Warewan 1999年07月05日 19時12分
あら、タグの,カッコも変換されて、なんだか意味がなくってしまいました。

Warewan 1999年07月05日 19時07分
これも、落書きさんの、プログラムですが、タグを無効にして、いくつかは、
許可するものです。
こんな、localサブルーチンを集めて、組み合わせで、作る方法を考えるのは、どうですかね?

sub tag_change {
local($_) = $_[0];
1 while s/(.*)(<(img([!-:A-~\s\=]+))>)/$1<img$4>/i;
1 while s/(.*)(<(font[\s\w\=\#\"\']+)\>(.*)\<\/font\>)/$1<$3>$4<\/font>/i;
1 while s/(.*)(<(b)>(.*)<\/b>)/$1<b>$4<\/b>/i;
1 while s/(.*)(<(i)>(.*)<\/i>)/$1<i>$4<\/i>/i;
$_;
}

Warewan 1999年07月05日 19時06分
正規表現を使ったものは、自分で考えると、大変で、できても他の人が作ったものと、同じモノができるので、そっくり使わせてもらったほうが、良さそうですね。
perlは、あるゲームに慣れて,早くクリヤーできるようになる事と同じで、参考書を片手にといった感じで、取り組んでも時間が掛かりますね。

落書きさんの、ページにありました。

◆インラインリンク(In Line Link)
【注意】
ここで紹介しているサブルーチンは、読みやすくする為全角スペースを使用しています
コピーして使用する場合は、必ず貼付け後に全角スペースを半角に変更して下さい。

掲示板などの本文中に入力されたアドレスに自動でリンクを設定します。
たとえば、「私のホームページはhttp://www2.inforyoma.or.jp/~terra/です。」と入力された場合、
「私のホームページはここを押してです。」と表示され、クリックするだけでジャンプします。
 
[解説]
perlのマッチ演算子を使ってアドレスを探します。
/http:[!#-9A-~]+/  これは、http:で始まる半角の英数字及び記号という意味ですね。
アドレスが本文中に見つかればその文字列にリンクを付けて置き換えます。
置き換え演算子 ~ s/・・・・/・・・・/ を使用します。
$string =~ s/(http:[!#-9A-~]+)/<a href=$1 target=_top>ここを押して<\/a>/g;
ここで重要なのは「( )」です。この「( )」を付ける事でperlは自動的にマッチした文字列を特殊変数「$1」に格納してくれるのです。
最後の「g」は、本文中にいくつ見つかってもすべて同じ処理をしなさいという意味です。
「g」が無ければ最初に見つかったアドレスにしかリンクを設定しません。
 
日本語で説明すると、
$string =  もし、$stringの中に、
(http:[!#-9A-~]+)  http:で始まる半角の英数字が見つかれば、特殊変数「$1」に格納し、
<a href=$1 target=_top>ここを押して<\/a>  リンクを付けた文字列に、
~ s///g  すべてを置き換えなさい。
という意味ですね。
 
う〜ん? まてよ、これでは駄目だ。どうしてって
タグを許可している掲示板で、
<img src=http://www2q.biglobe.ne.jp/~terra/cgi/trylogo.gif>
と登録されると、イメージが表示されるはずなのにリンクが付いてしまい壊れた画像になってしまう。
 
そうなんです。
これを回避するにはどうすればいいでしょう。
タグの場合、httpの前に「=」か「"」が付きます。これを識別させましょう。
[^=^\"] これは、httpの直前の1文字が「=」でも「"」でもないという事です。
これでも不十分です。文章の先頭は前に何も文字が無いので蹴られてしまいます。
([^=^\"]|^) こうする事で、httpの直前の文字が「=」でも「"」でもないか、文章の先頭という事になります。
$string =~ s/([^=^\"]|^)(http:[!#-9A-~]+)/$1<a href=$2 target=_top>ここを押して<\/a>/g;
ここで気を付けなければならないのは、「( )」が増えた事です。
最初の「( )」は直前文字の識別に使用しましたので「$1」には直前文字が格納され、欲しいアドレスは2番目の「( )」ですから「$2」に格納されています。
perlのマッチ演算子は、左から数えた左括弧「(」の順に「$1$2$3」と格納されます。
通常の演算の優先順位は内側の括弧が高いので気を付けましょう。
 
これで大丈夫でしょう。
ついでにftpサイトにも対応した完成品はこれです。
$string =~ s/([^=^\"]|^)((http|ftp):[!#-9A-~]+)/$1<a href=$2 target=_top>ここを押して<\/a>/g;
 
変換したい文章を$stringに入れて、この行を実行するとリンクが付いています。

warewan 1999年07月02日 08時08分
指摘されたとうりで、まちがいです。KEYで迷ったか、?
動いているので、おもしろい。
($a cmp $b) || ($a{$a} cmp $a{$b})
が、正解と思いますが、
名前で、比べて、同じなら偽で、コメントで、比べたつもり。
でも同じ名前は表示されない。

$name =~tr/A-Z/a-z/;
で、比べられるけど、表示も、小文字で。ガンジーが文字化け。
\u$_ と、最初の文字を、大文字にして終わりでは、いいかげんか?


sub spaceship_operator{

if ($a < $b) { -1; }
eisif ($a == $b) { 0; }
eisif ($a > $b) { 1; }

}
を簡単に行う演算子が、スペースシップ(数字比較) <=> 
文字比較が(よく意味がわからない、sortだけでも文字比較できそうだけど。)
cmpだそうです。
$a$bは、グローバルだそうです。KEYが全部代入されているんでしょう。

細かいことだらけは、そうですね。なぜ、必要かわからないもの、よけいなもの
もおおいですね。
結果だけほしかったプログラムでしたのですが、その他の処理が大変ですね。
また、勉強します。

John 1999年07月02日 02時47分
このソート方法自体よく知りませんが・・・。

@jun = sort{$a <=> $b}@suuji;

例えば $a $b に実際なにが代入されているか

見せるとか(可能か?サブルーチンの中でprint?)

昇順,降順とか工夫がほしい。

($junnban{$a} cmp $junnban{$b}) || ($a cmp $b)

はわからない。おかしい?

($a{$a} cmp $a{$b}) || ($a cmp $b) なのか?

ちょっと説明を!


 それから,自分で反省しているけど

1つのプログラムを細かいとこにこだわって書くことも

必要。手間がかかるけど。だいたい他人のプログラムを

見れば解るように,エラー処理とかその他細かいことだらけ。

(ここではエラー処理はいいけどね!)実際そんなところに

かかる時間の方が大きいのが普通なのかも。

小文字,大文字処理なんかは考えてほしかった。

ちょっと苦言・・・。


 こういう掲示板のデータの処理でよくある「検索」

あれなんかに挑戦してみたら,どう?

それでは。

われわん 1999年07月01日 07時18分
また、中途半端で、すみません。

まとめるのが、へたで時間がかかるので、止めました。

もうすこし発展しそうですが、あまり必要ないかな?と、思って

やめました。

John 1999年06月29日 02時38分
「タグ練習CGI」は「regular exrression」につづく

『 warewan soft 第2弾 !! 』というわけですね!

自分のほしいものを作っていくことはいいことだと

思います。一番やる気が出るし。

  小さいプログラムを作ったら, 次は

それに付加機能を少しずつ加えていくと

だんだん完成度が上がるし,勉強にもなると思います。

 私も作りたいものがあるけれど,それをやる技術

テクニックがまだわからない状態です。


 といわけで,今回は先生風のコメントになりました!

John 1999年06月28日 01時17分
さて,

次は「全体の流れの確認」or面白そうな「クッキー」

でもやろうかなと考えています。

>「ずっと前にC*こんなのがありましたが、なんですか?」

pack や unpack のときによく使われるようですが,
C言語などでいうデータの型(char)の意味。
charとは何か,8ビットデータ????
$moji = pack(”ccc”,65,66,67);
三個のアスキーコードを文字(ABC)に変換
この ccc  を c* と書いてもいいわけです。たぶん。
*は正規表現,ワイルドカード文字数制限なしの意味?

それでは・・・。

warewan 1999年06月23日 07時09分
確かめは、クイズのちょっと書き換えでした。
誉められたんで、もうちょっと考えてみました。

ファイルハンドルは、ポケットには、perl5まで、説明してましたが、
良く解らないので,解っているとこまで、書きますが、パッとしませんよ。

ずっと前にC*こんなのがありましたが、なんですか?

John 1999年06月22日 03時03分
@「regular exrression try cgi」

私も作ろうと考えていたしました。Good!
このLessonもだいぶ長い間やっていて
飽きてきたな?と思い,この落書き帳の最初の
何月日を見たら5月3日。まだ,2ヶ月も経ってない。
ちょっと前は「便利パック?」のCGIしか使えなかった
のに,今では必要なCGI( regular exrression try cgi)
を自分で作れるようなったということは格段の進歩ですね!
でも,ちょっと息抜き(fishing)したほうがいいかも・・・。

A([^=^\"]|^)h はまだすっきりしません!

 「ダブルルクオート以外ではじまらない。」
で頭が痛くなりました。

[^=^\"]h または ^h に分けて


[^=^\"]h は  = ^ " 以外 の次が h

^h       は  hで始まる

というのでいいのでしょうか?

1番目の  ^    は否定
2番目の  ^ はただの記号(文字)
3番目の  ^ は文字列の最初にマッチ

正規表現の悪いところは上のように機能とただの文字
の区別が付きにくいところ!

/d\d/ は 文字(d)+数字(¥d)にマッチみたいにね。 


B削除機能付加

1.2倍のところがおもしろかった。なるほどねぇ・・・。
この考えはいろいろなところで使われる。
電気の制御,例えば温度コントロールにも使う!
20℃に設定したら,この考えを使わないと,20℃近辺で
スイッチがON/OFFをカチャカチャ繰り返すことになる。

「削除機能付加」 の次は 

 「ページ付加機能」もマスターしないとね。


Cサブルーチン関連,センスのいいのを待っています。

私は正規表現[2]・・。頭が痛い〜。

われ 1999年06月21日 07時41分
実験結果
([^=^\"]|^)hでは、
ダブルクオート以外ではじまらない。hが出てくる。hがはじめ。
例、
h fgh 45^-0hjkm などでしたが、^はおもしろいですね。
確かにはじめのが、最初の意味で、2番目が否定形なら、そうでしょうが、

キャッシュではなくて、クッキーでした。
送った簡単なBBSみましたか。
私は参考になりました。
ファイルへの書きこみ方が、違うが、落書きより重くなりそうな書き方ですが,削除機能をもたせるとこうなるんでしょうね。

サブルーチン関係は、書いてみます。
確かめCGIは、問題があるかもしれなおけど、

John 1999年06月21日 03時36分
@[!#-9A-~]について

アスキーコードの32から並べてみると

! " # $ % & ' ( ) * + - . /
0 1 2 3 4 5 6 7 8 9 : ; < = > ?
@ A B C D E F G H I J K L M N O
P Q R S T U V W X Y Z [ \ ] ^ _
` a b c d e f g h i j k l m n o
p q r s t u v w x y z { | } ~


と言うことで[”][: ; < = > ?@] 以外,

文字,数字,記号なんでもOK

Aprint "Location: $rakugakiurl" . '?' . "\n\n";

時々見かけます。知らないのでちょっと調べたら,
「Locationヘッダ」と言うそうです。
Location: http://www2u.biglobe.ne.jp/~k-saka/・・・・・.cgi
と書けば,その ・・・.cgi に飛ぶわけです。ただし,「 . '?' .」は
なんだろう。なんかのパラメータを渡すのか,I don't know!

BMINIBBSのファイルの書き込み

テンポラリーファイルを作って,最後にリネームする
方法だということは解りますが,詳しくは?
ファイルロックはコピーして使かライブラリを使うで
十分じゃないでしょうか。

Cせっかく勉強したんでからサブルーチン関係をまとめてみたら?
これは大事だと思います。

D([^=^\"]|^) がいまいちを解りません。

 =^\"以外の文字 または ^ をグループ化

ではおかしいしねぇ? Tell me please!

Eそらからキャッシュとは?

warewan 1999年06月20日 07時51分
もう、1週間がたったのか、早いのもです。
本は、選ぶ時間がないので、買ってません。
何してたか、なんにもしてない。
リャマのつづきの、@<<<<こんなのや、サブルーチンのデータ-の受け渡しなど、見てたけどあんまり、進んでない。
あと、キャッシュは、みんな同じようなもので。
調べないで、コピーで、終わらせようかと。GMTなんか、

HI_HOは今月で、止めです。
BIGLOBEが3000円で、150時間になったもので。

/[!#-9A-~]/は、わかりません。教えてください。
あとはまだ、覚えてました。

落書きの
# 追加したデータをブラウザに反映させるため落書き帳をリロードします。
print "Location: $rakugakiurl" . '?' . "\n\n";
これも教えてください。

POST、GETもいろいろありますが、GETは要らないんじゃないのかな?。よくわかりません。

ファイルの書きこみの仕方は、MINIBBSなんかぜんぜんわかりません。
BBS.CGIいろいろ送ります。

ファイルロックはますますわからないので、どうしましょう。

John 1999年06月20日 03時14分
「正規表現 [2]」 を書こうとしていますが,

なかなか難しく進みません。

「正規表現 [1]」でおかしいところがあったら

お知らせください!

ところで,いい本は見つかりましたか?

なかなか  if ( $value =~ /いい本/ ) では

Xのことが多いですね? (自分にマッチすると本が)  

warewan\n 1999年06月14日 08時28分
いろいろ知らないのがでてきましたが、PERL5は、説明本が、ほけっとリファレンスしかない。ポケットは、あまり使えない(私にとって)ので、またなにか買うしかないです。
結局リャマが、ずっと役にたってます。
はじめは、ぜんぜん理解できなかった「そぞろあるき」も読みかえすと理解できるようになってました。まだ、後ろのほうがちんぷんかんぴんですが、

下の$1は必要ないことになりますので、まちがっているんでしょうね。

warewan 1999年06月14日 07時44分
$msg =~ s/([^=^\"]|^)((http|ftp|mailto):[!#-9A-~]+)/$1<a href=$2 target="_top">ここを押して<\/a>/g;

([^=^\"]|^)が、$1にセットで、最初の文字に、「"」があってもなくてもよしで、あったら、なくすのかな?
((http|ftp|mailto):[!#-9A-~]+)が,$2にセットで、http|ftp|mailtoのうちどれかがあって、で、:があって、次は知らない。#から9って#と0から、9?Aから~ってAからZ(大文字)と空行?ではないものが1つ以上と、マッチですか?

John 1999年06月14日 03時12分
$msg =~ s/([^=^\"]|^)((http|ftp|mailto):[!#-9A-~]+)/$1<a href=$2 target="_top">ここを押して<\/a>/g;

「正規表現」の鬼に質問です!

これを詳しく解説してください!

どう動くか結果は解るけど,1つ1つの解釈が? 課程が?

こうなると,これだけでクイズですね!

「正規表現」はなんでもできそうだけど,

見た目は非常に解りにくい。

[^=^\"] なんか,私のイヤな 何たらマーク が

汗を流しているように見えます。まいっちゃうね〜。

 

warewan 1999年06月12日 18時11分
mに限って省略できる。/^w\b/ は、 m@^w\b@ など。wとマッチ
のまちがえです。

warewan 1999年06月12日 08時31分
◆◆K6-3 450MHzからPentiumIII、Celeronまでのパソコンが勢揃い◆◆
Celeron400MHz、サウンド、FAXフル装備でなんと86000円での新登場!!
今すぐチェック => http://www.ohtec.co.jp/iclass400c_a0612.htm

warewan 1999年06月12日 07時52分
「ヒントが悪い,おかしい?」
これで大笑いしました。
どうも、すみません。

自分さえわかればの、プログラムになってしまいました。
答えが先ではなく、成り行きの答えなんです。

「3個目の数字の前と後に同じものを・・・」
は、「3個目の文字の前と後に同じものを・・・」の間違えです。

(.+)は、同意権です。私の解りません。

とりあえず答えの、説明です。
もう遅いでしょうが。

最初の文字   wかW。
2個目     0(ゼロ)
3個目    1つ以上の文字(aaa JOHN 1 5555)など
4個目     a A
5個目    3個目と、同じ文字
これ以上続けては書いてはだめ。本当は空白文字入れて,無限につづく。

やってないこと

m /以外の区切り文字 m/ = /
mに限って省略できる。/^w\b/ は、 m@^w/b@ など。wとマッチ

($1 $2..マッチした順に呼び出せる)
$_ = /(\w+)(\W+)(\w+)/ $1 始めの単語 $2 2個めの単語
($a$b) = /(\w+)(\W+)(\w+)/ $a始めの単語 $b 2個めの単語
$& マッチした部分を呼び出せる(これはやった。)
$' マッチした部分の後ろを呼び出せる
マッチした部分の前を呼び出せるのはタイプがわからない。(' )の反対
また、本にはないけど、$a&など、$_以外のターゲットの時使えるか?

今まで本に説明されてなかった事で、解った事の自慢
chopで連想配列の値だけ削られる事だけ。必要ないからでしょうが。

John 1999年06月12日 02時48分
困ってしまいました〜。

奥が深い「正規表現」,しかもクイズ形式

しかも,ヒントが悪い,おかしい?

「解ってらっしゃるでしょうから」

→解ってません!ソースを見ても解らないから

ちょっと勉強しましたが・・・。

回答は「w0xax」  xは何でもよい

これで,一応OKは出ましたが? これが正解?

「3個目の数字の前と後に同じものを・・・」

このヒントなんかおかしくない?

どうせ,サンプルプログラムを作るなら,

後で見て参考になるように,復習しやすく作ってもらえると

助かるのだけど〜。

それから(.+)の「.」は英数字以外はでめなのかな?

改行文字以外ならOKなんて本には書いてあるけど

通らない。

if ($a =~ /\W/) はでチェックされるには解るけど

その前にif ($a =~ /^w0(.+)a\1\b/i)でOKでないのか?

とりあえず!

warewan 1999年06月11日 07時34分
その1と6を文章で説明してもらえるとたすかります。
勉強するのが、HTTPDでは操作が面倒で。
と言いながら,私のも説明がない。
解ってらっしゃるでしょうから。正規表現は、説明文いれるとすごい大変で、。
クイズで、。
ちょっと、ダサいけどクイズが、主ではないので、カンベン。

われわn 1999年06月09日 08時53分
下がまちがえという、まちがえ。
点ははぶかれてますが、(しんぐるくぉーと)
キャッシュもやりたい。
あんぱっく?は知らない。ちょっと解らないことありますね。

warewan 1999年06月09日 08時47分
$warewan = read (STDIN $formdata $ENV{'CONTENT_LENGTH'});

$warewan = read STDIN $formdata $ENV{'CONTENT_LENGTH'};
上が間違いなぜこんなにしたか、不明です。
GETをはぶきたかっただけおぼえてるけど。

warewan 1999年06月09日 07時05分
今日は、正規表現を読みおわりました。
今まで,あまり必要としないし、読んでると眠くなるのでなかったので
とばしてました。
真、偽の判定をする制御構造では、必要で何とか読み終わりましたが、
これもややっこしいく、CGIにする方法を考えないと。

「ファイルからの読み込み」はこれから勉強します。
IF、CGIもこれからみます。

John 1999年06月09日 03時44分
$gokei も同様!

しつこいか〜?

John 1999年06月09日 03時41分
追伸

「while」(warewan)

> なぜか、10までは、表示されない。

理由 $aをリセットしてない。

     上下で違う文字にするか, 

     最初に $a=0; とする

John 1999年06月09日 03時29分
ファイルからの読み込み(JOHN)の「sample_6」

は表示のソースのままでは当サーバーでは動かなかった。

それで,実際はちょっと変更して動かしました。

そらから

「open(WAREWAN"warewan.txt") || die "エラー\n";」
 失敗なぜか?解りやすいのに。

私もいろいろやったけど動かなかった。(die)

逆に自宅(黄色のアイコンhttpd)ではだめで

の当サーバーでは動くのかな? 違うだろうな〜。

 そらから 「if」(warewan)はエラーですよ!
直してください!

  私は「書き込み」のサンプルにいきますが,

そちらは「ファイルロック」関連にいってください!

それが終わったら,「全体の流れ」

→「何か小プログラム(実践)」(今までのテクニックを使った)

とやっていきましょう!

     とりあえずのゴールは近い ??? !

warewan 1999年06月08日 02時41分
2つCGI書いて、疑問を忘れてしまいました。
今までのCGIを見なおしていましたが、自分でもよく理解できない事を
かいてます。繰り返し書く事で覚えていくのでしょう。
酔っ払ってかいたものは、だめですね。忘れてます。
$ENV{'CONTENT_LENGTH'}で、文字数がわかりますよね。
改行が、数えられていません。? 改行は、むずかしい。

John 1999年06月06日 03時36分
プログラムの理解度

@何をやっているのかが解る。(読める)

Aやりたいとが出来る。(書ける)

B完全理解。


プログラム言語をなかなか完全に理解するのは難しいと思います。
プログラマーでも不完全な部分はあるだろうし,
@〜Aでも十分だと思います。

私はまだ時間がかかりそうなので,その間

以前から,気にしていた

制御系[if/unleess][while/until][for][forerch]と
演算子(=,!=,or,and,<<=,||などなど)

私も理解してないから,わかりやすくまとめてくれたら
助かります。

「chop」のサンプルはわかりやすく,参考になりました。

warewan 1999年06月05日 08時00分
作るには作ったけど、いろいろ納得のいかない点があります。
\nの必要性、<STDIN>、ファイルハンドルなどに、\nがついているのが見えない、見せられない。
[if/unleess][while/until][for][forerch]と、演算子
文が解りにくい。
あるwhileの説明で、\nを取ったら、無限なのかすごい事になった。
デーモンプログラムなのか?
今の所、説明プログラムを書く方が,難しい。
これは、こうなると結果だけ解りますが。
今のところ、いきずまり。
基礎と、何を学ぶか、が、わからない。

John 1999年06月04日 03時14分
まだ,「MIDIBBS」やこの「Perl Lesson」の記事内容を

詳しく見てないのでなんとも言えないのですが,

とりあえず,次は「ファイルの書き込み」にいってください!

私は,まだ「読み込み」から勉強しながら,作ります。

warewan 1999年06月02日 08時08分
ダブルクオート内のタグのダブルクォ−トは¥を前につけるとこによって、CGIで、そのまま表示されHTMLでは当然タグとして作用しました。
MIDIBBS出しました。IMGを、MIDIに変えただけですが。
$IMGは、MIDI用にそのままつかいました。タグだけ変更しました。

warewan 1999年05月27日 07時11分
「ハッ、ハッ、ハッ。」と、笑ってごまかすほど、C調ではありません。
聞かれて、考える訳ではありませんが、説明文があったので、たしかめてませんでした。
もう1度やり直します。有難うございます。

John 1999年05月27日 01時14分
数日間留守します!

@勉強不足の私にもよく解るサンプルをお願いします。

Arakugaki.txtはそのまま使わす,コピーするなりして
 rakugaki_perl.txt warewan.txt など
別ファイルを使ってください。 ちょっと,怖い!
(普通の感覚ではそうする。練習用は別に作る?)

B「引用符(" )はなぜ要らないのか?
  点1つとの違いはわかってますが、」

  私は分かってないから教えて!

C<div class=sample style=line-height:150%>
のclass=sample はいらない?
もしくはsample(サンプル)は名前だから別名にした方が
いいような! 詳しくは知らない。(スタイルシート)
私もそう書いてたけど・・。

D教えて!(ここんとこ勉強不足でゴメン)

$comment =~ s/\r/<br>/g;

chop($wa);

どう動くか,なぜ必要かなど?


とにかく,「復習」「まとめ」「予習」等々

じっくりとわかりやすくお願いします!

注)ファイル書き込みはさらに

           ちょっと注意して慎重に!



それでは,数日後に・・・・・・!

warewan 1999年05月26日 07時56分
引用符(" )はなぜ要らないのか?点1つとの違いはわかってますが、
まとめしないと、混乱してプログラムがよめ無くなる。
配列番号と、要素数、インクリメント、デ*、デフォルテ、などなど、

warewan 1999年05月25日 09時21分
($sec$min$hour) = localtime(time);
は、($hour) = localtime(time);にはできなかった。
($hour <= '03'){&yoru;}は、
($hour <= 03){&yoru;}にはできなかった。
引用符(" )は、エラーになる。
まだあったけど、時間切れ。


 ただし,残念ながら英語でも初心者から上級者まで
単語力がやはり一番必要なんです。基本がね。

 それと同様に,プログラムも道具(関数)を知らないと
設計図を作ったりや他人のプログラムを読むこともできないのです。

その通りです。勉強嫌いなんです。最低の知識で多くを望む性格は、いい加減な私そのものです。
青い本(「CGI&Perl」)の巻末の目次は見てみましたが、解りやすくないです。まねはできるが、よく理解できない。
なにか忘れてる?あー思い出せない。またあとで。

John 1999年05月25日 00時52分
 今,非常に眠たくて,頭が回らないから,間違ったこと

を書くかも・・・。


@「次の課題は、CGIの設計図が必要では?」

 賛成ですよ!「ファイル」が終わったら,そうしようと
考えていたところですから。それに,気が付いたこと
はむしろGood!です。

 ただし,残念ながら英語でも初心者から上級者まで
単語力がやはり一番必要なんです。基本がね。

 それと同様に,プログラムも道具(関数)を知らないと
設計図を作ったりや他人のプログラムを読むこともできないのです。
(説教くさいですね・・・)

  まあ,気持ちは分かります,私もめんどうだから,
「そろそろ,小さい掲示板ぐらい作ろうか」なんて
思ってますから,だだし,もうちょっと基礎をやったほが
あとが楽だと言うことも知っているのです。ひとりだったら
こんなにまじめには進めてないでしょう。ハハハ・・。

 と言うわけで,設計図を「フローチャート(流れ図)」なんて
いいます。長方形やひし形を→で結んで,プログラムが
どう流れているか,例えば

   ここでエラーチェックをして
     OKだったら   →次に進む
     エラーだったら →エラーを表示する

というのを図で表す。


A知らない関数について

  青い本(「CGI&Perl」)の巻末の目次「ABC INDEX」
なんかで調べれば一発です。ただし,「文字列の編集」は
だいたいでいいと思います。全部の関数やるとちょっときつい!
「ファイル」の方が大事でしょう。「ファイル関係」の意味は
もちろん,***.datや***.txtなどの読み書きです。
【書いちゃえ】を押すと「rakugaki.dat(txt?)]への書き込み。


Bハッシュの=>について

 実際にはこの表現で動かしてないのですが
明らかにその連想配列の意味は分かりやすい。
「コンマ」より「=>」のほうが。

 それでは!

warewan 1999年05月24日 08時40分
正規表現split、joinで今止まってる。sprintf、printfは2冊の本ではまだ?
その他は、chopだけでてきたが、あとは知らない。
「ファイル関係(読み込み・書き込み)」とは、ファイルハンドルetc(OPENなど)ですか、
連想にでてきた>は、出力用の事と同じですか。私は連想の>は知らない。
次の課題は、CGIの設計図が必要では?部分の説明では全体がつかめない。いろいろ頭の中では、組み立てきれない。年のせいか?
どうするから、何が必要かが、知らない何かが。便利な事はなにか?
酔っ払いのたわごと。
英語習ってた、学生時代、単語、文方、のテスト、興味薄れる、何を伝えたいかが先のきがする。
せっかちの性格か、よくわかってないのに、全体が知りたい。
CGIの設計図の説明ページはないものか?
組み立てが、1番むずかしそう。
進め方には、異論はないですよ。
そういう訳で、次は時間がかかるでしょう。






John 1999年05月24日 02時33分
ついでに,『文字列(スカラー変数)』の編集もやっつけましょう!

[index][rindex][uc][ucfirst][lcfirst][ord][length]

[crypt][study??][join] [chop][sprintf][split]

などなど,あんまり役に立ちそうにないもの,ややこしいものはカット!

これが終われば,大物「ファイル関係(読み込み・書き込み)」

それでは!

warewan 1999年05月22日 16時55分
点1つ、つけてた。(この説明では、わからないでしょうが。)
HTTPDでは、判断できなかったみたい。
ARRAYでは、@HANAKOを、どうにかするつもりだったけど、忘れたみたい。

warewan 1999年05月22日 09時05分
なぜか?
でない!時間切れで、明日。

われ 1999年05月22日 06時11分
Perlデバッガーの勉強をBOOK,インターネットで
しといてください。そのほうが分かりやすい,教えやすい。

まだ、あとで、PERLの方がいまおもしろいです。

warewan 1999年05月22日 06時10分
配列操作の

 「chop」「pop」「push」「sort」「reverse」
は、今日ばっちりわかりました。
次のPERL LESSONで。

John 1999年05月22日 02時12分
●「自宅サーバーでエラーが出た」とき

 エラーを直すことをデバッグ(虫取り)なんて言います!

@じっくり見直す。

A新しく加えた行,間違っていそうな行に「#」をつけ,
  コメントにし,動かしてみる。動けば,その行が悪い。

Bデバッガー(Perl付属)を使う。

C変数が自分の思ったとおりになっているか,
PRINT文を文の途中に入れで表示させる。

D Aの変形 怪しい行をどんどん消していく!
   または,少しずつ行を増やしていく!
   もちろん,オリジナルは取っておき,カット&ペーストで。
   (少し,乱暴ですが・・・,効くことは確か)


 Bについては文法チエックぐらいが使えそう。使ってます!
文法エラーの行が表示されます。DOSベースなので,
工夫が必要。ちょっと面倒なので次回に,詳しく書きます。

  その間,Perlデバッガーの勉強をBOOK,インターネットで
しといてください。そのほうが分かりやすい,教えやすい。

それから,配列操作の

 「chop」「pop」「push」「sort」「reverse」なども。

ただし,無理せずゆっくり確実に!

私もその間,ハッシュ関連サンプルを作ります・・・。

追伸:

「ネットスケープで、作ってIEでみると、大きくなってカッコ悪いね。」

フォントの設定によるのじゃない!

フォームは上と逆だけどね。

warewan 1999年05月21日 01時39分
ネットスケープで、作ってIEでみると、大きくなってカッコ悪いね。

warewan 1999年05月21日 01時35分
今使っていませんよね。

warewan 1999年05月20日 23時11分
自宅サーバーでエラーが出たとき
ただ、確認、やり直し、良い方法が、あるんでしょうか?

choppoppushsortreverseは、なんじゃろう?
keyvaluesdeleteは、次にやってみます。

John 1999年05月20日 01時31分
とりあえず,先に進みましょう!

1. &jcode'convert(*value'sjis');

2. $FORM{$name} = $value;

1.は何となく分かるし,
ちゃんとやると文字化けの関係でややこしそうだから,
とばしましょう。(根性不足?)

2.にいきましょう!!!

さて,前回も書きましたが,ここらで

@「スカラー変数,配列,ハッシュ」のまとめ
A上記変数の操作
(choppoppushsortreverse,delete などなど)

これは,じっくりやった方がよさそうです!

無理せず,ゆっくり理解しながら,

やっていきましょう!!

warewan 1999年05月19日 07時12分
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C" hex($1))/eg;
packとhexは、16進数どうのこうのと、バイナリデータ−と、?
全体を式として、覚えるぐらいで,進数数えるのは、酔っ払いには、きびしい。PASS

後、~ニョロは、$_以外のに適応するためと、わかりました。
$**=trやsの、ため。$**で、呼び出す為。
なんでも~ニョロ、付けてみようかと。

スカラー変数,配列,ハッシュの違い
私の、雰囲気での、理解度
スカラー変数、、、なにかのデータ−
配列、、、、@で、番号で、呼び出せる。
ハッシュ、、、名前を付いたデータ−を、対する名前で、呼び出せる。
よくわからないのを、解ってらっしゃいますね。
$で、みんな表してるんで、わかりにくい。

John 1999年05月19日 02時54分
合わせワザなしサンプルはOK。

それから勉強になりました!

$_ = "warewan1123 and JOHN1123";
$B = tr/a-z/A-Z/;
$C = s/1/2/;

知らなかったこと

1.「$_」がデフォルトつまり,対象の文字がないときの対象になる
2.それから「$B」や「$C」に変換した数が入る

tr///とs///g との、違いもまだすっきりしない・・・?
+をスペースにするなら,「tr/+/ /」でなく 「s/+/ /g」でも
いいんじゃないか?なんか・・???

私もとりあえずサンプルを作りますが,
結局は完全には分からないままになるような・・・。

その間,予習や復習を!

 予習としては
 
  1. &jcode'convert(*value'sjis');

  2. $FORM{$name} = $value;

特に2.はこの機会にスカラー変数,配列,ハッシュの違いを明確にしたい!

追伸:

   自宅サーバーでエラーが出たとき,例えば文末の「;」忘れとか
   スペルミスとか,これを見つけるときどうしてますか?

酔っ払い warewan 1999年05月18日 09時19分
tr///
s///g
との、違い。
tr///は、複数置換できる。
s///gは、1つの置換を、すべてできる。
s///gをtr///にすると、<は、&にされるなど、だめ。疑問?

warewan 1999年05月16日 08時43分
確かに点(アースキー文字さがすのが、、。)がきえてます。
このBBSでも$value =~ s/\//gですね。

warewan 1999年05月16日 08時40分
実験結果

$value =~ tr/+/ /; (入力の、空白文字が+に表示される。+を空白に変える。+が何個あっても空白1っ個に変える
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C" hex($1))/eg;
(MAILアドレスの文字化け直る、たぐが、使える。ようになる。むずかしい!?

$value =~ s/</</g;  (アースキーコードに、変換
$value =~ s/>/>/g;  (アースキーコードに、変換
$value =~ s/\n//g;    (?なにが、きえるのか?
$value =~ s/\//g;    (が、きえる。このメリットは?

Sとtrと入れ替えたら、エラー。~ g が?
適当に、変えても,演算子の意味の説明にならないので、どうしましょう。

われわん 1999年05月15日 08時23分
A「私なパソコンでは、相対アドレスしか見れないんですが、相対アドレ
スにできないものですか?
は、PERL LESSONです。HTTPDで、開いて、リンクでみたほうが各CGI、HTMLを、ひらくのが、早いからです。
おやすみなさい。

ワレワン 1999年05月15日 08時19分
今日は、眠いので、あらためてかきます。
ありがとうございます。
知らなかった部分は、NO++と、$**[$no]でした。
解ってるぶぶんの説明をしなかったため、多くの解説にさせてしまい、すみませんでした。
WAREWAN01は、仕事場で、作り朝、わかった部分を、たしました。
ちょっとHIペースで、夢にでそうです。

ワレワン 1999年05月15日 08時11分
まだ、起きて確認することが、ありますが、大変よくわかりました。
でも、NO++など、知らない事が、もんだいですね。

warewan 1999年05月15日 08時09分
<input type=hidden name=action value=true>は、意味無くコピーしてましたが、この勉強しないと。たしかにいりません。

John 1999年05月15日 03時21分
 @pairs = ("action=true""name=John""ID=123""comment=TEST");

""の間には「,」があります。ここ落書き帳では表示が消えてます

John 1999年05月15日 03時15分
ソース表示のまずさのため,コメント(解説)のソースがきたない・・残念!

まず,
@「変数」と「関数」の区別を$***,@***は変数だから,名前は何でもよい!

A「私なパソコンでは、相対アドレスしか見れないんですが、相対アドレ
スにできないものですか?
それとも、見れる方ホームサーバーを、教えてください。」

とは意味がわかりません。

B合わせワザのやめ方

例えば

 1.Formでデータを送って
 2.GET/POSTで受けて
 3.データをSPLITで処理して
 4.FOREACHでさらに処理

の場合,1と2を省略して
 
 $QUERY_DATA = "action=true&name=John&ID=123&comment=TEST";

として3,4に進むか,

さらに,SPLIT処理したデータを代入

 @pairs = ("action=true""name=John""ID=123""comment=TEST");

として1,2,3を省略して4に進む。

つまり,データの変化を理解し,それまでの処理で変化した形で
データを最初に定義すれば,処理を省略できる。

ちょっと,眠たいので間違っている部分があるかも・・・。

追伸:この"action=true"の部分hiddenはHello!(CGI)の場合いらないじゃないかな?

warewan 1999年05月14日 18時17分
#!/usr/local/bin/perl


$Title = 'foreach_John';

# ------------------- 関数---------------

foreach $kazu (1..10) {
$No ++;
$gokei =$gokei+$kazu;
$NIKETA = sprintf("%02d" $No);
}

# -------------------HTML-------------------

print "Content-type: text/html\n\n";

print <<__HTML__;

<HTML>
<HEAD>
<TITLE>$Title</TITLE>
</HEAD>
<BODY BGCOLOR="#000000" TEXT="#C0C0C0">

<BR><BR>

<blockquote>
<font size="4">
$NIKETA回目$gokei
<BR><BR>
1〜10回の、出し方を、教えてください。<BR><BR>
この書き方では、どうするのかわかりません。<BR><BR>
</font>
</blockquote>
</BODY>
</HTML>

__HTML__

exit;

warewan 1999年05月14日 08時33分
私なパソコンでは、相対アドレスしか見れないんですが、相対アドレスにできないものですか?
それとも、見れる方ホームサーバーを、教えてください。

酔っ払いwarewan! 1999年05月14日 08時24分
簡単に、説明すると、合わせワザしかできないのです。
作ったあと、JOHNさんのみて、勉強してます。
つまらなくないですよ。
それが、できないので、コピーになってしまう訳です。
foreach $kazu (1..10) {
 $No ++;
 $gokei =$gokei+$kazu;
 $NIKETA = sprintf("%02d", $No);
 print "$NIKETA","回目 :","$gokei","<BR>";
}
は、知らない部分が多いです。
{ }の部分を、全部繰り返し行うという意味がforeachと解りますが、結果を、取り出せなかったんです。
私は、foreachは、パスしようかと、思ったぐらいです。
前からの解らない点は、単語です。
今回は、$No ++;
   "$NIKETA","回目 :","$gokei","<BR>";
面倒ですね。:",こうゆうのが?
関数以外の文字が、理解できないので、応用ができない。
本読んでいると眠たくなって、しまい落書きCGIコピーいじりしか、集中できません。なぜか、パソコンで見ると眠くならない。
Hello!CGI は、リャマ本のはじまりの部分で,書き方は、違いますが、何とか利用できないかと考えて追加で、入れようかと、思っているわけです。
落書きとは、ずれるが。
(ハッシュ)と、@のちがいも眠たくなってしまい、だいたい、説明してる人が、頭悪いんでしょう、興味がある人に、教えられないんでは。
それとも、私の基礎が、なってないのか。くだけた説明ができないものか。
次は、単語理解のみみたいなので、まだ、今までの復習をします。
Johnさんの進行とは、ずれますが、解ったぶぶんで、繰り返して、あやふやを、無くしたいです。ちょっと、待って,頂戴。頭のさえた時間の余裕がないもので。
できれば、総おさらいのCGIお願いします。
解ってない部分を、みつけてください。では。

John 1999年05月14日 02時33分
Hello!CGI (foreach)はなかなか良くできていると思います。
無駄な行もないし・・・Good!
私のがなんかつまらなくなってしまいました。

ただし,合わせワザが多いのがちょっとだけど・・。

Hello!CGI (foreach)に使われているテクニック

@POST/GET
ASPLIT
BFOREACH
C連想配列(ハッシュ)-- $FORM{$name} = $value;
DIF/ ELSE

最終的にはそうやってプログラム全体をつくるわけですが・・。

さて,次は
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C" hex($1))/eg;
$value =~ s/</</g;
$value =~ s/>/>/g;
$value =~ s/\n//g;
$value =~ s/\//g;

ゆっくり,理解しながら。

追伸:

URLの部分を

http://www2u.biglobe.ne.jp/~k-saka/Reference/up_beat_2/perl/f_source.cgi?w/****.cgi

要するに「source.cg」i→「f_source.cgi」とすると実行結果とソースをフレームで表示できます!

warewan 1999年05月13日 07時02分
ちょっと、苦労したね。
なんせ、山勘ですから。
@***[0]〜[X]は、知らなかった。見て,なんとなく、理解できます。
HELLOみたいな、プログラム(落書きコピー)で、やっとです。
HELLOは、最後の部分必要無いので消しました。
複数の、FORMがあると、最後の、文字になるけど、1つだから、あれで。
結果オーライです。私の場合は、では。

John 1999年05月12日 03時08分
がんばって作ってますね!

warewan さんのプログラムについて,
いろいろ指摘したいけど,
こちらもまだよく分かってないし,
「なぜ,こんな風に書いたのだろう」なんて
まともに考えていたら,だだのミスだったり,
そちらも分からずに書いていたりで,
ちょっと頭が痛くなります。

しかし,まあ,両人ともいろいろ作っていっているうちに,
少しずつマスターできると思います・・・?

気にせず,がんばって作ってください。

ただし,できるだけ「いらない行」は書かないように!
シンプルに!(私もだけど)

さて,次は「foreach」です。
「Hello!」でも使っているようですが,
もう少し,その内容が分かる使い方をした
サンプルプログラムを期待します!

warewan 1999年05月11日 09時43分
HTMLファイルを、755に、してました。
時間が、間違えさせてますね。失礼。確かめも、してませんでした。

warewan 1999年05月11日 09時41分
splitは、いろいろやったが、何かを、消すだけ、
@warewan=split(/=/@pairs);
で、数字だけになったんだっけ。そのくらい。

warewan 1999年05月11日 09時35分
else {$b=('Hello! ');}何とかならないものか?
時間切れ!
後でCGI、HTMLの名前をかえたら、動かなくなった?
作りなおし(同じもの)で、OK。もー。

John 1999年05月11日 02時56分
ゆっくり作って行ってください!
「split」は動かず,ちょっとあせったでしょう。

エラーの原因は

@CGIプログラムのミス
AHTMLプログラムのミス
BPerl Lessonの設定入力ミス

さて,どれでしょう?

自宅サーバーで動いたのに・・・・。

私もありました。私の場合は@で
これがややこしくて,自宅サーバーでは動いたのです。

さて回答です。@〜Bではなく,
split.cgiのパーミッション(属性)が755になってなかった。
あわてるとこんなもんなんです。

さて,私も「split.cgi」を作ろうと思います。
自分でやらないと,ちゃんとマスターできないですから。

その間,復習・予習でもしといてください!

warewan 1999年05月10日 06時35分
FORM3は、あとで、勉強させてもらいます。

warewan 1999年05月10日 06時33分
ほい、よくわかりませんが、POSTで、'CONTENT_LENGTH'と、あとGETのなんとかが、決められてんでしょうね。
次は、今晩仕事ばで、

John 1999年05月10日 01時37分
GETで、?の後はたぶんなんでもいいけど
POSTと同じ処理を使いたいから,
OS=win&SEX=man&MEMBER=onという形式にするじゃない!

そらから,私はread関数の
read(STDIN $QUERY_DATA $ENV{'CONTENT_LENGTH'})
すべてデータだと勘違いしていた。

STDIN(標準入力)から $ENV{'CONTENT_LENGTH'}(データ数)だけ
データを読み, $QUERY_DATAに入れろという意味なんですね。

だから,$QUERY_DATAは例えば$rakugaki_DATAでもいいわけです。

さて,そろそろ

@pairs = split(/&/$QUERY_DATA)

にいきましょうか!

warewan 1999年05月09日 06時50分
改めて。GETで、?の後は、適当でいいのか?

warewan 1999年05月08日 06時37分
ほいほい、今日の仕事の休みにがんがえますが、POST・GETも勉強しないと。

John 1999年05月08日 02時41分
さて,次の行です!
@pairs = split(/&/$QUERY_DATA);
今回は,だだのコーピーじゃなく,工夫を!
バリエーションやその関数の動きが分かるように,
自分が使いこなせるように。

minibbsはどうも!まだ,中身は見てないけど
新しいのは画像を送るルーチンとライブラリファイルの活用。
そのうち,これもこのページでやりましょう!

では「 split 」のサンプルプログラム期待しています・・・・。

warewan 1999年05月06日 09時53分
CGIより、かきこみ方が、解りませんでした。
何か、間違えてます?
酔っ払いは、ツウカアには、なれない。
HTTPDが、引っかかって、CGIは、手付かずです。

warewan 1999年05月05日 06時40分
次、私が、なにかするんでしょうか?

John 1999年05月03日 03時55分
サンプルプログラムの作り方(例)

#!/usr/local/bin/perl

# ----------------------------------------------
#   タイトル (ファイル名: hogehoge.cgi )
# ----------------------------------------------

$Title = ' **** サンプルプログラム';

# ------------------- 関数 hogehoge ---------------


 @ ここに関数を使ったプログラムを書く!


# ----------------------HTML-------------------

print"Content-type: text/html\n\n";

print <<__HTML__;

<HTML>
<HEAD>
<TITLE>$Title</TITLE>
</HEAD>
<BODY bgcolor="#000000" text="#ffff99">

 Aその結果をここにHTMLをで
  表示する。
 
 つまり,関数で何ができたか,どう変わったかを!


</BODY>
</HTML>

__HTML__

exit;

この@とAの部分を書き換えればいい!
他の方法も考えないと行けない場合も
あるでしょうが。
 とりあえず,こんな形で進めましょう!

John 1999年05月03日 03時46分
これが「落書き帳」。そのまま。このプルグラムの1行1行を
学習していこうというわけです。その結果を「Perl Lesson」
に書き込んでいくのです。もちろん,warewanさんにも作ったものを
書き込んでもらいます。
その方法は次回に解説します。見れば判るかも?

次の行とは「落書き帳」の

$mon = sprintf("%02d" $mon + 1);
$day = sprintf("%02d" $day);
$hour = sprintf("%02d" $hour);
$min = sprintf("%02d" $min);

のことです。チャレンジを!