トップページ⇒php
983コメント345KB

CGIだけど、なんか質問ある?part4

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。01/09/18 18:17ID:plR9HC2E
print "くだらねぇー質問はココから始めろや!\n";

print<<HTML_END;
<a href="http://corn.2ch.net/test/read.cgi?bbs=php&key=988727833" target="_blank">旧スレ</a>
HTML_END
0136名無しさん@お腹いっぱい。 01/10/13 02:23ID:???
DOT2つってこれじゃなくて? -> .
0137名無しさん@お腹いっぱい。01/10/13 02:23ID:???
うわヤな言い方だ
s/僕も/僕は/ (-_-)
013813401/10/13 02:48ID:Deyy6KfQ
>>135
おお。さんきゅ。セキュリティかー。
0139名無しさん@お腹いっぱい。01/10/13 03:34ID:qXCBod/U
またまたcookieについてです。今作っているのが

ローカルマシン
 ↓
CGI( LWP::UserAgent、HTTP::Cookies使用 )
 ↓
目的のサイト

という中継ツールなのですが、「目的のサイト」のcookieを
ローカルマシンに保存することはできました。
しかしそれを「目的のサイト」側から読ませることができません。

具体的には以下のようにやっています。
----------------------------------
$ua = LWP::UserAgent->new;
$ck = HTTP::Cookies->new;
$hd = HTTP::Headers->new;
$req= HTTP::Request->new( 'GET', 'http://www.hoehoe.com/' );

### ブラウザの cookie情報をドメインを書き換えて登録
foreach $ckey ( keys %COOKIES ){
  $ck->set_cookie( , $key, $COOKIES{$key}, '/', '.hoehoe.com', , , ,60*60*24*365*10 );
}

$ck->add_cookie_header( $req );
$ua->cookie_jar( $ck );

$res = $ua->request( $req );
$ck->extract_cookies( $res );
----------------------------------

ドメイン名を書き換えて HTTP::UserAgent に登録って出来るのでしょうか?
0140名無しさん@お腹いっぱい。01/10/13 06:40ID:bzY0j0uY
すみません。
カウンターなんですけど、
ソースにはちゃんと出てるのに
画像が表示されないのはなぜですか?

<img src="cgi-bin4/ecount.cgi?6"width="6" height="13">

こんな感じで設置してるのですけど。
0141名無しさん@お腹いっぱい。01/10/13 07:48ID:???
>140
まず基本的なこととして、カウンターのURLを直接入力してちゃんと表示されるか確認してみよう。
それで表示されたら単なるURLの指定ミス。
表示されなかったらスクリプトの問題。
スクリプトのソースを公開したまへ。
014214001/10/13 08:49ID:bzY0j0uY
>>141
わざわざ有難う御座いますです。
ログファイルのパス:OK!
ログファイルのパーミッション:OK!
画像:./gif/0.gif → OK!
画像:./gif/1.gif → OK!
画像:./gif/2.gif → OK!
画像:./gif/3.gif → OK!
画像:./gif/4.gif → OK!
画像:./gif/5.gif → OK!
画像:./gif/6.gif → OK!
画像:./gif/7.gif → OK!
画像:./gif/8.gif → OK!
画像:./gif/9.gif → OK!
ロック形式:symlink
ロックディレクトリのパス:OK!
ロックディレクトリのパーミッション:OK!

ちゃんとOKでてるのになぜか画像表示されない・・・
0143名無しさん@お腹いっぱい。01/10/13 08:52ID:???
>142
そうじゃなくて。
http;//xxxxxxxx.com/cgi-bin4/ecount.cgi?6
でカウンターは表示されるの?
014414001/10/13 09:01ID:bzY0j0uY
>>143
はい。画像はちゃんと表示されました。
0145名無しさん@お腹いっぱい。01/10/13 09:07ID:???
>144
じゃあ、ソース公開きぼん。
ソースを見ないと画像の表示されない理由はわからないよ。
Content-typeが間違ってるとかじゃないの?
014614001/10/13 09:23ID:bzY0j0uY
ttp://www.kent-web.com/count/ecount.html?

kentのecountなんですけど。。

open(IMG,"$imgdir$view$tail") || &error;
print "Content-type: image\/$mime\n\n";
binmode(IMG);
binmode(STDOUT);
print <IMG>;
close(IMG);

こんな感じなんですが間違っているのかどうか
さっぱり分かりませんです。
0147名無しさん@お腹いっぱい。01/10/13 10:04ID:???
http;//xxxxxxxx.com/cgi-bin4/ecount.cgi?6

で画像が表示されるなら

<img src="cgi-bin4/ecount.cgi?6"width="6" height="13">

が間違ってるんだろ。
0148名無しさん@お腹いっぱい。01/10/13 10:35ID:???
>147
そうだ。
ちょっと眠かったからボケてしまった。
スマソ。>140
0149 01/10/13 11:50ID:???
015013901/10/13 14:33ID:qXCBod/U
>>139

$ck->set_cookie( , $key, $COOKIES{$key}, '/', '.hoehoe.com', , , ,60*60*24*365*10 );

↑でドメイン、パスを書き換えて UserAgentに cookieを登録することは
出来ましたが、目的のサーバーからは見えないようです。

HTTP::UserAgentって自分の $ENV{'HTTP_COOKIE'} を持つことは
できないのですか?
0151名無しさん@お腹いっぱい。01/10/13 14:51ID:???
Cで全ての環境変数を表示させることはできますか?
getenv()をどう使ったら全部表示させられるか教えてください。
0152名無しさん@お腹いっぱい。01/10/13 15:01ID:c5AddB8U
>>151
int main(int argc, char **argv, char **envp) {以下略

あとはenvpから取得。つーのを愛用してます。
0153名無しさん@お腹いっぱい。01/10/13 15:15ID:???
>>151
main() の第3引数を使え。
getenv() は特定の環境変数だけだろ。
0154名無しさん@お腹いっぱい。01/10/13 17:16ID:???
ネットに存在するアーカイブ内のファイルが抽出できるCGIってないですかね?
melt.cgi/www.hoge.net/hoge.lzh/readme.htm

とするとhoge.lzh内のreadme.htmが表示できるみたいな奴。
0155名無しさん@お腹いっぱい。01/10/13 17:33ID:???
>>154
このスレに書いたということは、そのやり方を教えてくれという事か?
とりあえずLWPでアーカイブを取ってきて
適当なモジュールなり外部プログラムなりで展開して
目的の文書を探す、という感じだと思うが。
まぁ非効率的だな。
0156名無しさん@お腹いっぱい。01/10/13 17:51ID:???
サーバ上のアーカイブと直にデータがやり取りできる
プロトコルって、あったら便利かもなー。
そういうのがあれば、>>154みたいなCGIも効率的に書けそう。
015715101/10/13 17:53ID:???
>>152-153
ありがとうございます。
main関数って引数があったんですね(^_^;てっきりvoid型かと・・・・
0158JAPU@見知らぬ国のトリッパー ◆dcddJAPU 01/10/13 18:06ID:???
extern char **environ;
ってのもあるな。

何種類かのUNIXで調べたけど、全部であったからそれなりに移植性はありそう。
(FreeBSD, OSF1, Linux)
0159名無しさん@お腹いっぱい。01/10/13 18:16ID:???
>>158
environてのはANSIの規格にないんでしたっけ?
main()の第3引数はたしか(char**)型で環境変数が入るって
規定されてようなおぼろげな記憶。。。
0160JAPU@見知らぬ国のトリッパー ◆dcddJAPU 01/10/13 19:20ID:???
多分ANSIでは無かったような...

とりあえずこんなの発見。
http://cgi3.tky.3web.ne.jp/~yutakakn/misc/tips/clang/page1.html
0161名無しさん@お腹いっぱい。01/10/13 21:34ID:nMwqY5mo
スクロールバーの色を変えるのってどうやるの?
0162名無しさん@お腹いっぱい。01/10/13 21:36ID:???
>>161
こちらへどうぞ。
http://natto.2ch.net/hp/
0163名無しさん@お腹いっぱい。01/10/13 23:26ID:AeCpTnbA
アンケートを取るCGIを作っています。
現在のデータ形式は↓こんなのです。(本当はタブ区切りです)

めろん<>山田
めろん<>田中
めろん<>鈴木
すいか<>山田
すいか<>鈴木
いちご<>田中
りんご<>鈴木
ぶどう<>鈴木
ぶどう<>竹下
ぱいん<>山田

このままだと見づらいので、

3<>めろん<>山田<>田中<>鈴木
2<>すいか<>山田<>鈴木
2<>ぶどう<>鈴木<>竹下
1<>いちご<>田中
1<>ぱいん<>山田
1<>りんご<>鈴木

こんな風にデータをコンバートして重複部分をまとめたいんです。
ソートを使えばいいのかなと思ったんですが、アイデアが浮かびません。。
「こうすりゃいいだろゴルァ」という方法があったらご教授下さい。
0164素人的見解01/10/13 23:40ID:???
めろん<>山田
めろん<>田中
めろん<>鈴木
すいか<>山田
すいか<>鈴木
いちご<>田中
りんご<>鈴木
ぶどう<>鈴木
ぶどう<>竹下
ぱいん<>山田

↑これが@dataに入っているとして

foreach(@data){
$_ =~ s/\n//;
@mini = split(/<>/);
$count{"$mini[0]"} ++;
$touhyou{"$mini[0]"} .= "<>$mini[1]";
}
foreach(sort{$count{"$a"} => $count{"$b"}} keys %count){
push(@save_data,qq($count{"$_"}<>$_$touhyou{"$_"}\n);
}

もっと効率いい方法はあると思う・・・。
0165名無しさん@お腹いっぱい。01/10/13 23:59ID:???
#!/usr/bin/perl
use constant SEPARATE => qq(<>);
use strict;
my %data = ();
while(<DATA>){
chomp;
my($hoge, $fuga) = split SEPARATE;
push @{$data{$hoge}}, $fuga;
}

# 試しに出力
foreach (
sort{ @{$data{$b} } <=> @{$data{$a}} } keys %data
){
print "$_=>", join(",", @{$data{$_}}), "\n";
}
__DATA__
めろん<>山田
めろん<>田中
めろん<>鈴木
すいか<>山田
すいか<>鈴木
いちご<>田中
りんご<>鈴木
ぶどう<>鈴木
ぶどう<>竹下
ぱいん<>山田
016616301/10/14 00:39ID:???
>>164-165
上手くいきました!
これを参考にして、自分なりに改良していきたいと思います。
ありがとうございました。
0167名無しさん@お腹いっぱい。01/10/14 00:42ID:???
@data = qw[
めろん<>山田
めろん<>田中
めろん<>鈴木
すいか<>山田
すいか<>鈴木
いちご<>田中
りんご<>鈴木
ぶどう<>鈴木
ぶどう<>竹下
ぱいん<>山田
];

# 作業
foreach(@data) { # 集計
next if /^#/;
($item,$name) = split /<>/;
$count{$item}[0]++;
push(@{$count{$item}}, $name);
}

@save_data = # 配列に保存
map { join('<>', @{$count{$_}})."\n" }
sort { $count{$b}[0] <=> $count{$a}[0] }
keys %count;

# テスト出力
foreach( @save_data ) {
print;
}

__END__
016816701/10/14 00:43ID:???
あら,解決してたか。
016916601/10/14 00:59ID:l01Ytp8Q
>>167-168
ありがとうございます。
ソートが苦手なのでとても参考になります。
0170ほげっぷ01/10/15 00:16ID:???
WinでもUnixでもいいんですが,
ブラウザからでたGETやらPUTやらのメッセージを
生で見たいんですけど,いいツールありませんか?
0171まじで言ってるの?01/10/15 00:34ID:???
ネタ?
print $ENV{QUERY_STRING}; GET
print $OUT = <STDIN>; POST
PUTと言うMethodは知らない、勘違いしてたらスマソ
0172名無しさん@お腹いっぱい。01/10/15 00:38ID:???
HTTPヘッダが見たいとか・・・。
0173名無しさん@お腹いっぱい。01/10/15 00:44ID:???
>>171
リクエストヘッダをそのまま返すようなHTTPDを書くとか。
スマートな方法は知らん。
0174名無しさん@お腹いっぱい。01/10/15 00:44ID:???
>>170だった。スマソ
0175名無しさん@お腹いっぱい。01/10/15 00:46ID:???
telnet
0176名無しさん@お腹いっぱい。01/10/15 00:46ID:???
Etherealとかでパケットキャプチャする
017717101/10/15 00:51ID:???
>>172
ああ、そゆ意味なんかなぁ
http://ebi.2ch.net/test/read.cgi/php/995136198/l50
丁度良いスレが有った
オミトロンか横取り丸辺りで見れるよ、Regetとかでも過激にリダイレクト
されなきゃOK
質問の意味がわかんないの・・・
0178名無しさん@お腹いっぱい。01/10/15 01:18ID:???
IEやNetscapeが実際にどんなデータを送ってるのか見たくて
ローカルサーバを作ってアクセスしてみたのっておれだけ?
サーバつってもPerlのHTTP::Daemonで10行ぐらいのやつだけど・・・。
0179電動ナナシ01/10/15 01:32ID:???
>>171
PUT Method はあるぞ。WebDAV だと必須。
Configuring your WWW server to understand the PUT method
http://www.w3.org/Amaya/User/Put.html
018017101/10/15 01:44ID:???
(; ・∀・)ドヒャー 知らなかったよぅ
さんくす>>電動ナナシさん
つーかGET,HEAD,POST,PUT...等って、、まだ有るノカー
0181名無しさん@お腹いっぱい。 01/10/15 02:18ID:???
ここってみょーに素直な人多いな
何か他の(某保険板)板とかから来たら2chじゃ無いみたいで気持ち悪いよ w
もっと罵りあえや! (ウソ)
でもちょっとびっくりしたよ
0182名無しさん@お腹いっぱい。01/10/15 02:53ID:???
METHODはとりあえず八種類定義されてる。
http://www.ietf.org/rfc/rfc2616.txt
とりあえず一通り目を通しておくと良いよ。
018318201/10/15 02:54ID:???
なんかおれ変な日本語。いいさ、別に。
0184ほげっぷ01/10/15 08:15ID:???
ども,私はPUTとPOST間違ってました(w
結局,横取りして,ブラウザからのデータを見てみたいってのが要求で,
あんまりよく見てないけど,Proxomitron というのができそうです.

# でも,プロキシ使ってるなら,unix系のプロキシサーバでもできるのかな?
0185名無しさん@お腹いっぱい。01/10/15 10:40ID:xRor1qD5
マクで恐縮ですが、jcode.plのエラーが出ます。
# /\216([\241-\337])(\216([\336\337]))?/: unmatched () in regexp.
 File ':jcode.pl'; Line 645

これはMacJPerlを使ってるから出るのでしょうか?
0186名無しさん@お腹いっぱい。01/10/15 17:06ID:???
WEBページを画像として(サムネイル)保存するにはどうすればいいのでしょうか?

use ThumbnailMaker;

と記述があるスクリプトを見つけたのですが、
検索しても、ThumbnailMakerに関する情報がまったく見つかりません。
0187名無しさん@お腹いっぱい。01/10/15 17:23ID:???
http://www.horae.dti.ne.jp/~tkimata/cgi/reference/Perl.htm
こんなのか
C-Board作者氏の自作モジュールなのかな?
サイトは閉鎖?されてるようだ、今色々見てるけど・・・
018818601/10/15 17:32ID:???
>>187
そうです。C-boardさんのところです。
やっぱり、ThumbnailMakerは独自のモジュールなんですかね。
0189名無しさん@お腹いっぱい。01/10/15 17:56ID:???
IEコンポーネントかGeckoとかのレンダリングエンジンを使って画像に視点のかねー
0190ほげっぷ01/10/15 22:42ID:???
結局,Proxomitron使わないで,
tcpdumpで生パケットキャプチャしてlessで見た(w
0191名無しさん@お腹いっぱい。01/10/16 00:56ID:???
>>185
たぶんそうです。JPerlとjcode.plは共存できません。
どちらかにしてください。
0192名無しさん@お腹いっぱい。01/10/16 01:19ID:???
>185
5.004以上のJPerlなら問題なく使えるらしいが,Macのは5.002ベースのが最新。

jcode.plの一番上の行か,jcodeを呼ぶ直前に
no I18N::Japanese;
で使えるらしい。
http://world.std.com/~habilis/macjperl/MacJP5.2ReadMe.j.htm
0193名無しさん@お腹いっぱい。01/10/16 08:23ID:???
>>186
漏れも気になったんで調べてみた、多分189氏の言う様に
IEコンポーネントとかを使って出力したのをアップロードしてるんじゃないかな・・
Galeonなんかをちょっと嗅ぎ回ってみたんだけど、厨な漏れにはわからなかったよ
結局Xwdでスクリーンショットとかしか出来ないのか・・・
↓ここの300辺りから読んでみて
http://ebi.2ch.net/test/read.cgi/php/991313362/
役立たずスマソ
0194名無しさん@お腹いっぱい。01/10/16 10:06ID:Nx0C2n2e
>>186-188
これ?
http://www.horae.dti.ne.jp/~tkimata/cgi/reference/script/
0195名無しさん@お腹いっぱい。01/10/16 11:42ID:???
>>194
make.plという名前のスクリプトからThubmnailMakerを呼んでますね。
やはりこれはサーバ上で動くCGIじゃなくて、
ローカルで「サイトアクセス+キャプチャ+縮小画像作成」を
自動的に行うツール的なものじゃないかな。
0196名無しさん@お腹いっぱい。01/10/16 14:58ID:OTuIl/br
flockが使えない環境で、もっとも壊れにくいロックって
どのようは方法でしょうか。
ファイルは追記だけでなく、上書きモードでもオープンします。
0197名無しさん@お腹いっぱい。01/10/16 15:16ID:JPZjm6AB
>>196
やはりそれは、新しいファイルに書き出してからrename方式かなー。
ただしファイル書き込み時のシグナルトラップは必須。

ロックして上書きだと、自分自身を書き換えてる最中にプロセスが
止められたりするのが怖いかも。心配しすぎかも。かも。
とか言ってうちのカウンタは上書きモードでやってます。
カウンタ程度ならまあいいや、と。
0198名無しさん@お腹いっぱい。01/10/16 16:00ID:PzN9I2Gr
CGIをEzweb対応にするにはどうすればいいんだい?
教えてくれたまへ(´ー`)y─┛~~
0199名無しさん@お腹いっぱい。01/10/16 16:09ID:???
CGI(コモソゲートウェイイソターフェイス)はUAがどんなものであろうが関係ないと思うのだが。
020019601/10/16 16:21ID:OTuIl/br
>>197
ありがとうございます。
新しいファイルを作成するディレクトリのパーミッションを777に
設定していますが、新規作成すると404?になりますよね?
これを書換えが出来るようにperlでパーミッション変更できるのでしょうか。
0201名無しさん@お腹いっぱい。01/10/16 16:26ID:???
実はイソヂーの対応は結構めんどいなー
その聞き方じゃ駄目っぽい気がする。。。
0202名無しさん@お腹いっぱい。01/10/16 16:27ID:???
>>200
umask chmodで検索
0203名無しさん@お腹いっぱい。01/10/16 16:47ID:???
>>198
面倒がらずHDMLで検索すれ(´ー`)y─┛~~ 便利なサイトはイパーイある
0204名無しさん@お腹いっぱい。01/10/16 19:57ID:X5f/mGwI
激しく既出だと思うが、自分で書いたPerlのテスト方法が分かりません。
よかったらhttpd環境に合った初心者向けPerl解説ページを教えてください。
0205名無しさん@お腹いっぱい。01/10/16 20:08ID:???
httpdを書かなきゃ分かんないじゃん。 w
取り合えずよっぽどマニアックなのじゃない限り、Webが有るからそこの
FAQなんかを読んで設定すれ。
ここの初心者コーナーにも少しリンクがあったかも知れん↓
http://ebi.2ch.net/test/read.cgi/php/1000267444/l50
サーバが***まともに***動くようになれば後はcgiとかplって拡張子に実行設定すればOK
0206名無しさん@お腹いっぱい。01/10/16 23:01ID:???
静的htmlへのgateにcgiを使っています。
1:cgiでリクエストをパース、
2:リクエストにIf-Modified-Sinceが含まれて無ければ
  Last-Modified を返した後、Content-Locationでhtmlへ
3:リクエストにIf-Modified-Sinceが含まれていれば
  突合せをしてNot-ModifiedかContent-Locationを返す
と言った事がしたいと思っています。

が、cgi(perlスクリプト)でIf-Modified-Sinceを読む事が出来ません。
$ENV{If-Modified-Since}では無いのでしょうか?
また、3の場合出来れば差分だけを転送したい(rangeと言うヘッダが付いてくる?)のですが、
そう言う事は可能でしょうか?

何か物凄い勘違いをしてる気がするのですが、そもそもhttpdを飛び越して
cgiで Not-modified や HTTP 1.0 といったヘッダを返せるのかが分からないのです。

今rfc2616を精読中なんですが、、、
0207名無しさん@お腹いっぱい。01/10/16 23:13ID:???
↑ えと、目的はとにかく転送量を減らしたいのです。
gzip版と未圧縮を用意してそれぞれに飛ばす、と言うのは一応成功しています。

見当違いな事を言ってるかもしれませんが、お願いします。
0208名無しさん@お腹いっぱい。01/10/16 23:46ID:???
>>206-207
すべて可能だと思います。
RFC2616を読んでもわからない情報つーと、こんなものかな?

・If-Modified-Sinceヘッダは $ENV{HTTP_IF_MODIFIED_SINCE} という環境変数に入る。
・Apacheの介在なしにCGIの出力をそのまま返すには、nph-hoge.cgiのようなファイル名にする。

ぐらいかな?がんばってね。
0209名無しさん@お腹いっぱい。01/10/17 00:13ID:???
おお!!即レス&&ど真ん中ストライクですぅ (^-^*
>>208さま 謝謝です

>・If-Modified-Sinceヘッダは $ENV{HTTP_IF_MODIFIED_SINCE} という環境変数に入る。
なるほど!、%ENVを全て吐き出してみたのですが、これは僕のSetの仕方が
悪かったと思います。Apacheに横取りされてるのかな? などと逆切れ^^
しかかっていたのでした。

>・Apacheの介在なしにCGIの出力をそのまま返すには、nph-hoge.cgiのようなファイル名にする。
これも疑問だったんです、No Parse Headers ですか、なるほど!
この辺はApacheの設定とも関わりが有りそうですね。

何とか見通しが立ちました、相当な亀ですが追って結果報告させて
もらいます。 感謝です m(_ _)m ペコ
0210名無01/10/17 00:14ID:bB7m9GMd
>>206
・Not Modified は、ヘッダの部分に `Status: 304(CRLF)' を出力すればOK。
・Range ヘッダはレジュームリクエストの際に使うもので、サーバ側から送っても意味が無い。
0211名無しさん@お腹いっぱい。01/10/17 00:45ID:???
またまた感謝です >>210さま、今日はツイてる *^-^*
>・Not Modified は、ヘッダの部分に `Status: 304(CRLF)' を出力すればOK
了解です、nphでは全てのHTTPヘッダをスクリプトから送信出来るんですね、
僕が入っているレンタルサーバで利用出来る事が分かりました。

>・Range ヘッダはレジュームリクエストの際に使うもので、サーバ側から送っても意味が無い。
これに付いては少し困ってます、追記型のリンク集のような物なのですが
htmlの閉じタグ部分(</body></html>)がある為に、もろにリジュ-ムされると
タグがどんどん重複して行くと考えました、それでわざとタグ分を差し引いて
そこからDLして貰えないかと思いました。
HTMLの差分と言うのがあまり一般的では無いのかなぁ・・・・

まずは2616をよく読んでNot-modifiedに挑戦しようと思います。
ありがとうございます。 m(_ _)m ペコ
0212名無しさん@お腹いっぱい。01/10/17 07:46ID:???
>>211
"Statas: 304\n\n" で返すときは、逆にnphにしたらまずいです。

一般的に、nphの使用はあまり勧められていません。
それは、リクエストのHTTPのバージョンに合せて、「完全な」
レスポンスヘッダを出力しなければならず、とても面倒だからです。
Not Modifiedの時は、普通のCGIで
print "Statas: 304\n\n";
これだけ。
後のことはWebサーバに任せておけばいい。
0213雑談スレからお引っ越し01/10/17 10:02ID:NS90rX+W
微妙に板違いかもしれんけど質問させてくれ。
getメソッドで投稿受け付けるWebチャット作ったんだけど、
特定環境(マク+IE,マク+ネスケ6)から投稿すると、「二重投稿になる」
て言われてるんすよ。んで、ログ確認すると、同一時刻に同一
リクエストを2個受け付けてるのね。
対症療法として二重投稿禁止をすればいいんだけど、
こんな現象他に聞いたことある?もしかしてガイシュツだったら
回線切って首吊って(以下略 から、その前にもし知ってたら
教えておくれやす。
0214雑談スレからお引っ越し01/10/17 10:05ID:NS90rX+W
続き。
実験完了。被験者に串使わずに生IPでテストしてもらったっす。Apacheのログ見ると、
全く同一のGETメソッドを使用したリクエストが1秒間隔で2回きてるっす。
本人曰くsubmitボタン1回しか押してないそうなんだけど。
なおMacOS8.6 Mozilla0.9.4、0.9.5、IE5、iCab2.5.3 だそうで。
Cyberdog2.0とNC4.7は二重投稿にならないそうデス。
まあ、気になるのは、前者は標準でHTTP 1.1を使ってることなんだけど、
IEでHTTP1.0使ってテストしてもらってもやっぱり二重投稿になってたし。

一応吐き出すHTMLには
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
付けてるんだがのぉ。正直お手上げっす。マクなんて持ってないしな・・・

やはりPOSTに変更したほうがいいんだろか。
ちなみに上フレーム→発言表示 下フレーム→投稿フォームで、
発言表示と投稿は同一CGIを異なるパラメータで叩いている、という
やり方っす。とりあえずWinでは大丈夫なんだがなー

引き続き、被験者(藁 に、ローカルでリクエストとレスポンスを
ロギングしてくれ、と依頼中。先は長いかな。
0215雑談スレからお引っ越し01/10/17 10:10ID:NS90rX+W
鯖書き忘れた。WebARENAのApache1.3.20でつ。
Winな人からは全然二重投稿になるって報告きいてないんだよなー、頭いたい。
0216名無しさん@お腹いっぱい。01/10/17 10:10ID:???
自動リロードとかその辺?
よくわかんないけど。
021721601/10/17 10:11ID:???
ていうか初心者は帰ります。
おもしろそうだから成り行きは見守らせていただきます。
0218雑談スレからお引っ越し01/10/17 10:22ID:Di+gGr3E
ふっと板を見回してみると総合質問スレってないのね。まあいいや。
なんかWeb制作板で聞いても板違いと言われそうなんだけど
(かといってここもどうかと思うけど)、
ブラウザがリロードする時のキャッシュの使い方(レスポンス
ヘッダを正しく解釈するのかどうか)について言及したページとか
ないかな。「このブラウザは正しく実装されてないよ」とか。

自動リロードはねー、表示部のHTML吐き出す時に表示するためのCGI叩くURL
を10秒間隔でRefreshするようMETAタグ埋め込んであるんですよ。
投稿して即時にログファイルには反映されるけど、表示部のリロードタイミング
は投稿受付とは非同期でつ。
0219名無しさん@お腹いっぱい。01/10/17 10:37ID:???
つーか、IEにしても、Mozillaにしても
GETするたびに二重にリクエスト送ってるとしたら大問題なってるはず。
絶対ほかに原因がある。ソース出す気は無いの?
022029401/10/17 10:43ID:dyqQWczJ
ソースは出しますヨ。ただ、ちょっと今外からなので今晩にでもこちらに出します。
0221名無しさん@お腹いっぱい。01/10/17 11:42ID:DEbR16BG
はじめまして。
Web更新用CGI(複数ファイルアップロード型)を設置しようとしているものです。
(いまいるとこはFTPが使えないサーバ・・・←激つかえねー;;)

いくつかサーチエンジンで拾ってみたんですが(日本語CGIインデックスと
BestなんとかってCGI専門エンジン)、「セキュリティ保護のため
認められないコマンドがあります」と出て全滅。

何が引っかかるんでしょうか・・・。
(今までCGI設置して動かしたことはまったくありません(ゆ○チャ
触ったぐらい)
0222名無しさん@お腹いっぱい。01/10/17 15:43ID:???
>>214
>全く同一のGETメソッドを
REMOTE_ADDRも同一??

取り合えず、カウンター書いてその人にそこ見て貰えば?
多分それでも2重になる筈だけど、、
もしそれでもならなかったらMacが怪しいって事になるね
フォームボタン実装のバグとか  (笑

>やはりPOSTに変更したほうがいいんだろか。
逆にGETで書く意味を知り鯛んだけども、
基本的にaccess_logが無駄に大きくなるし
access_log見れる人なら誰でも発言をデコード出来るんだよ
改造って程でも無いし、モジュール使ってもいいし

まず小さいの書いて試す事を薦めるなあ
0223初心者@真性厨房01/10/17 17:16ID:fkYQZcMH
CGIでリンク先のURLを隠すのってどうやるんですか?
0224名無しさん@お腹いっぱい。01/10/17 17:19ID:???
>>223
マルチポストうざい。

☆ Webサイト制作初心者用スレッドver11 ☆
http://natto.2ch.net/test/read.cgi/hp/1002699258/236
0225名無しさん@お腹いっぱい。01/10/17 17:22ID:I56AAFP7
>>221
OSのコマンドを直に呼んだりしてるかモナー。
sysetm("mkdir ...") とか `mkdir ...` とか。
詳細はソースを見ないとわからない。
0226名無しさん@お腹いっぱい。01/10/17 17:59ID:???
>>221
サーバ管理者に聞くのが一番速い。

てゆーか「FTPが使えないサーバ」ってブラウザでアップする為の
機能が用意されているんだろ?
何でわざわざ自分で設置するの?
022729401/10/17 20:13ID:oPPxmXO4
>>222
REMOTE_ADDRも同一です(確認ずみ)
GETで書いたのは、単に作成の際UIを参考にしたチャット(今は消滅)が
GET使ってたので真似しただけで、あまり何も考えていないといえばいないです。
ソースは少し待ってちょ。まだ家に帰りついてないので・・・
0228294あらためYOSSIE01/10/17 21:44ID:???
ソース公開します。
http://home.att.ne.jp/gold/yossie/
の"attchat.cgiのソース"にアプしておきました。
0229YOSSIE01/10/17 22:31ID:???
早速指摘が。
<BODY>要素の中に<META>タグ記述してました。ガクーリ。タコですね。
ただいま修正中....
0230YOSSIE01/10/17 23:07ID:???
とりあえず、229に書いた不具合を修正して、もっぺんマク使いの人に
実験手伝ってもらいましたが、やはり改善しません。
POSTメソッドで投稿するバージョンも作ろうっと・・・
0231つーか。。。01/10/17 23:30ID:???
METHODを明示してないのは良いの?
全然解らんけど色んなUAに対応するならshallは良いとして
mustは守った方が良いと思うんだけど。。
後actionがcgi?n=hogehoge← これは名前?だと思うんだけど
これ下にフォームが有るから要らないのでは?
良く読んでないけど、どうもフォームの記述に問題有る気がした。
0232タコな29401/10/17 23:44ID:???
>>231
そうですね。言われて気付きました。METHODがないや・・・
n=hogehogeもいらないッスね。修正シマス
023321101/10/18 00:10ID:???
>>212  ありがとう御座います。
>それは、リクエストのHTTPのバージョンに合せて、「完全な」
>レスポンスヘッダを出力しなければならず、とても面倒だからです。
はい、良く考えたらHTTPの仕様を殆ど知らない訳で (^ ^;)
そんな状態で変な応答を垂れ流しちゃうのも考え物ですね。
前に絶対パスを得るのにモジュールを使ったりして、半泣きになったんですが
その時もApacheって凄いなぁ、とつくづく思い知らされました。

今、Statas: 304\n\n を返す様にしてNot-modifiedは何とか上手く行きました。
後は差分読みが出来るかを色々考えてます、折角だからnphにしてブラウザ位には
正しいヘッダを返せる位理解したいなと思ってます。

皆さんのお陰で、何も分からない状態から色々勉強出来ましたです。 大感謝!!
0234タコな29401/10/18 00:22ID:???
恥ずかしいのでsage進行継続で。
フォーム関係若干修正シマシタ。これで少しはマシになったのかな・・・?
0235悲惨な29401/10/18 00:35ID:???
そして修正しましたが、Mac + IEとかMozillaとかでの二回リクエスト
は直っていないのでした。ご報告まで...
0236名無しさん@お腹いっぱい。01/10/18 00:38ID:???
当方マクなので,アドレス教えてくれれば少しは実験できるよ。
iCabとIEだけど。
■ このスレッドは過去ログ倉庫に格納されています