ネットワークトランスファーの後に改行を取り去るには?

[上に] [前に] [次に]
meso 1999/10/24(日) 02:00:24
ホームページを最近作りました。
CGIの知識は全くありませんがとほほさんがつくったのをそのまま使おうと思って説明通りに(プロバイダーと、とほほさんのと両方)何回も試しましたが上手く行きません。エラーが出てくるのですが何の事だか分かりません。エラー内容は:

Your script produced this error: (Maybe you didn't strip carriage returns after a network transfer?)

〜あなたのスクリプトは次のようなエラーを招きました。:(ネットワークトランスファーのあと、改行をストリップ(取り去る?)しなかったのではないでしょうか?)〜

アドレスは:
http://mesomeso.tripod.com/cgi-bin/chat/
です。

誰か助けてくれませんか?
お願いします。

meso 1999/10/24(日) 02:40:52
[[解決]]
問題が解りました。
私の使っているサーバー(Tripod)はSleepやSystemなどのコマンドをセキュリティの関係で使えない様にしているようです。
お騒がせしました。

B-Cus 1999/10/24(日) 02:56:40
ほんと? tripod の perl は、sleep や system を使うと
 Maybe you didn't strip carriage returns after a network transfer?
というメッセージを出すの? sleep や system の行をコメントアウト
したら動いたの?

meso 1999/10/24(日) 03:01:58
[[解決]]
諦めました・・・。
Sleepの代わりに何を置いたら良いのかわからないので・・。
他には
  system
  exec
  fork
  chown
  chmod
  sleep
  unlink
  kill
  eval
  all commands involving sockets
が使えないそうです。

B-Cus 1999/10/24(日) 03:05:26
だから、
 Maybe you didn't strip carriage returns after a network transfer?
の原因が
> 私の使っているサーバー(Tripod)はSleepやSystemなどの
> コマンドをセキュリティの関係で使えない様にしているようです。
であると判断した根拠は何ですか? と質問しているのです。

僕ならまず FTP で put するとき バイナリモードで転送してしまったのでは
ないかと疑いますが。


ところで、改行コードを CRLF にしたら、
 Maybe you didn't strip carriage returns after a network transfer?
というメッセージが出る環境は何なんでしょうか。

ちなみに FreeBSD/Solaris + perl5 だと、
 #!/usr/local/bin/perl(CRLF)
の時点で command not found となり、1行目だけ
 #!/usr/local/bin/perl(LF)
にして、他を CRLF にすると
 Illegal character \015 (carriage return) at ./a line 2.
 (Maybe you didn't strip carriage returns after a network transfer?)
となりました。でも「1行目だけ CRLF」なんて普通あり得ないよねぇ。

meso 1999/10/24(日) 03:13:02
情報ありがとうございます。
けど、私、CGIのことさっぱり解らないんです。
とほほさんが作ったのをそのまま使おうとしただけなので。
使おうとしたCGIスクリプトに『sleep』が使われていたので勝手にそのせいだと決め付けました。他の理由も解らないので・・・。
Tripodにファイルをアップロードする時はバイナリーかASCIIか選べないんです。向こうが自動的に適切なモードを選んでくれるそうです。

B-Cus 1999/10/24(日) 03:19:37
なるほど。わかりました。

もし sleep/system が原因で Maybe you didn't strip ... になる環境が
あるなら、そのことを頭の片すみに入れておきたかったので、確認したかったのです。

meso 1999/10/24(日) 03:22:42
色々とありがとうございました。

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