ネットワークトランスファーの後に改行を取り去るには?
[上に]
[前に]
[次に]
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
色々とありがとうございました。
[上に]
[前に]
[次に]