|
>>3437 perler > <form action="$ENV{'SCRIPT_NAME'}?para2=data2" method='POST'> という書き方をした場合、メソッドは POST ですが para2=data2 は 環境変数 QUERY_STRING 経由で渡されます。よって、 POST なら標準入力から読む というやり方では、QUERY_STRING からの入力は無視されてしまいます。 >>3438 超初心者 初心者ということであれば、FreeBSD 4.9-RELEASE がお勧めです。 http://www.h4.dion.ne.jp/~katsuwo/index.html |
|
>>3434 初心者 シェルの一行目を #/bin/csh -x に変更して再実行すれば 実際に変数に何が入ってくるか確認できますよ。 |
|
No. 3436 の通りすがりさん、No. 3440 zshさん、 書き込みありがとうございます 私の環境が違うのかも知れません。下記のように表示されてるので。 Digital UNIX V4.0B (Rev. 564 Digital UNIX Japanese Support V4.0A (rev. 3.1) で、やっぱりおっしゃるとおり実行したのだけど、だめなんです。 if ( $a == $b ) の、右辺の変数名が、分かりません、とかそう言うエラーが出るので、 結局 @ df=$a - $b if ($df == 0 ) で、何とかうまくいきました。 ありがとうございました。 |
|
>>3431 68user こんにちは、Muleです。 すみません、コマンドでtelnet起動、失敗しました(^^; これが出来たら、結構使えるスクリプトになるかもと思っていたのですが、やはり無理がありますかね... コード全体の流れとしては、 プロキシのチェックルーチンをよび、flagが立っていればif分岐、という典型的な処理です。 if($flag){ #telnetを起動し、接続元をファイルに記録する処理 } else{ my $img = 'file.gif'; my $byte = (stat $img)[7]; print "Content-Type: image/gif\n"; print "Content-Length: $byte\n\n"; open IMG,$img; binmode((binmode(IMG),$|=1)[0]); print map {$_} <IMG>; close IMG; } やはり、イメージで呼び出すという方式では、FTPで、というのが、現実的でしょうか? socketと組み合わせれば、なんとかなりそうな気がしていろいろ試してみましたが...上手く行かないものですね。 |
|
>>3442 Mule わたしは http は proxy 経由かもしれないが、ftp や telnet は proxy 経由でないことを期待して、クライアント側から ftp や telnet でサーバに接続させるように仕向けて、 IP アドレスを取得する と思っていたのですが、そうではないようですね。 > コード全体の流れとしては、プロキシのチェックルーチンをよび、 > flagが立っていればif分岐、という典型的な処理です。 「proxy のチェック」というのは公開 proxy サーバかどうかを 調べるため、クライアントの IP アドレスに接続してみる、という ことですよね。 telnet で接続、というのは http://x68000.startshop.co.jp/~68user/unix/pickup?sleep てな方法でできます。もちろん代わりに Socket を使ってもいいです。 方法はともかく、公開 proxy かどうかの判断はやろうと思えばできます。 で、なぜ if($flag){ #telnetを起動し、接続元をファイルに記録する処理 } と proxy チェックルーチンを呼んだ後 ($flag が確定した後) に もう一度 telnet を実行する必要があるのでしょうか? #telnet を起動し、クライアントの IP アドレスに接続。 #接続できたら $flag=1; if($flag){ #接続元をファイルに記録する処理 open(LOG, ">log"); print LOG "$ENV{REMOTE_ADDR} is open proxy\n"; close(LOG); } とすればよいのではないですか? |
|
>>3439 68user お返事ありがとうございました。 なるほど、それがperlの仕様なんですね^^ 原因がわかりました。 実は <form action="$ENV{'SCRIPT_NAME'}?para2=data2 method='POST'> <input type="hidden" name="mode" value="res"> <input type="submit" value="返信"> </form> とやっていたためPOSTとGETが混在してしまっていたようでした。 この形ではPOSTをGETにかえても成功しませんでした。 管理人さんの助言でこれに気づくことができました。 どうもありがとうございました。 結果だけお伝えしておきます。 method='POST'の場合 http://xxx.cgi?para2=data2となりmode=resがおくられない。 method='GET'の場合 http://xxx.cgi?mode=resとなりpara2=data2がおくられない。 でした。 |