CGI: Common Gateway Interface part 11
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
03/06/14 22:26ID:F9qlqHNx※CGIは特定の言語に依存するものではありません。
Perlのコーディングに関する質問は、専用スレでお願いします:
[Perl 初心者コーナー Part24]
http://pc2.2ch.net/test/read.cgi/php/1054992610/
CGIとPerlの区別がわからない、という人はとりあえずこちらへ:
[WebProg 初心者の質問 Part3]
http://pc2.2ch.net/test/read.cgi/php/1045091733/
過去ログ・関連スレッドは >>2-5 あたりに
0054nobodyさん
03/06/22 17:32ID:???にある一斉送信CGI(シェアウェアでソースみれない)って、
エラーメールの整理も簡単になりました。!
ってあるんだけど、
これって、エラーメールの処理ってどうやってるんだろう?
Errors-toを設定してかえってきたメールを処理するくらい?
0055nobodyさん
03/06/22 23:53ID:???005635
03/06/23 18:15ID:???if ($ENV{'HTTP_COOKIE'} ne "") {
@data=split(/\; /,$ENV{'HTTP_COOKIE'});
foreach $datum (@data) {
($name,$value)=split(/=/,$datum);
$COOKIE{$name}=$value;
}
$cooktest=$COOKIE{'TEST'};
}
とクッキーを処理した後
($c_test,$c_test1,$c_test2) = split(/ /,$cooktest);
と半角スペースで変数に分けているんですが
$test = 'あい うえお';
$test1 = 'kaki kukeko';
$test2 = 'サシ スセソ\';
と、クッキーに記憶させる中身に半角スペースが含まれていると
変数に分け直すとき、そこで区切られてしまうのです(当たり前なのですが・・・)
半角スペースを に変換しても、
@data=split(/\; /,$ENV{'HTTP_COOKIE'});
の部分でコロンが反応して、処理が思うものにならなくなってしまいます。
$cooktemp = $test .'_^_' .$test1 .'_^_' .$test2;
のように、誰も入れなさそうな文字列を変数と変数の間に入れて、それをクッキーに書いて、取り出してその文字列で区切るしかないでしょうか・・・
0058nobodyさん
03/06/23 19:46ID:???突っ込み入れようと試しにぐぐってみたら、あ〜ら!
http://www.google.com/search?q=+%22cokkie%22&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
0059nobodyさん
03/06/23 20:35ID:???http://www.studyinghttp.net/cookies.html
こゆところ100回嫁(w
0060nobodyさん
03/06/23 22:00ID:aWAWPFpScookieにはコロン、セミコロンスペースは使えない。
普通はurlエンコードする。
0061nobodyさん
03/06/23 22:13ID:???まあ初心者には難しそうだけど、Webプログラミングでは避けて通れない関門だ。
ぐぐりゃサンプルソースなんていくらでも手に入るんだから、がんがってくれ。
0063あぼーん
NGNG006854
03/06/24 00:45ID:???素朴な疑問だったので、やったことある人とかに気軽に答えてもらおうかと思ったんだけど
0069nobodyさん
03/06/24 04:20ID:8Tumd/pU0070nobodyさん
03/06/24 05:09ID:???要するに、エラーメールを自分の所に返ってくるようにするにはどうしたら
いいですかってことか?
0072nobodyさん
03/06/24 18:26ID:???この表現がタマラン。
0073nobodyさん
03/06/24 18:54ID:???どうも、レン鯖のsendmailで大量送信しようとしてる厨ぽいな。
ちょっとテストしてみたらエラーになって返ってくるはずのメールが
返って来ず、前に大量送信で逮捕された奴はエラーメールが
原因だったよなー、どうしよう?!
って感じだな。以降スルーということで。
007471
03/06/24 19:28ID:???0076nobodyさん
03/06/25 21:48ID:???クッキーを発行することがわかってるサイトに行って、
クッキー作ってそのクッキーがどんな風になってるか、
自分のマシンの中身を調べてみるくらいのことはしろ。
0077nobodyさん
03/06/27 15:06ID:rcTbJk7F出力したページが文字化けを起こしてしまいます。
Content-type: text/html;charset=Shift_JIS\n\n
とか入れているのですが、直りません。
その他、注意事項があったら教えてください。
0078nobodyさん
03/06/27 15:13ID:???007977
03/06/27 15:20ID:rcTbJk7Fたぶん、そんなところだと思うのですが、
対応方法がわかりません
初心者の間違えそうなところを教えてください
0080nobodyさん
03/06/27 15:24ID:???jcode.plとかJcode.pm使って、いちいち変換するのは、
ユーザに入力させて、変数に取得するときは必要だが。
0081nobodyさん
03/06/27 15:24ID:???0082nobodyさん
03/06/27 15:29ID:???ヘッダでコードを指定したのなら、出力する文字も同じコードじゃなきゃダメだよ。
そのヘッダは「ShiftJISに変換してくれるおまじない」ではないので、実際の文字コードが
EUCとかだったら当然文字化けする。
0084nobodyさん
03/06/27 15:32ID:???jcode.plとかJcode.pm使って、いちいち変換するのは、
ユーザに入力させて、変数に取得するときは必要だが。
0086nobodyさん
03/06/27 15:44ID:???008777
03/06/27 15:48ID:rcTbJk7F>>82
「おまじない」じゃなかったんですか!
では、スクリプトをShift_JISに変換してアップすればいいんですか?
・・・その方法を教えてください。
くれくれですみません!
008877
03/06/27 16:02ID:rcTbJk7Fそれでアップしたら、できました!!
ありがとうございました。みなさん。
0090nobodyさん
03/06/27 16:41ID:???・・・そんな安易でいいのかね。
文字列の処理してる部分があると、
2バイト目に \(0x5C) が入ってる文字で問題が起きるかもよ。
009177
03/06/27 17:50ID:rcTbJk7F>>90
今のところ、テスト用の簡単なページは正しい表示されてます。
&jcode::convert(\$value,euc,"$kcode","z");
を
&jcode::convert(\$value,sjis,"$kcode","z");
にしました。
iモード用CGIでの注意点とかを説明しているサイトとかあれば
紹介してください。
0092nobodyさん
03/06/27 18:01ID:???「CGI (Common Gateway Interface)」 は プログラミング言語じゃねー!!
0093nobodyさん
03/06/27 18:05ID:???convertはそれでいいけど、そのことじゃなく。
スクリプトのファイルをシフトJISで保存してうpしろってこと。
その際、>>90が言うようなEUCでは問題のなかった部分が出てくるわけ。
0094nobodyさん
03/06/27 18:21ID:???0096nobodyさん
03/06/27 19:00ID:???アホが見たらCGI=Perlに脳内変換されるだろ。
Common Gateway Interface だけならまだ良かったかもしれん(手遅れだが)
0098t
03/06/28 16:25ID:???0100nobodyさん
03/06/29 09:15ID:???0101nobodyさん
03/06/29 17:15ID:KusTQ6u8a,cgiでアンケートを集めてa.txt(datでも何でも空ファイル)というファイルに保存したいと思います。
そこで、a.txtにアンケートが投稿されるたびに1行づつ書き足していきたいのですがそこがよくわかりません。
どうやればいいのでしょうか?
0102nobodyさん
03/06/29 17:20ID:???君の質問のオカシイ所をあげてみようか…
1.何の言語で cgi を書いているのか明記していない
2.どの様な言語であろうと、それは完全にバックエンド(サーバーサイド)側で
閉じた処理なので CGI とは「あまり」関係ないと思われる
3.そんな君の為にこんなスレッドがこの板には存在する
http://pc2.2ch.net/test/read.cgi/php/1056078605/
0103nobodyさん
03/06/29 17:30ID:???Perlだと思って回答したら、実はPHPでしたとか言われたらげんなりだし。
0104nobodyさん
03/06/29 20:41ID:???0105あぼーん
NGNG01061 ◆mwE/vdIjgM
03/07/02 03:28ID:g3RHDSaJ01071 ◆mwE/vdIjgM
03/07/02 03:44ID:???ブラウザが、EUC-JP に設定してるのにISO-8859 として認識してしまいます。
解決方法はありませんか。
0110nobodyさん
03/07/02 07:17ID:???英語で返答されました。
0111nobodyさん
03/07/08 04:54ID:???0112nobodyさん
03/07/08 06:02ID:???0113nobodyさん
03/07/08 10:59ID:???0114nobodyさん
03/07/08 11:23ID:???よかったのにな。今のじゃ、読む気がしない。
0115nobodyさん
03/07/08 11:49ID:???ないんじゃない?
0116nobodyさん
03/07/08 11:53ID:???0117nobodyさん
03/07/08 11:55ID:???0118nobodyさん
03/07/08 12:38ID:???CGI/1.1の話に花でも咲かせようか?
0119nobodyさん
03/07/08 14:36ID:???0122nobodyさん
03/07/08 15:19ID:???0123nobodyさん
03/07/08 18:11ID:???「コーディング」の一言が効いたのだろうか。
0124nobodyさん
03/07/09 11:34ID:LTIOpV+bErrorDocument 404 /go2top.cgi
と書いて、
go2top.cgiには
#!/usr/local/bin/perl
$|=1;
print "Location:http://www.foo.co.jp/\n\n";
exit;
と書いたのですが、
存在しないURLにアクセスしても、
cgiを読みに行かず、
普通の「ページが見つかりません」となって、
Apacheのログを見ると、
ただの404 not found になってしまいます。
なぜなんでしょう?
------------------------------------------------------------
あと、これと関係しているのかどうかわかりませんが、
404の場合の制御に関して、何かが何kb以下だとどうのこうのっていうのが、
あったかと記憶にあるのですが、
なんだったでしょうか?
0125nobodyさん
03/07/09 11:39ID:???激しくスレ違いな気がするが
・go2top.cgi は document root にあるの?
・ファイル名サフィックスが .cgi の時、CGI Script として動くようにしてるの?
0127nobodyさん
03/07/09 11:50ID:???0128124
03/07/09 12:33ID:???>激しくスレ違いな気がするが
あ、htaccessのえらい人
http://pc2.2ch.net/test/read.cgi/php/1019888234/
っていうスレがありましたね・・・ここからはそっちに移ります。
で、返答をば・・・
>・go2top.cgi は document root にあるの?
>・ファイル名サフィックスが .cgi の時、CGI Script として動くようにしてるの?
なってます。
>>126
なるほど、さんくすです。
0129124
03/07/09 12:41ID:???ErrorDocument 404 /
ってすればいいだけだと気づいた・・・。
1枚ページをかまさずに、
エラードキュメント=トップページにしちまえばいいと。
すんません。
0130nobodyさん
03/07/09 12:45ID:???0131nobodyさん
03/07/14 03:07ID:E2SfNkcW同じ携帯からの2回以上のアクセスはカウントしないようにする場合
どうやって同じ携帯電話であることを特定すればいいでしょうか?
0132nobodyさん
03/07/14 03:16ID:???携帯電話使った事無いから詳しくはわからんけど・・・
0133nobodyさん
03/07/14 03:16ID:???それを示さない限りはっきりとした解答は得られない
0134nobodyさん
03/07/14 03:54ID:???0135nobodyさん
03/07/14 04:06ID:???0136nobodyさん
03/07/14 04:37ID:???0137あぼーん
NGNG0138nobodyさん
03/07/14 06:20ID:???プログラミングスレに運用の質問が来る。
アホらしい世の中であるなぁ。
0139あぼーん
NGNG0140nobodyさん
03/07/14 15:09ID:???SSIの動作が異なっているために実行されません。。
SSI実行時のカレントディレクトリが異なっているようです。
サーバ側の設定などで修正は可能ですか?
ファイルの修正は多すぎて大変なので・・・。
解決策をご存知の方教えてください。
0141nobodyさん
03/07/14 16:28ID:???大体、その質問内容だと何をしたいのかさっぱり解らん
他の人解る?
0142nobodyさん
03/07/14 16:39ID:???具体的にどういうSSIがどうなるのか
0143nobodyさん
03/07/14 18:40ID:???>サーバ側の設定などで修正は可能ですか?
技術的に可能かも知れんが、そんなこたあ鯖管に聞け。ここで聞くな。
>ファイルの修正は多すぎて大変なので・・・。
そういうのをすぐに修正できるようにスクリプト組まなかったお前の自業自得。
0144nobodyさん
03/07/15 03:40ID:Hnq/UICw[賛成]
・自由にいじれる(CGIならGPLでなくとも大抵普通だけど)。
・条件さえ満たせば、いちいち許諾を得ずに自由に再配布できる。
[反対]
・商用化の時に足かせになりそうだ(?)。
・“GPL汚染”が嫌だ。
0145nobodyさん
03/07/15 06:30ID:???自意識過剰です。
0146nobodyさん
03/07/15 06:54ID:???自作perl scriptという意味ならその限りではないが。
0148山崎 渉
03/07/15 11:05ID:???__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
0149nobodyさん
03/07/15 12:25ID:BbnXwsym0150nobodyさん
03/07/17 00:06ID:???あたらしくフォルダーやら空白のDatファイル等を
作成する方法を教えてください。
言語はPerlです。
0151nobodyさん
03/07/17 00:29ID:???0152nobodyさん
03/07/17 00:35ID:???マルチポスト?
http://pc2.2ch.net/test/read.cgi/php/1056730690/680
0153nobodyさん
03/07/17 12:52ID:???print "Content-type: text/html\n\n";
print "foo";
とだけ書いたCGIを、SSIの#include virtualで呼び出す。
ちゃんとfooという文字列が埋め込まれてめでたしめでたし…
と思ったら、なぜか特定のリンク元から飛んでくるとエラーになってしまう。
[an error occurred while processing this directive]
たったこれだけのスクリプトなのにリンク元によって動作が違うなんて
一体何が原因なのだろうか。
0154nobodyさん
03/07/17 13:03ID:jvbzuuVHprint "Location: http://www.foo.com/file/thanks.html\n\n";
でなく
print "Location: ../file/thanks.html\n\n";
のように相対パスで書くと、
確か、なんらかの条件(環境)のときに、
正常に動作しない・・・という記憶があるのですが、
どういう条件(環境)でしたっけ。
■ このスレッドは過去ログ倉庫に格納されています