crypt関数/CGI設置について?

[上に] [前に] [次に]
「定説です」君 [E-Mail] 1999/12/14(火) 14:33:37
http://www2j.biglobe.ne.jp/~tatuta/_MENU.htm
上記URL先で配布されている「スライムブリーダー」というCGIを
設置したいのですが、crypt関数を使っているためなのかわかりませんが、
私のサーバ(interQ)では、上手く機能しませんでした。
>「500 internet Server error」と表示されます。
それで、配布先のCGIサンプルで使われているBiglobeなら
大丈夫だと思い、知り合いのHPスペースを借りて設置してみたのですが
ここでは、下記URL先のようになってしまいました。
http://www2u.biglobe.ne.jp/~majesty/cgi-bin/slm.cgi

結局、設置の仕方にも問題があるのかもしれません。。。(^^ゞ
配布先ではCGIサポートを行っていないので
改造方法と設置の間違箇所を教えていただけないでしょうか
よろしくお願いいたしますm(__)m

kala 1999/12/14(火) 15:00:22
まずはここをご参照ください。
http://www.tohoho-web.com/wwwcgi4.htm#CgiCheckList

> 改造方法と設置の間違箇所を教えていただけないでしょうか
というからには、改造したCGIを「.txt」形式にでもして公開することが必要です。

。。。君 [E-Mail] 1999/12/14(火) 16:17:27
ありがとうございました(^^)
間違箇所が判明して、Biglobeで正常に作動しました。

txt形式でReadMEとCGIスクリプトをアップしましたので
よろしくお願いします。
http://www2u.biglobe.ne.jp/~majesty/cgi-bin/slm_cgi.txt
http://www2u.biglobe.ne.jp/~majesty/cgi-bin/readme.txt
に置いておきました。
何から何まで申し訳ないですm(__)m

kala 1999/12/14(火) 22:34:54
まだ[解決]ではないのですね? 次は何を知りたいのでしょうか。

……単なる[解決]チェック忘れならごめんなさい。

nori 1999/12/14(火) 23:53:32
解決ではないのです(T_T)
Biglobeは借り物のHPスペースだから
crypt関数が使える無料HPスペースを探している所です(^^ゞ

できたら、crypt関数が使えないサーバでも機能するように
改良したいのですが。。。
そういう改良は簡単に出来るものなのでしょうか?
知識が乏しいもので、、、すみません(^^ゞ

B-Cus 1999/12/15(水) 00:02:20
本当に crypt が原因なのですか?
  #!/usr/local/bin/perl
  print "Content-type: text/plain\n\n";
  eval('crypt("a","b")');
  print $@ || "OK";
でエラーになりますか?

http://www2u.biglobe.ne.jp/~majesty/cgi-bin/slm_cgi.txt
> if ($checkpass eq crypt ($inputpass,substr ($checkpass,0,2))) {
> # FreeBSDサーバはsubstr ($checkpass,3,2)に変更
わざわざ salt を切り出す必要はないので、
 if ($checkpass eq crypt ($inputpass,$checkpass)) {
でいいはず。
# ここで言っても仕方がないのだけど。

。。。君 1999/12/15(水) 01:15:06
う〜ん(^^ゞ
でも、BiglobeとFreeWebで同じものを
転送してみたのですが、
Biglobeだと(CGIが)作動して、
FreeWebだと、Internal Server Error(500)と表示されるんです。
この様な場合でもサーバが対応していないからと一様に言えないのでしょうか?

さっそく
if ($checkpass eq crypt ($inputpass,$checkpass)) {
を書き換えて試してみたのですが
エラーのままでした(T_T)

kala 1999/12/15(水) 01:20:06
実験しましたが、interQでも動きませんでした。でもcryptが原因ではないようです。

ところで、別のCGIスクリプトを実行して、そのエラーメッセージを返すスクリプトはどう記述するんでしたっけ。以前このラウンジで見かけた覚えはあるのですが、すっかり忘れてしまって……。

B-Cus 1999/12/15(水) 01:27:10
> この様な場合でもサーバが対応していないからと一様に言えないのでしょうか?
だから、その原因は本当に crypt なのですか? ということを言っているのです。

もし誰かが crypt を使わないように改造してくれたのに、結局 crypt が
原因ではなかったらその人に悪いでしょ。先に確認してみては? ってこと。

> さっそく
> if ($checkpass eq crypt ($inputpass,$checkpass)) {
> を書き換えて試してみたのですが
これは作者に向けて言ったことなので関係ないです。気にしないで下さい。

> そのエラーメッセージを返すスクリプト
先頭あたりに use CGI::Carp qw(fatalsToBrowser); を挿入。
コンパイルエラーはダメみたいだけど。

とあるInterQユーザー 1999/12/16(木) 03:09:31
>kalaさん
>InterQのCGIサーバでのcrypt関数動作について
私のとこでは、動きました。<InterQです。

>B-Cusさん
>#!/usr/local/bin/perl
>print "Content-type: text/plain\n\n";
>eval('crypt("a","b")');
>print $@ || "OK";
>でエラーになりますか?
横レス失礼します。
私のとこで実験しました結果、<InterQのCGIサーバにて
「OK」と返ってきました。

#前後逆になってしまいましたが(^^;)
#ここからが本題・・・
>kalaさん
http://www2u.biglobe.ne.jp/~majesty/cgi-bin/slm_cgi.txt
見させていただきました。
ついでにローカル環境(WIN98 + httpd + perl for win32)にて、
動作実験してみましたが、エラーが出ました。
#slm_cgi.txt→slm.cgiに変更&動作実験
↓エラー表示
Unrecognized character \203 at パス(^^;)\slm.cgi line 1123.
#ちなみにエラーの意味はわかりません。(^^;)
んで、1123行目の周辺を見てみましたが、
↓1127行目にて
[<A HREF="$backurl" target="_top">$backtitle</A>]$mania[<A HREF="$cginame?mode=rank">ランキング</A>][<A HREF="$cginame?mode=title" target="top">タイトル</A>]<BR>
の、
$mania[<A HREF=(略)>ランキング</A>]
の部分が、配列として解釈されてしまって、エラーが出ているようです。
#perlのバージョンとかで、解釈が違ってくるのでしょうか?
ためしにその部分を、
$mania [<A HREF=(略)>ランキング</A>]
      ↑ここに半角スペースを入れてみる
と、書き換えてみたら、エラーが出なくなりました。

ただ、ファイルオープンエラーがでました。(^^;)
たぶん、関係した画像ファイルなどが無いためだと思われます。
よって、完全に動作するかどうかは、分かりませんし、
別のエラーが出るのかもしれません。

こんなところで、どうでしょうか?

とあるInterQユーザー 1999/12/16(木) 03:13:26
レスの相手を間違えました。
>kalaさん
ではなく、
>「定説です」君 さん
でした。

失礼しました。m(_ _)m

。。。君 1999/12/16(木) 16:35:00
すみません。昨日は忙しくてカキコできませんでした。
みなさんご協力、感謝!感謝!です(^^)

>InterQのCGIサーバでのcrypt関数動作について
>私のとこでは、動きました。<InterQです。
あぅ!(>_<)
俺がいけないのかな。。。
interQでも動かないままです。

>#!/usr/local/bin/perl
>print "Content-type: text/plain\n\n";
>eval('crypt("a","b")');
>print $@ || "OK";
>でエラーになりますか?
>私のとこで実験しました結果、<InterQのCGIサーバにて
>「OK」と返ってきました。
上記部分はどこに書き入れれば良いのですか?
#!/usr/local/bin/perlは、判るのですが、
残りの箇所は良くわからないです(^^ゞ
未だに設置出来ないから、どんどん深みにはまってます(泣)

とあるInterQユーザー 1999/12/17(金) 01:23:13
>。。。君さん
>上記部分はどこに書き入れれば良いのですか?
B-Cusさんが示してくれた、
>#!/usr/local/bin/perl
>print "Content-type: text/plain\n\n";
>eval('crypt("a","b")');
>print $@ || "OK";
は、サーバでcrypt関数が使用できるかどうかを判別するためのperlスクリプトです。
サーバでcrypt関数が使用できれば、「OK」と返ってきますし、
使用できなければ、エラーが返ってきます。
というわけで、slm.cgiのどこそこに書き入れるということでは、ありません。

では、本題へ・・・
slm.cgiの1127行目を変更してみて下さい。
変更前:
[<A HREF="$backurl" target="_top">$backtitle</A>]$mania[<A HREF="$cginame?mode=rank">ランキング</A>][<A HREF="$cginame?mode=title" target="top">タイトル</A>]<BR>
変更後:
[<A HREF="$backurl" target="_top">$backtitle</A>]$mania\[<A HREF="$cginame?mode=rank">ランキング</A>][<A HREF="$cginame?mode=title" target="top">タイトル</A>]<BR>

たぶん、これで動くと思うのですが・・・
もしダメなら、改めて・・・

バーチャルヒューマン [E-Mail] [HomePage] 1999/12/17(金) 09:42:46
>変更後:
>[<A HREF="$backurl" target="_top">$backtitle</A>]$mania\[<A HREF
↓ これでもOK!
[<A HREF="$backurl" target="_top">$backtitle</A>]${mania}[<A HREF

ヽ( ^^)ノ君 1999/12/17(金) 15:06:07
[[解決]]
みなさん ありがとう御座いました。
無事 interQやfreewebで設置できました(^^)

知識不足の私に付き合っていただいた
皆さんには感謝の言葉でいっぱいです (−人−)感謝!

[上に] [前に] [次に]