うぇぶ会議室の部屋4一括表示
[表示範囲:194〜216][スレッドモード]


[NEW] フォロー記事投稿 記事のキャンセル
From: とけおん <tokeon@hotmail.com>
Subject: 投稿記事を管理者にもメールでつうちするには?
Date: 2000/05/17 16:52:56

とけおんといいます。はじめまして。

「うえぶ会議室」をイントラ上で設置し、業務に生かすべく、
NT+PWSにインストールし、テスト完了しました。Goodです。

そこで、投稿記事が、管理者メールアドレスにも送信できる様な
カスタマイズは可能でしょうか?
(HTMLでPOSTで行うと、Outlookの送信
 ウインドウが開き、直接再入力が必要となると思われるので、
 perlからメール送信する方法を選択したいです。)

具体的なやり方をご教授頂ければ幸いです。


[RE] フォロー記事投稿 記事のキャンセル
From: いしどう <ishidou@po.iijnet.or.jp>
Subject: Re: 投稿記事を管理者にもメールでつうちするには?
Date: 2000/05/19 02:11:09
Reference: mesh.forum.4/00194

いしどう@自宅 です。

5月17日に、とけおんさんは書きました。

>そこで、投稿記事が、管理者メールアドレスにも送信できる様な
>カスタマイズは可能でしょうか?

可能だと思います。
(試したわけではないので確実に、とはいえませんが)

とおけんさんが、何かしらの方法でNT上でCGIからメールを送信
する方法をご存知だという前提でお話します。

article.cgi の中の post_article というサブルーチンの中で
実際に投稿された記事がファイルへ書き出されています。ここで
メールを管理者に送るようにスクリプトを修正すればご希望のこ
とが実現できるんじゃないかと思います。

あってます?>にあさん(^^;;


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mvg.biglobe.ne.jp>
Subject: Re: 投稿記事を管理者にもメールでつうちするには?
Date: 2000/05/22 22:03:35
Reference: mesh.forum.4/00195

5月19日に、いしどうさんは書きました。

>5月17日に、とけおんさんは書きました。
>
>>そこで、投稿記事が、管理者メールアドレスにも送信できる様な
>>カスタマイズは可能でしょうか?
>
>article.cgi の中の post_article というサブルーチンの中で
>実際に投稿された記事がファイルへ書き出されています。ここで
>メールを管理者に送るようにスクリプトを修正すればご希望のこ
>とが実現できるんじゃないかと思います。

ええ、投稿されたのと同じHTML文書をメールでも受けるようにするならば
そこに送信機構を組み込めば良いですね。

# メールでは内容だけplain textで受けたい、とかだと色々書き換えなくては
# いけないでしょうけど...

あたしは、NT Sarverでのメールプログラムって全然分からないんですけど、
sendmail見たいに、標準入力に流し込む形でインターフェース出来る物なのかしら?


[RE] フォロー記事投稿 記事のキャンセル
From: TAD <hotani@mua.biglobe.ne.jp>
Subject: Re: 投稿記事を管理者にもメールでつうちするには?
Date: 2000/05/23 14:54:12
Reference: mesh.forum.4/00197

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

>あたしは、NT Sarverでのメールプログラムって全然分からないんですけど、
>sendmail見たいに、標準入力に流し込む形でインターフェース出来る物なのかしら?

BlatJというのを以前見かけたことがあります。
Vectorのサイトにもおいてあります。

具体的な使用方法を見つけられませんでしたが、標準入力からデータを渡せると書いてあります。


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mvg.biglobe.ne.jp>
Subject: Re: 投稿記事を管理者にもメールでつうちするには?
Date: 2000/05/23 21:23:42
Reference: mesh.forum.4/00198

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

>BlatJというのを以前見かけたことがあります。
>Vectorのサイトにもおいてあります。
>
>具体的な使用方法を見つけられませんでしたが、標準入力からデータを渡せると書いてあります。

なるほど、自分でMX引いたりしないで、SMTPサーヴァに受け渡すインターフェースだけを
提供する物ですね。

考えてみれば、大抵の場合はこれで十分なので、自前でこの機能を実装してしまえば
sendmailの使用の可否は考えずに済みますね。

# 管理者宛メール機能add-inぐらいだったら簡単に出来るかな?
## どなたか作って公開しませんか? (って、おいおい)


[RE] フォロー記事投稿 記事のキャンセル
From: いしどう <ishidou@po.iijnet.or.jp>
Subject: Re: 投稿記事を管理者にもメールでつうちするには?
Date: 2000/05/23 22:23:12
Reference: mesh.forum.4/00198

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

>5月22日に、にあさんは書きました。
>
>>あたしは、NT Sarverでのメールプログラムって全然分からないんですけど、

こういったページもあります。
あと、IIS4.0以降に標準でついてくる SMTP サービスを、Win32::OLE モジュール
経由で CDONTS コンポーネントを使う、って言う方法もあります。

>>sendmail見たいに、標準入力に流し込む形でインターフェース出来る物なのかしら?

こっちはTADさんがお答えになっているんで(^^)


[RE] フォロー記事投稿 記事のキャンセル
From: とけおん <tokeon@hotmail.com>
Subject: Re: 投稿記事を管理者にもメールでつうちするには?(ありがとうございました)
Date: 2000/05/24 14:37:53
Reference: mesh.forum.4/00194

とけおんです。
いしどうさん、にあさん、TADさん ご教授ありがとうございました。

いしどうさんレス情報から、早速 WinNT、PWS上での
メールツールを探し。TADさん 提供のHP(河馬屋さん)
にたどり着き、インストールしました。
(インストールはこちらから
 簡単に出来ました。)
試しに、河馬屋さんのサンプルとおりのスクリプトをarticle.cgi中post_articleの
	open(NEW, ">$FORUMPATH/new_arrival") && close(NEW);
の直前に組み込みました。

use Win32::OLE;
$oBasp = Win32::OLE->new('basp21');	#Basp21オブジェクトの作成
#メールの送信
$oBasp->SendMail("SMTPサーバ名", 	         #SMTPサーバ
                'tokeon@hotmail.com',        #宛先
		'サーバです',               #送信元
		"Basp21でメール", 		#件名
		"簡単なメール\nMailTest\n2行目も簡単\n",
					#本文
""			#添付ファイルに""を指定
	);

が、perlライブラリ配置の違いからか、use Win32::OLE; でlocateエラー
となり、そこを変更しました。

use OLE;
$oBasp = OLE->new('basp21');	#Basp21オブジェクトの作成
#メールの送信
$oBasp->SendMail("SMTPサーバ名", 		#SMTPサーバ
		'tokeon@hotmail.com', 	#宛先

		'サーバです', 	#送信元
		"Basp21でメール", 		#件名
		"簡単なメール\nMailTest\n2行目も簡単\n",
					#本文
		""			#添付ファイルに""を指定
	);

としましたが、今度はOLEAUT32.dllがlocateエラーとなり、
PWSの特性と思い、PWS設定ルートのscriptフォルダーにOLEAUT32.dllをコピーしてやりOKでした。
で、以下のスクリプト変更し一段落です。(^。^;)フウ
@site.pl:

#投稿メール送信用
$smtpsvr ='smtpsvr';#SMTPサーバ名
$forumurl = 'http://tokeon.xx.xx.xx';#先頭url

の追加。

Aforum.pl:

#投稿記事メール送信用
$main'SMTPSVR = $smtpsvr;#メールサーバ名
$main'FORUMURL = $forumurl;#会議室ホームページ

の追加

Barticle.cgi:
のsub make_article {の最終行に以下の処理追加

#メールアーティクル作成
	$mail_article = <<"EOL";
●タイトル: $ids{'subject'}
●投稿者From: $link 
●日時分: $date
●投稿本体(リンク):$FORUMURL$FORUMROOT/$room/$ref.html
☆ここから投稿内容(html形式で見づらい場合 上の「投稿本体」リンクをご覧ください☆

$text

☆ミ☆彡☆ミ☆彡 ここまで  ☆ミ☆彡☆ミ☆
☆ フォロー投稿は下のリンクからも出来ます ☆
 $FORUMURL$CGIROOT/article.$CGI?room=$post_room&ref=$mes 

EOL

次にsub post_article {の
	open(NEW, ">$FORUMPATH/new_arrival") && close(NEW);
行直前に

#メールホーマット作成(TEXT)
	$mail_body = <<"EOL";
$FORUMTITLE $FORUMURL$CGIROOT/index.cgi
$mail_article
$FORUMTITLE 管理人
EOL

use OLE;
$oBasp = OLE->new('basp21');		#Basp21オブジェクトの作成
#メールの送信
$oBasp->SendMail($SMTPSVR, 			#SMTPサーバ
		"$OWNER"  , 	#宛先 一般
		'tokeon@hotmail.com', #送信元
		"☆ミ $FORUMTITLEへの投稿です($ids{'subject'})☆彡", 	#件名
		$mail_body,
						#本文
		""				#添付ファイルに""を指定
	);



といった具合です。
あとは、
送信先に投稿&参加(ユーザカスタマイズした)人のメールアドレスにも送る事や、
ユーザカスタマイズでメール通知の拒否登録等が出来る用にしたいです。

こういった情報は、どのあたりのスクリプトを参照すればいいでしょうか?


[NEW] フォロー記事投稿 記事のキャンセル
From: koba <mailto:ykoba@dcn.ne.jp>
Subject: サブルーチンが動かない?
Date: 2000/05/30 13:30:23

どうにもまともに動かず困ってます。
 site.plを自分の環境に書き換え、index.cgi を実行したのですが、
Internal Server Error になり、error_logに
Premature end of script headers: /home/users/koba/public_html/forum/article.cgi
が表示され動かず。
 コマンドラインから >perl index.cgi を実行してみても何も出力されず。
最後の &forum'convert_print(*output); でhtmlを吐き出すと思われるのですが、
何も表示されないので、とりあえずこの行をコメントアウトして、print $output; に
してみたら表示されました。 なぜ?

 またとりあえずフレームとして表示されたので、Testの部屋 で試験してみたのですが、
新規記事の場所をクリックしたら、やっぱり Internal Server Error。
これは、article.cgi によって表示されるはずですので、同様にコマンドラインから
>perl article.cgi としてみたら表示されるのは、Bad Forum の文字。
コマンドラインからステップ実行でデバッグしてみると、
$title = forum::get_title($room); 
&WarningMsg('Bad Forum') if ($title eq '');
のところだと思います。つまり、$title に正しく値が入っていないのでしょうか?

このようになってしまうのは一体何が原因なのでしょうか?
なお、環境ですが、TurboLinux4 上で Perl5 です。
また、LINUX上でいろいろいじりたかった関係上、ファイルは全て
EUC(LF)に変換してあります。
 ほかに何か考えられる原因ってありますか?

 また、perlは /usr/bin/perl ですので、各ファイルの最初の行も
もちろん書き換えてあります。

(ちなみに、Perlは超初心者です。連想配列を知っている程度)

どなたかお知恵を・・・・


[RE] フォロー記事投稿 記事のキャンセル
From: <Hasunuma@attglobal.net>
Subject: Re: サブルーチンが動かない?
Date: 2000/05/30 18:54:00
Reference: mesh.forum.4/00202

当方の会議室に書いていただいたkobaさんの質問を
こちらの会議室にたらい回しにしてしまったのは私です。

どうもすみませんでした >> kobaさん


[RE] フォロー記事投稿 記事のキャンセル
From: TAD <hotani@mua.biglobe.ne.jp>
Subject: Re: サブルーチンが動かない?
Date: 2000/05/30 21:44:32
Reference: mesh.forum.4/00202

5月30日に、kobaさんは書きました。

>どうにもまともに動かず困ってます。
> site.plを自分の環境に書き換え、index.cgi を実行したのですが、
>Internal Server Error になり、error_logに
>Premature end of script headers: /home/users/koba/public_html/forum/article.cgi
>が表示され動かず。

>なお、環境ですが、TurboLinux4 上で Perl5 です。
>また、LINUX上でいろいろいじりたかった関係上、ファイルは全て
>EUC(LF)に変換してあります。

過去の記事にあったような気がするのですが、
文字コードを単純にEUCに変換しただけではうまく動かない、という回答を
昔にあさんがしていたと思います。違ってたらごめんなさい。

まずは、コード変換しないままで動かしてみたらどうでしょうか。


>これは、article.cgi によって表示されるはずですので、同様にコマンドラインから
>>perl article.cgi としてみたら表示されるのは、Bad Forum の文字。
>コマンドラインからステップ実行でデバッグしてみると、
>$title = forum::get_title($room); 
>&WarningMsg('Bad Forum') if ($title eq '');
>のところだと思います。つまり、$title に正しく値が入っていないのでしょうか?

article.cgiは記事の投稿用のフォームを出力するCGIですが、
これを実行するときには最低限、どこの部屋への投稿かを指定する必要があります。
「新規記事投稿」のリンクを見るとわかりますが、'article.cgi?room=hogehoge'と
なってますよね。
なので、上記の「Bad Forum」が出力されるのはarticle.cgiが正常に動作している
証拠です。(^^)


[RE] フォロー記事投稿 記事のキャンセル
From: koba <mailto:ykoba@dcn.ne.jp>
Subject: Re: サブルーチンが動かない?
Date: 2000/05/31 12:42:44
Reference: mesh.forum.4/00204

うぇぶ会議室についての質問等、どこに書けばいいのか
わからずあちこち?に書いてしまいました。^^;
ごめんなさい。

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

>過去の記事にあったような気がするのですが、

 もうしわけありません。過去の記事はまだ全て読んでなかったり
します。いちお検索もしてみたんですが・・
# 質問する前には過去の記事をちゃんと読んでから・・っていう大鉄則
#は知っているつもりなのに、そうしてませんでした。

>文字コードを単純にEUCに変換しただけではうまく動かない、という回答を
>昔にあさんがしていたと思います。違ってたらごめんなさい。

 なるほど・・
 以前、Perlの勉強がてらに簡単なPerlを書いたときにも同様の問題に
ぶつかりました。詳細はよく覚えてないのですが、漢字コードというよりは、
改行コードの問題だと思ってます。
 つまり、「CR+LF」だとだめで、「LF」のみじゃないと。
おそらく、作者さまもこのことを前提として配布している Shift-JISのファイル
も改行コードは LF のみとなってますね。EUCに変換したときにももちろん
LFのみとしました。


>まずは、コード変換しないままで動かしてみたらどうでしょうか。

 実は投稿してからやってみたのですが、結果は同じでした。

>>これは、article.cgi によって表示されるはずですので、同様にコマンドラインから
>>>perl article.cgi としてみたら表示されるのは、Bad Forum の文字。
>>コマンドラインからステップ実行でデバッグしてみると、
>>$title = forum::get_title($room); 
>>&WarningMsg('Bad Forum') if ($title eq '');
>>のところだと思います。つまり、$title に正しく値が入っていないのでしょうか?
>
>article.cgiは記事の投稿用のフォームを出力するCGIですが、
>これを実行するときには最低限、どこの部屋への投稿かを指定する必要があります。
>「新規記事投稿」のリンクを見るとわかりますが、'article.cgi?room=hogehoge'と
>なってますよね。
>なので、上記の「Bad Forum」が出力されるのはarticle.cgiが正常に動作している
>証拠です。(^^)

 そうですね。投稿してから、それに気がつきました。
ただ、、、本来の動きとしては、この場合の出力って、「Bad Forum」と出力
されるだけではなく、それに続いて HTMLのソースを吐きますよね?
 じゃないと、ブラウザで表示できないから。
 ですが、私の場合には、続くはずのHTMLのソースが吐き出されないのです。
「Bad Forum」だけしか吐き出されないのでやっぱりブラウザで表示されない
のです。

 そこで、先に投稿してからいくつか試しました。
1) もともと index.cgi にて&forum'convert_print(*output); でHTMLを吐き出して
  くれなかったので、print $output; に変更したのと同様のことを、article.cgi 
 でも行った。  しかし現象はかわらず、HTMLを吐き出してくれない。
  そこで強引に
    $title = forum::get_title($room); 
  により取得されるはずの titleを $title = 'test' と強引にセット。
    -> 投稿フォームが表示された。
       しかし、入力し、投稿、プレヴュー を押してもまた投稿フォームに
      もどっちゃう・・ やっぱり $titleに正しく値が入っていないから?

2) UNIXマシンではなく、Windows98上にて、ANHTTPDと、ActivePerl にて
   動作を試みた。(漢字コード等変更せず)
    -> site.pl への必要な情報を盛り込んでみたらあっさりとHTMLは表示。
        ただし、上記と同じように、投稿フォームにて投稿/プレヴューしようと
       しても元に戻っちゃう・・・

 UNIX上のPerlはPerl5ですので、パッケージ内のサブルーチンの呼び方も
 ためしに、Perl5の記述にしてみましたがやっぱり変わらず。。
  &forum'convert_print(*output);  -> form::convert_print(*output);

 一体何が問題なのだろう・・・参ってます。
 Perlの知識がなくても、簡単に設定できる・・・・・・と思ってたのに今は、
Perlの本と格闘中です。


[RE] フォロー記事投稿 記事のキャンセル
From: TAD <hotani@mua.biglobe.ne.jp>
Subject: Re: サブルーチンが動かない?
Date: 2000/06/01 14:19:11
Reference: mesh.forum.4/00205

5月31日に、kobaさんは書きました。

>うぇぶ会議室についての質問等、どこに書けばいいのか
>わからずあちこち?に書いてしまいました。^^;

「灯台もと暗し」といいますか... (^^;;

>5月30日に、TADさんは書きました。
>
>>過去の記事にあったような気がするのですが、
>
> もうしわけありません。過去の記事はまだ全て読んでなかったり
>します。いちお検索もしてみたんですが・・
># 質問する前には過去の記事をちゃんと読んでから・・っていう大鉄則
>#は知っているつもりなのに、そうしてませんでした。

別にそういう意味で言ったわけではないので気にしないでください。
私だって探せそうにありませんし... (^^;;
記憶違いかもしれませんから。 (^^;;;;

>>文字コードを単純にEUCに変換しただけではうまく動かない、という回答を
>>昔にあさんがしていたと思います。違ってたらごめんなさい。
>
> なるほど・・
> 以前、Perlの勉強がてらに簡単なPerlを書いたときにも同様の問題に
>ぶつかりました。詳細はよく覚えてないのですが、漢字コードというよりは、
>改行コードの問題だと思ってます。
> つまり、「CR+LF」だとだめで、「LF」のみじゃないと。

そういう理由ではなかったと思います。<じゃぁ、どういう理由だ!(--メ)

この辺の答えはにあさんを待ちましょう。(^^;;

>おそらく、作者さまもこのことを前提として配布している Shift-JISのファイル
>も改行コードは LF のみとなってますね。

これはそうではなくて、ただ単ににあさんがHP-UX(標準でS-JISをサポートしているUNIX)を使っているから、
じゃないかとにらんでます。

>>まずは、コード変換しないままで動かしてみたらどうでしょうか。
>
> 実は投稿してからやってみたのですが、結果は同じでした。

コード変換する前のもの、というよりにあさんの所からダウンロードしたまま
(とは言っても、最低限各スクリプトの1行目のperlのパスは修正して)
のファイルをサーバに置いて実行するとどうなりますか、フレームは表示されませんか?

>ただ、、、本来の動きとしては、この場合の出力って、「Bad Forum」と出力
>されるだけではなく、それに続いて HTMLのソースを吐きますよね?
> じゃないと、ブラウザで表示できないから。
> ですが、私の場合には、続くはずのHTMLのソースが吐き出されないのです。
>「Bad Forum」だけしか吐き出されないのでやっぱりブラウザで表示されない
>のです。

この「Bad Forum」を出力しているのは、forum.plの以下の関数ですが、
そこではHTTPヘッダに続けてHTMLを出力しその中で「Bad Forum」も出力していますから、
「Bad Forum」だけが出力されるというのもおかしい気がするのですが。

「「Bad Forum」だけしか吐き出されないのでやっぱりブラウザで表示されない」とおっしゃってますが、
これはコマンドラインから実行したときの話ということでよいですか?

sub main'WarningMsg {
	local($output);
	local($help) = &help('error');
	local($reason) = @_;

	$output = "Content-Type: text/html\n\n";
	$output .= <<"EOL";
<HTML>
<HEAD><TITLE>$reason</TITLE></HEAD>
$body
<H1>$reason
$help</H1>
EOL
(以下省略)


最初の投稿に以下の記述がありましたが、
HTTPヘッダが出力されないとこんなエラーが出ましたっけ?>識者の方

「index.cgi を実行したのですが、Internal Server Error になり、error_logに
 Premature end of script headers: /home/users/koba/public_html/forum/article.cgi」

とするとやっぱり上の部分の関数が正常に動作していないということなのでしょうかね。

>1) もともと index.cgi にて&forum'convert_print(*output); でHTMLを吐き出して
>  くれなかったので、print $output; に変更したのと同様のことを、article.cgi 
> でも行った。  しかし現象はかわらず、HTMLを吐き出してくれない。
>  そこで強引に
>    $title = forum::get_title($room); 
>  により取得されるはずの titleを $title = 'test' と強引にセット。

そういうことをしなくても、ブラウザからURLを指定する時に
下のように'room='で会議室を指定してあげれば投稿フォームは表示されますよ。

http://www〜.jp/〜/article.cgi?room=mesh.npc.2

>2) UNIXマシンではなく、Windows98上にて、ANHTTPDと、ActivePerl にて
>   動作を試みた。(漢字コード等変更せず)
>    -> site.pl への必要な情報を盛り込んでみたらあっさりとHTMLは表示。
>        ただし、上記と同じように、投稿フォームにて投稿/プレヴューしようと
>       しても元に戻っちゃう・・・

これはなぜでしょうね。
オリジナルのスクリプトのままなら正常に動作すると思うのですが...

これ以上は何とも言えません。すみません。

全体的に言えますが、なにをやったらどうなったのかをもう少し具体的に説明して
いただけると助かるのですが。
あるいは設置しようとしているうぇぶ会議室の場所を提示してもらってもいいですし。
もしかしてローカルな環境ですか?

> Perlの知識がなくても、簡単に設定できる・・・・・・と思ってたのに今は、
>Perlの本と格闘中です。

それはそれで、勉強になってよいと思いますよ。
あとあと役に立つでしょうから。(^^)


[RE] フォロー記事投稿 記事のキャンセル
From: koba <mailto:ykoba@dcn.ne.jp>
Subject: Re: サブルーチンが動かない?
Date: 2000/06/02 11:22:04
Reference: mesh.forum.4/00207

6月1日に、TADさんは書きました。

ごめんなさい。確かに いろいろ勝手いじったために、話をややこししくしてしまいました。
 ・漢字コードを変更
 ・print文に変更
 ・関数の呼び方を変更
などなど・・・

 ちょっと上記は忘れてください ^^;  話を仕切りなおします。

 ダウンロードし、該当のディレクトに格納した後にやったことは以下のとおり
です。(ほかのことはやってません) OSは TurboLinux 4 、Perlは最初からついていた Perl5 です
・site.plを修正 -> $forumroot などを自環境に設定
・各 CGIの先頭の行の修正 --> 自環境では /usr/bin/perl
・各ファイルのパーミションの設定

これだけやってみて、
  http://www2.なんちゃら.jp/~koba/test/forum/index.cgi
とブラウザから指定(なんちゃらは、省略)
 そして、ブラウザには Internal Server Error が出て、/var/log/httpd/error_log には
Premature end of script headers: /home/users/koba/public_html/test/forum/index.cgi
とかかれています。

 そこで、念のため、各ファイルのあるディレクトに移動後 コマンドラインより
>perl index.cgi
と実行。・・・・・何も出力がない。次のプロンプトが表示されるだけ。

という次第です。 つまり、HTMLの出力がないんです。だからブラウザも表示のしようが
ないのかな? って思ってます。

 この件は、

>この「Bad Forum」を出力しているのは、forum.plの以下の関数ですが、
>そこではHTTPヘッダに続けてHTMLを出力しその中で「Bad Forum」も出力していますから、
>「Bad Forum」だけが出力されるというのもおかしい気がするのですが。

 と同じで、「Bad Forum」 だけが出力されちゃって、HTMLを一切出力していないのと
同様です。

>「「Bad Forum」だけしか吐き出されないのでやっぱりブラウザで表示されない」とおっしゃってますが、
>これはコマンドラインから実行したときの話ということでよいですか?

 はい。そうです。ブラウザからだとHTML出力できず、 Internal Server Error となってしまうので、
試しに コマンドラインから実行しました。本来、article.cgi は引数を伴って実行されるわけですが、
仮に引数無しで、つまり ブラウザにて,http://www2.biglobe.ne.jp/%7Enir/Forum/article.cgi と指定しても
HTMLは出力されてますよね? ですが私の環境では  http://www2.なんちゃら.jp/~koba/test/forum/article.cgi
と指定すると、やっぱり、 Internal Server Error です

>とするとやっぱり上の部分の関数が正常に動作していないということなのでしょうかね。

 なのかなぁ・・・って思ってたりもしてます。

>オリジナルのスクリプトのままなら正常に動作すると思うのですが...

 ですよね?
 つまり、「おいらの設定が間違ってる」の一言だとは理解してるのですが、、、
それがどこなのかが、難しくて。

>全体的に言えますが、なにをやったらどうなったのかをもう少し具体的に説明して
>いただけると助かるのですが。
>あるいは設置しようとしているうぇぶ会議室の場所を提示してもらってもいいですし。
>もしかしてローカルな環境ですか?

 (先にいろいろやっちゃったので)話があちらこちらになってしまって真に申し訳ありません。
本当は、URLを提示したいところなのですが、完全にCloseなローカルな環境でして・・
重ね重ね申し訳ありません。


[RE] フォロー記事投稿 記事のキャンセル
From: TAD <hotani@mua.biglobe.ne.jp>
Subject: Re: サブルーチンが動かない?
Date: 2000/06/02 20:20:33
Reference: mesh.forum.4/00211

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

>ごめんなさい。確かに いろいろ勝手いじったために、話をややこししくしてしまいました。
> ・漢字コードを変更
> ・print文に変更
> ・関数の呼び方を変更
>などなど・・・
>
> ちょっと上記は忘れてください ^^;  話を仕切りなおします。

了解しました。

> ダウンロードし、該当のディレクトに格納した後にやったことは以下のとおり
>です。(ほかのことはやってません) OSは TurboLinux 4 、Perlは最初からついていた Perl5 です
>・site.plを修正 -> $forumroot などを自環境に設定
>・各 CGIの先頭の行の修正 --> 自環境では /usr/bin/perl
>・各ファイルのパーミションの設定
>
>これだけやってみて、
>  http://www2.なんちゃら.jp/~koba/test/forum/index.cgi
>とブラウザから指定(なんちゃらは、省略)
> そして、ブラウザには Internal Server Error が出て、/var/log/httpd/error_log には
>Premature end of script headers: /home/users/koba/public_html/test/forum/index.cgi
>とかかれています。

うーん、index.cgiの問題でもなさそうに思えるんですけど
ほかのPerlのスクリプトは動くんでしょうか。

#!/usr/bin/perl
print   "Content-Type: text/html\n\n";
print   "<HTML><BODY><H1>It's OK!</H1></BODY></HTML>";
exit(0);

や

#!/bin/sh
echo 'Content-Type: text/html'
echo ''
echo '<HTML><BODY><H1>It's OK!</H1></BODY></HTML>'

等を実行権をつけてコマンドラインからフルパス指定で実行するとどうなりますか。

> そこで、念のため、各ファイルのあるディレクトに移動後 コマンドラインより
>>perl index.cgi
>と実行。・・・・・何も出力がない。次のプロンプトが表示されるだけ。
>
>という次第です。 つまり、HTMLの出力がないんです。だからブラウザも表示のしようが
>ないのかな? って思ってます。

HTMLの出力以前にヘッダの出力もないから、「Premature end of script headers」のエラーになっている
ということで、そこは現象と原因がはっきりした感じですね。

真の原因「なぜ何も出力がないか」は残りますが...(^^;;

> この件は、
>
>>この「Bad Forum」を出力しているのは、forum.plの以下の関数ですが、
>>そこではHTTPヘッダに続けてHTMLを出力しその中で「Bad Forum」も出力していますから、
>>「Bad Forum」だけが出力されるというのもおかしい気がするのですが。
>
> と同じで、「Bad Forum」 だけが出力されちゃって、HTMLを一切出力していないのと
>同様です。

あれっ、これはarticle.cgiの話ですよね。
今までの話題はindex.cgiだったと思いますが。
それに「Bad Forumだけが出力」されるのはやはりおかしいです。

>>「「Bad Forum」だけしか吐き出されないのでやっぱりブラウザで表示されない」とおっしゃってますが、
>>これはコマンドラインから実行したときの話ということでよいですか?
>
> はい。そうです。ブラウザからだとHTML出力できず、 Internal Server Error となってしまうので、
>試しに コマンドラインから実行しました。本来、article.cgi は引数を伴って実行されるわけですが、
>仮に引数無しで、つまり ブラウザにて,http://www2.biglobe.ne.jp/%7Enir/Forum/article.cgi と指定しても
>HTMLは出力されてますよね? ですが私の環境では  http://www2.なんちゃら.jp/~koba/test/forum/article.cgi
>と指定すると、やっぱり、 Internal Server Error です

仕切り直したあとでも、article.cgiをコマンドラインから実行すると「Bad Forumだけが出力」
されるのでしょうか。

>>オリジナルのスクリプトのままなら正常に動作すると思うのですが...
>
> ですよね?
> つまり、「おいらの設定が間違ってる」の一言だとは理解してるのですが、、、
>それがどこなのかが、難しくて。

そちらの設定が悪いと決めつけてるわけではないですが、いろいろと正確な情報を
もらうためにやかましいことを言ってすみませんです。

> (先にいろいろやっちゃったので)話があちらこちらになってしまって真に申し訳ありません。

いろいろやってみるのはいいことだと思いますが、何をしたらどうなったのかを正確に
記録する(説明する)ということをしないと、第三者に有益な情報とならない、ということです。

>本当は、URLを提示したいところなのですが、完全にCloseなローカルな環境でして・・
>重ね重ね申し訳ありません。

とすると、kobaさんにがんばってもらうしかないですね...(^^;;


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mvg.biglobe.ne.jp>
Subject: Re: サブルーチンが動かない?
Date: 2000/06/03 01:52:20
Reference: mesh.forum.4/00212

にあです。しばらく出てこられなくて済みませんでした。m(__)m
# TADさんやいしどうさんには迷惑かけっぱなしですね。(^^;;

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

>6月2日に、kobaさんは書きました。
>
>> ダウンロードし、該当のディレクトに格納した後にやったことは以下のとおり
>>です。(ほかのことはやってません) OSは TurboLinux 4 、Perlは最初からついていた Perl5 です
>>・site.plを修正 -> $forumroot などを自環境に設定
>>・各 CGIの先頭の行の修正 --> 自環境では /usr/bin/perl
>>・各ファイルのパーミションの設定
>>
>>これだけやってみて、
>>  http://www2.なんちゃら.jp/~koba/test/forum/index.cgi
>>とブラウザから指定(なんちゃらは、省略)
>> そして、ブラウザには Internal Server Error が出て、/var/log/httpd/error_log には
>>Premature end of script headers: /home/users/koba/public_html/test/forum/index.cgi
>>とかかれています。

うわぁぁ、これは恐れていたことが現実になったような気が... (^^;;

>うーん、index.cgiの問題でもなさそうに思えるんですけど
>ほかのPerlのスクリプトは動くんでしょうか。
>
>#!/usr/bin/perl
>print   "Content-Type: text/html\n\n";
>print   "<HTML><BODY><H1>It's OK!</H1></BODY></HTML>";
>exit(0);
>
>や
>
>#!/bin/sh
>echo 'Content-Type: text/html'
>echo ''
>echo '<HTML><BODY><H1>It's OK!</H1></BODY></HTML>'
>
>等を実行権をつけてコマンドラインからフルパス指定で実行するとどうなりますか。

たぶん、何の問題もなく動くことでしょう。予想が正しければ。(^^;;

>> そこで、念のため、各ファイルのあるディレクトに移動後 コマンドラインより
>>>perl index.cgi
>>と実行。・・・・・何も出力がない。次のプロンプトが表示されるだけ。

>> と同じで、「Bad Forum」 だけが出力されちゃって、HTMLを一切出力していないのと
>>同様です。

これらの動作から考えられる事は、一言で言うと「うぇぶ会議室」のスクリプトが
もはや時代遅れになってしまった、と言うことです、恐らく。(^^;;;

kobaさんに頼みがあるのですが、「perl -v」や「perl -V」の出力を
正確に教えていただけないでしょうか?


さて、原因は何かと言いますと、perlの最近のヴァージョンでは、スレッドの機能を
サポートしたヴァージョンがあるそうなんですが、それらのヴァージョンでは、
$_ 変数の typeglob が出来なくなったそうなのです。
# つまり my で宣言した変数などとおなじ扱いです。

うぇぶ会議室のスクリプトでは、いくつかの場所で typeglab による変数受け渡しを
使っていますが、将に問題となっている出力ルーティンの辺りは $_ の typeglab を
ふんだんに使っている所でして、これらの typeglab が全て効かないと仮定すると
ご覧になったような現象が現われるはずです。

と言うことで、前向きの解決法は、うぇぶ会議室のスクリプトを全て $_ の typeglab
無しに書き換えて、thread 機能対応の perl でも動くようにすること。そして、
後ろ向きの解決法は、thread 未対応の古い perl を使うことです。(^^;;

# さすがにメジャーヴァージョンアップから3年以上が過ぎてしまい、
# 色々な所で時代の流れから取り残されつつあります。
## そのことは良く分かってはいるんですが、なんともはや...


[RE] フォロー記事投稿 記事のキャンセル
From: いしどう <ishidou@po.iijnet.or.jp>
Subject: Re: サブルーチンが動かない?
Date: 2000/06/03 02:37:03
Reference: mesh.forum.4/00213

いしどう@自宅 っす。

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

>にあです。しばらく出てこられなくて済みませんでした。m(__)m

お疲れ様です (_ _)
# わたしもいま、はまり気味(^^;;

># TADさんやいしどうさんには迷惑かけっぱなしですね。(^^;;

あいえいえ、お気遣いなく(^o^)

>さて、原因は何かと言いますと、perlの最近のヴァージョンでは、スレッドの機能を
>サポートしたヴァージョンがあるそうなんですが、それらのヴァージョンでは、
>$_ 変数の typeglob が出来なくなったそうなのです。
># つまり my で宣言した変数などとおなじ扱いです。

あれ?
最新版(5.6.0)をソースからコンパイルしたのがいま使ってるPC(Windows2000)
に入ってるんですけど、うぇぶ会議室は動作しましたよ。
(crypt()を仕込んでないんで、完全には動作しないんですが(^^;;;)

C:\>perl -V
Summary of my perl5 (revision 5 version 6 subversion 0) configuration:
  Platform:
    osname=MSWin32, osvers=4.0, archname=MSWin32-x86-multi-thread
    uname=''
    config_args='undef'
    hint=recommended, useposix=true, d_sigaction=undef
    usethreads=undef use5005threads=undef useithreads=define usemultiplicity=def
ine
    useperlio=undef d_sfio=undef uselargefiles=undef
    use64bitint=undef use64bitall=undef uselongdouble=undef usesocks=undef
  Compiler:
    cc='gcc', optimize='-g -O2', gccversion=
    cppflags='-DWIN32'
    ccflags ='-g -O2 -DWIN32  -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-s
trict-aliasing -DPERL_MSVCRT_READFIX'
    stdchar='char', d_stdstdio=define, usevfork=false
    intsize=4, longsize=4, ptrsize=4, doublesize=8
    d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=12
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize
=4
    alignbytes=8, usemymalloc=n, prototype=define
  Linker and Libraries:
    ld='gcc', ldflags =' -L"c:\perl\5.6.0\lib\MSWin32-x86-multi-thread\CORE" -L"
c:\gcc-2.95.2-1\lib"'
    libpth=c:\gcc-2.95.2-1\lib
    libs= -lmsvcrt -lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32
-ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lwsock32 -lmpr -lwinm
m -lversion -lodbc32
    libc=-lmsvcrt, so=dll, useshrplib=yes, libperl=libperl56.a
  Dynamic Linking:
    dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' '
    cccdlflags=' ', lddlflags='-mdll  -L"c:\perl\5.6.0\lib\MSWin32-x86-multi-thr
ead\CORE" -L"c:\gcc-2.95.2-1\lib"'


Characteristics of this binary (from libperl):
  Compile-time options: MULTIPLICITY USE_ITHREADS PERL_IMPLICIT_CONTEXT PERL_IMP
LICIT_SYS
  Built under MSWin32
  Compiled at May 28 2000 03:35:08
  @INC:
    c:/perl/5.6.0/lib/MSWin32-x86-multi-thread
    c:/perl/5.6.0/lib
    c:/perl/site/5.6.0/lib/MSWin32-x86-multi-thread
    c:/perl/site/5.6.0/lib
    .

C:\>perl -v

This is perl, v5.6.0 built for MSWin32-x86-multi-thread

(以下略)


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mvg.biglobe.ne.jp>
Subject: Re: サブルーチンが動かない?
Date: 2000/06/03 12:44:21
Reference: mesh.forum.4/00214

6月3日に、いしどうさんは書きました。

>最新版(5.6.0)をソースからコンパイルしたのがいま使ってるPC(Windows2000)
>に入ってるんですけど、うぇぶ会議室は動作しましたよ。

ふーむ。

>C:\>perl -V
>Summary of my perl5 (revision 5 version 6 subversion 0) configuration:
>  Platform:
>    osname=MSWin32, osvers=4.0, archname=MSWin32-x86-multi-thread

>    usethreads=undef use5005threads=undef useithreads=define usemultiplicity=define

>C:\>perl -v
>This is perl, v5.6.0 built for MSWin32-x86-multi-thread

ほほう、一口にスレッドと言っても問題ない物とそうでない物とがあるのですね。

試しに手元のsolaris7マシンでスレッド対応とそうじゃ無い物の2つのperl5.6.0を
コンパイルし以下のスクリプトを実行して見ました。

----- ここから -----
#!/usr/local/bin/perl

require Config;
import Config;

foreach (keys %Config) {
        next unless (/thread|osname|osvers|archname/ && defined($Config{$_}));
        printf("%s = %s\n", $_, $Config{$_});
}

sub child {
        local(*_) = @_;
        print "child: $_\n";
        $_ = 'child($_)';
}

sub parent {
        local($str) = 'parent($str)';
        local($_) = 'parent($_)';
        child(*str);
        print "parent: $_\n";
}

print "-----\n";
parent();
----- ここまで -----

----- 結果(スレッド無し) ----
archname = sun4-solaris
osname = solaris
osvers = 2.7
archname64 = 
i_pthread = define
myarchname = sun4-solaris
old_pthread_create_joinable = 
-----
child: parent($str)
parent: parent($_)
----- ここまで -----

----- 結果(スレッド有り) ----
archname = sun4-solaris-thread
osname = solaris
osvers = 2.7
archname64 = 
i_pthread = define
myarchname = sun4-solaris
old_pthread_create_joinable = 
use5005threads = define
usethreads = define
-----
child: parent($_)
parent: child($_)
----- ここまで -----

どうも、いしどうさんの結果と合わせてみると、interpreter-based threadsでは
問題は出ないけど、5.005 version threadsを使っている物では上手く動かない、
と言うことでしょうか?

# いしどうさんの結果で 'usethreads=undef' になっているのがチョット気になりますが。


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mvg.biglobe.ne.jp>
Subject: Thread対応perlでのうぇぶ会議室の不具合
Date: 2000/06/03 13:27:43
Reference: mesh.forum.4/00215

6月3日に、にあは書きました。

>試しに手元のsolaris7マシンでスレッド対応とそうじゃ無い物の2つのperl5.6.0を
>コンパイルし以下のスクリプトを実行して見ました。

>----- 結果(スレッド無し) ----
>archname = sun4-solaris
>osname = solaris
>osvers = 2.7
>archname64 = 
>i_pthread = define
>myarchname = sun4-solaris
>old_pthread_create_joinable = 
>-----
>child: parent($str)
>parent: parent($_)
>----- ここまで -----
>
>----- 結果(スレッド有り) ----
>archname = sun4-solaris-thread
>osname = solaris
>osvers = 2.7
>archname64 = 
>i_pthread = define
>myarchname = sun4-solaris
>old_pthread_create_joinable = 
>use5005threads = define
>usethreads = define
>-----
>child: parent($_)
>parent: child($_)
>----- ここまで -----
>
>どうも、いしどうさんの結果と合わせてみると、interpreter-based threadsでは
>問題は出ないけど、5.005 version threadsを使っている物では上手く動かない、
>と言うことでしょうか?
>
># いしどうさんの結果で 'usethreads=undef' になっているのがチョット気になりますが。

Solaris7でもinterpreter-based threads対応のヴァージョンを作って試してみました。
案の定上手く動きます。

----- 結果(interpreter-basedスレッド有り) ----
archname = sun4-solaris-thread-multi
osname = solaris
osvers = 2.7
archname64 = 
i_pthread = define
myarchname = sun4-solaris
old_pthread_create_joinable = 
useithreads = define
usethreads = define
-----
child: parent($str)
parent: parent($_)
----- ここまで -----


[NEW] フォロー記事投稿 記事のキャンセル
From: ころり <ynishiji@cij.co.jp>
Subject: Perl4の入手法について
Date: 2000/06/01 11:25:26

今更ですが、
Perlバージョン4(Win版、jperlは×)を
入手したいのですが。。。

色々、サイトを見て回ったりしましたが
見つかりません。

何処で手に入るでしょう?

どなたか、ご存知の方教えてやって下さい。
お願いします。


[RE] フォロー記事投稿 記事のキャンセル
From: いしどう@会社 <ishidou@jpn.hp.com>
Subject: Re: Perl4の入手法について
Date: 2000/06/01 20:15:12
Reference: mesh.forum.4/00206

いしどう です。

6月1日に、ころりさんは書きました。

>今更ですが、
>Perlバージョン4(Win版、jperlは×)を
>入手したいのですが。。。

>何処で手に入るでしょう?

ftp://ftp.intergraph.com/pub/win32/perl/perldel.zip

かなぁ…

動くかどうか、試してないので、わかりません(^^;;


[RE] フォロー記事投稿 記事のキャンセル
From: TAD <hotani@mua.biglobe.ne.jp>
Subject: Re: Perl4の入手法について
Date: 2000/06/01 20:44:16
Reference: mesh.forum.4/00206

6月1日に、ころりさんは書きました。

>今更ですが、
>Perlバージョン4(Win版、jperlは×)を
>入手したいのですが。。。
>
>色々、サイトを見て回ったりしましたが
>見つかりません。

探したとは思いますが、CPANにもperl4はもう無いんですね。


以上23記事(キャンセル分を含む)


・ ホームペーヂに戻る
nir@mvg.biglobe.ne.jp
Last Update: 7 March 1998