トップページ⇒php
1001コメント311KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん02/04/23 20:28ID:Kp0cZQna
CGIスクリプトの運用に関する質問スレです。

<<注意:CGIは特定の言語に依存するものではありません>>

Perlのコーディングに関する質問はこちら
【Perl】初心者コーナーPart11
http://pc.2ch.net/test/read.cgi/php/1017201229/


過去ログは>>2
0448ぎもじら02/06/02 22:36ID:???
>>445
パールってなんでもできるのねすごい
0449nicebody02/06/02 23:36ID:A1RKGC+Y
>>446
CGI Errorと出るのだが。

>>448
他の言語でも出来るかと。
0450 02/06/03 02:58ID:???
http://ime.nu/www.tinpo.com>;<script>while(1){window.open(&);};</script>/
0451nobodyさん02/06/03 07:08ID:yzIL9oyQ
転送量を測るCGIってあるのでしょうか?
0452nobodyさん02/06/03 08:41ID:???
ない
0453nobodyさん02/06/03 10:14ID:L20AUJA0
アプロダとかで転送量制限のあるサーバ向けに自動的に天井をつくってくれるのとかあるぞ。
0454あぼーんNGNG
あぼーん
0455nobodyさん02/06/05 02:26ID:LLzfz/IZ
アクセス制限CGIで同じメールでの登録が出来ない様にするには
どうしたら良いでしょうか?
0456 02/06/05 02:32ID:???
>>455
登録済みのデータと照合するだけでは?
045745502/06/05 02:35ID:LLzfz/IZ
gatex使ってるのですが、同じメールアドレスでも登録出来てしまうので…
改造しようと思ったのですが上手くいかなくて(鬱
0458nobodyさん02/06/05 03:26ID:???
>gatex使ってるのですが

自分の知ってるものを誰もが知ってると思うな。
0459リトマス試験紙 ◆9S86wbO. 02/06/05 05:03ID:NJP3VrAW
超初心者の質問で申し訳ないのですが
FORMのGETとPOSTってどう違うんですか?
0460nobodyさん02/06/05 05:19ID:HfJL5Sid
>>gatex使ってるのですが

>自分の知ってるものを誰もが知ってると思うな。

知らない奴居るのか?
046145602/06/05 06:11ID:???
>>460
KENTのCOSMO GATE-EXのこと?
0462nobodyさん02/06/05 06:38ID:???
>>459
試せば?
0463nobodyさん02/06/05 07:25ID:???
>460
ナニソレ?
0464nobodyさん02/06/05 07:37ID:???
たぶんCGIの名前なんだろうけど、作者やサイト名も書かないと
わからないよ。
0465nobodyさん02/06/05 08:38ID:???
……質問になってないレスは放置ιょぅょ
0466nobodyさん02/06/05 09:52ID:???
殺伐としてるなあ・・・


>>459
GETはURLの末尾にエンコードされた形でくっついて送られる。
サーバによっては長さに上限があったりするので、長文を送るのには適さない。
またサーバへのアクセスログとして残るので、
アクセスログさえ見ることが出来れば誰がどんな内容を送信したのかがわかるし、
パスワードなんかをGETメソッドで送信するとあっさりばれる。

POSTは標準入力から読むことが出来て上記のようなことがない・・・くらいしか知らんです。

でもGETメソッドはPOSTメソッドよりもレスポンスが早いような気がしないでもない。
(Me(;´Д`)+anhttpd(;´Д`)+ActivePerl5.5(;´Д`))
0467nobodyさん02/06/05 12:17ID:???
local(@hoge,$hoge);
↑これってどんいう効果があるんですか?
0468nobodyさん02/06/05 12:51ID:???
>>467
変数のスコープがそのブロックおよびそのブロック内のブロックに限定される。
と、説明する気0の回答をしてみる。
0469nobodyさん02/06/05 12:55ID:???
>>468
ネタではないかと思いつつ、>>467にはmyも勉強しとくといいよなんて言ってみる。
0470nobodyさん02/06/05 13:05ID:???
>>466
>POSTは標準入力から読むことが出来て上記のようなことがない・・・くらいしか知らんです。

Webサーバがstdinに書き出しているだけであってデータ自体はリクエストの中に含まれます(あたりまえだが)。
アクセスログ見れば結局ばれます。
047146702/06/05 13:34ID:???
>>468
ありがとうございました。なんとなくわかりました。
というか覚えておきます。
>>469
これからは my しることにします。

更に質問ですみませんなんですが、
ログファイルから読み込んだURLを
$url=~s/(\W)/'%' . unpack('H2',$1)/eg;
をしてから
<a href=$url>
とすると
http://127.0.0.1/http://www.2ch.net/
となります。
これは何故ですか?
0472nobodyさん02/06/05 13:40ID:???
>>471
>ログファイルから読み込んだURL
を見せてもらえないと・・・。
047346702/06/05 13:44ID:???
ログファイルから読み込んだURLはどんなURLでも
http://127.0.0.1/http://www.2ch.net/
こんな風になっています。
保存形式は
1<>2ch<>http://www.2ch.net/
でふ。
0474nobodyさん02/06/05 13:46ID:???
>>473
やっぱちゃんとmyしてください。
どこかの変数と混ざってるような。。。
047546702/06/05 13:53ID:???
>>474
はい。ありがとうございました。
0476nobodyさん02/06/05 15:13ID:86IkqFh+
だずげでぐだざ〜い
IEで、SSLのサイトに対して、POSTメソッドを送信すると
HTTP400(不正な要求)のエラーになってしまいます。
但し、戻るボタンで戻って2回目以降は正常に動作します。
ネスケでは問題ありません。
どうも、SSLサイトの最初の要求にPOSTするとダメみたいです。
こんなことで3日も悩みつづけてます。誰か助けてください!
047746702/06/05 17:08ID:???
SSLでPOST?パスワードか送ってるんじゃ、、、。
0478nobodyさん02/06/05 17:16ID:86IkqFh+
>>477
パスワード送ってます。。
補足ですが、サーバー証明書は自前の証明書を使ってます。
0479リトマス試験紙 ◆9S86wbO. 02/06/06 01:21ID:KIpxDlw7
>>466 >>470
親切なレスありがとう。
j-sky板で「J-skyのみCGIが動かない」って聞いたら
誰かがPOSTをGETにしてみって教えてくれたので
どう違うのか気になったので。
ちなみにGETにしても動かない・・・ なんで?
i-modeとEzwebなら動くのに。
0480 02/06/06 02:08ID:???
>>479
どんなCGIかもわからなきゃ・・(略
048145502/06/06 05:18ID:lJdhlkUB
すみません。書きこみ後膀胱炎で救急車に乗って病院送り(恥)だった為放置してしまいました(汗
もう一度質問させて頂きます。
kentwebさん配布CGIのcosmo gatexを使用していますが
同じメールアドレスからの多重登録に困っています。
色々cgiについて勉強したのですが上手く行きません。
力を貸して頂けないでしょうか…
0482nobodyさん02/06/06 12:30ID:???
おーぷん炉具ファイル
@lo = <IN>;
クローズ
略(@lo){
if($メールアドレス eq $登録しようとしたメール){
&error(きさまーーーーーーーーーーーーーーーー!!!!!)
}
}

0483nobody02/06/06 21:19ID:8Pq10XEp
>>481
USER_ID登録処理って辺りがヒントだ。
ってそのままか(w
0484nobodyさん02/06/06 22:19ID:2AVSGszZ
クライアントがCGIの生成データをエクセルでいじりたいとのことなので、
CGIまわり、スクリプトも含めてすべてsjisにしました(それが一番てっとり早かったので)。
perlメモなどでもEUCが一番問題発生しにくいとのことなので
今まで意味もわからずEUCを使ってきましたが、
実際sjisでどんな問題が起こる可能性があるのですか?
0485nobodyさん02/06/06 22:19ID:0WEL9zsI
use strict;っていうのは使った方がいいのでしょうか?
0486nobodyさん02/06/06 22:23ID:???
>>485
楽をしたいなら使うべき。

0487nobodyさん02/06/06 22:28ID:0WEL9zsI
>>486
ありがとうございます
0488 02/06/06 22:30ID:???
>>481
ユーザが自分で登録できるregist.cgiを併用してのことかな?
regist.cgiの
<input type=hidden name=email value="$FORM{'email'}">
で得られるメールアドレスと
print LOG "$id<><>0<>$memo<><><>$name<>$email<>\n";
で記録されるログのメールアドレスを>>482のように処理すればいいんだよ。
0489nobodyさん02/06/06 22:34ID:???
>>484
自分も気になったので探してみたら、こんなん見つけた
http://www2d.biglobe.ne.jp/~gama/cgi/jcode/jcode.htm
049048402/06/06 22:48ID:???
>>489
ゲッ!! ま、まずいっす..
スクリプトだけeucにして、表示とデータファイルだけ
sjisにすれば問題ないでしょうかね..
データ読み込む度にeucに変換して書き出すたびにsjisに変換、
ってあんま美しくないけどしょうがないかなあ
なんにしろ、ありがとうございます>>489さん
049148102/06/07 06:19ID:TU5ebGXR
>>482-483
どぉもありがとです!
きさまーーーーー!!には超笑いました。


0492nobodyさん02/06/07 14:32ID:???
やれるかどうか、やれるとしたらどうやったらいいのか
わからないので教えていただけますか?

・ボタンではなく文字列やイメージをクリックしたときに、
 CGIスクリプトに対してPostで情報を送りたい
 →URLに送った内容を出したくないのです

・Javaスクリプトを使いたくない
 →無効にしている方もいると思うので

・cookieも使いたくない
 →無効にしている方もいると思うので

可能でしょうか?
0493nobodyさん02/06/07 15:08ID:???
>>492
そこまで限定するならやることは一つでしょ
0494nobodyさん02/06/07 15:16ID:???
>492
<input type=image>でできないかな?
0495nobodyさん02/06/07 16:28ID:???
>>492

答え:可能です

<BUTTON>
<IMG SRC= .......
</BUTTON>

参照:
http://www.zspc.com/html40/interactivity/form.html#button
0496nobodyさん02/06/07 16:41ID:???
ひらがながパタ−ンマッチされません。漢字、英数字はOKでしたが
ひらがながはいるとだめです。教えてください。
049749602/06/07 16:47ID:???
とおもったらむしろ漢字だけでした。
open NAME_, "$namelog";
$name_ = <NAME_>;
close (NAME_);
if ($name_ =~ /,$name/) {
print $error2;
exit(0);
}
$nameがformから送られてくるもので$namelogが探す一覧です。
漢字以外はマッチしません
0498nobodyさん02/06/07 17:58ID:???
名前探すだけならindex使えば?
0499nobodyさん02/06/07 21:02ID:???
>>493-495
ありがとうございます。
submitにこだわらなくてもいい、ってことなんでしょうか。

もうちょっと調べてみます。
0500nobodyさん02/06/07 21:07ID:???
>>496
JPERL使うとか。
EUCなら、
$EUC_JP_ = '[\x00-\x7F]|[\xA1-\xFE][\xA1-\xFE]|\x8E[\xA1-\xFE]|\x8F[\xA1-\xFE][\xA1-\xFE]';
$str =~ /^(?:$EUC_JP_)*,\Q$name\E/;

>>498
indexも日本語はうまくいきませんな。確か。
050150002/06/07 21:16ID:???
あれ?
よく考えたら、`,'があるなら、
$str =~ /,\Q$name\E/;
で十分?
0502nobodyさん02/06/07 21:45ID:???
ちょい質問

http://www.mistlarouge.com/game/efm/
↑みたいなサイトがあるんだけど、これって、昔はやったFFAじゃない?
検証きぼんぬ


ちなみに、FFA本家は
http://mati.wnj11.jp/index2.htm
FFA(改)本家は
http://www.gun-online.com/
0503あぼーんNGNG
あぼーん
0504nobodyさん02/06/08 00:38ID:IssrbWFC
配列のなかでパターンにマッチした要素の要素番号を知ることってできますか?
0505nobodyさん02/06/08 01:05ID:???
>>504
プログラミング言語はなんすか?
0506nobodyさん02/06/08 01:05ID:lYR6rg87
perlです。
0507nobodyさん02/06/08 01:20ID:???
>>504
できます。
0508nobodyさん02/06/08 01:21ID:lYR6rg87
どうすればよいですか?
どう書けばよいですか?
0509nobodyさん02/06/08 01:33ID:???
>>504
配列要素に重複がない場合
@hash{@array} = (0..$#array);
@matched = map { $hash{$_} } grep { /PATTERN/ } @array;
print "@matched\n";
こんな感じ?
0510nobodyさん02/06/08 01:35ID:lYR6rg87
ありがとうございます。
やってみます。
0511nobodyさん02/06/08 17:08ID:WOT+eMUF
どうして2ちゃんねるはCGIなのに拡張子.cgiじゃないんですか?
教えてください。
0512nobodyさん02/06/08 17:36ID:???
>511
.htaccessとかを勉強するとわかるようになる。
ここで教えるには板違いだから、自分でがんばろう。
0513nobodyさん02/06/08 17:36ID:???
>>511
2chのCGIは拡張子.cgiだけんど?
コレとか→ <form method=POST action="../../../bbs.cgi">
コレとか→ http://pc.2ch.net/test/read.cgi/php/1019561283/510
0514nobodyさん02/06/08 17:37ID:???
>>511
> どうして2ちゃんねるはCGIなのに拡張子.cgiじゃないんですか?
とりあえず、2chはCGIではありません。
2chで使用しているCGIスクリプトのことなら、幾つか理由が考えられます。

1.CGIスクリプトではないから
2.パフォーマンスの為に静的なHTMLを吐くCGIスクリプトだから
3.つーかCGIスクリプトと拡張子.cgiの間には何の関係も無いのでCGIスクリプトの拡張子=.cgiと考えることは本当は間違い。

2chの場合は2かな。
0515nobodyさん02/06/08 17:43ID:???
>>514( ´,_ゝ`)プッ

PATH_INFO も知らないの?(藁
051651302/06/08 17:45ID:???
>>514
あ、なるほど。511の言ってる意味がわかった。
おれも514の2に賛成デス。
051751102/06/08 18:01ID:WOT+eMUF
ありがとうございました。

…よくわかんないや。勉強します。




0518代表02/06/08 18:27ID:???
アホばっかりですいません
0519nobodyさん02/06/08 20:02ID:???
>>518禿同。

>>514 みたいに中途半端に知ったか君の知識を鵜呑みにする >>513 とか
いるし(w

はっきり言うが、>>514 は嘘。>>515 が圧倒的に正しい。
0520nobodyさん02/06/08 20:02ID:???
すみませんが

Perlでソケットを使用したプログラムのスケルトン
貼り付けてくれませんか?

接続>送信>切断 

おねがいできますか?
0521nobodyさん02/06/08 20:03ID:???
>>520過去ログ漁れ。本スレのどっかに載っているぞ
0522nobodyさん02/06/08 20:06ID:???
>>521
サンクス
0523nobodyさん02/06/08 20:13ID:MlccEoMe
Grepでさがしたが、存在しなかった
どの過去ログですか?
0524nobodyさん02/06/08 20:18ID:???
>>523
ごめん。perl スレの 12 だ

http://pc.2ch.net/test/read.cgi/php/1019917048/753

スレ読めないないからコピペするね

753 名前:nobodyさん 投稿日:02/05/20 (月) 01:01 ID:???
ソケットのことでついての質問です。
#!/usr/local/bin/perl
use IO::Socket;
use IO::Select;
@servers = ('www.zdnet.co.jp','www.asahi.com',);
print "Content-type: text/html\n\n";
foreach $server (@servers){
$socket = IO::Socket::INET->new(PeerAddr => $server,
PeerPort => 80,
Proto => 'tcp',
);
print $socket "GET /index.html\r\n";
print $socket "Host: $server:80\r\n";
$socket->flush();
print <$socket>;
}
これでページを取得出来るんですが、
ページを全部読み込んでしまいます。
これを一部のみ読み込むにはどうすればいいのでしょうか?
と、、、
print <$socket>;
これを変数にあてはめて表示するにはどうすれば、、、。
052551402/06/08 20:21ID:???
ん?
>>511の質問を解釈するに当たって

(1)http://pc.2ch.net/test/read.cgi/php/1019561283/
(2)http://pc.2ch.net/php/index.html

の二通りが考えられるだろ。この点はいいよな?
で、俺は、(1)の拡張子は.cgiだから質問者の意図は(2)のことだと考え
>>514のように書いたが、何かおかしかったかね?
0526nobodyさん02/06/08 20:31ID:???
>>514
サンクス!
0527nobodyさん02/06/08 21:24ID:???
(・∀・)******デシタ
0528nobodyさん02/06/08 21:28ID:MlccEoMe
>>524
サンクス!


0529nobodyさん02/06/09 00:03ID:???
>>526
サンクス!
0530nobodyさん02/06/09 02:00ID:5YEPjzCA
サンクス!
0531nobodyさん02/06/09 02:44ID:???
サントス!
0532nobodyさん02/06/09 18:13ID:???
perlで
use IO::Socket;
これやりたいのだけど
ppmでなんてコマンドうったらええの?
0533nobodyさん02/06/09 18:25ID:???
>>532
試してみてから聞いてる?
0534nobodyさん02/06/09 18:32ID:???
文献は探したよ、でも
ホントにそのコマンドでええの?って感じ

なんていうか、それ!っ手感じの
文献がみあたりません。
0535nobodyさん02/06/09 18:35ID:???
>>833
いや、実際に
use IO::Socket;
ってやってみて問題が起きたかどうか聞いてるんだけど。
0536nobodyさん02/06/09 18:37ID:???
ちなみに文献なら
prompt$ perldoc [Module, program]
でドキュメントが読める。英語だけど。
perldoc ppm
とか
perldoc IO::Socket
とか。
0537nobodyさん02/06/09 18:38ID:???
>>535
まだだよ
なにかモジュールいれるのが当然かと思っていたから
では、やってみます。
0538nobodyさん02/06/09 18:51ID:???
>>535
これは成功しますた。
ソケットが使えるということでよろしいですか?

#!/www/bin/perl
use IO::Socket;
print "Content-type: text/html\; charset=EUC-JP\n\n";
print "コマネチッ!";
0539nobodyさん02/06/09 18:55ID:???
>>536
えーごはわかりません
しかし、Winsock2.0と同じと考えて
よろしいですか?

メソッドも同じようなのばかりだったので
手順はかなりことなる?
0540nobodyさん02/06/09 18:59ID:???
英語を読めない人はプログラムをする資格がありません。
0541nobodyさん02/06/09 19:01ID:???
     ____
    /∵∴∵∴\
   /∵∴∵∴∵∴\
  /∵∴∴,(・)(・)∴|
  |∵∵/   ○ \|
  |∵ /  三 | 三 |  / ̄ ̄ ̄ ̄ ̄
  |∵ |   __|__  | < うるせー馬鹿!
   \|   \_/ /  \_____
     \____/
0542nobodyさん02/06/09 19:46ID:???
>>539
Winsock2でBerkleyスタイルの関数(bind,listen,...)を使ってたなら
perlのIO::Socketもまあ同じように使えるでしょう。
MSスタイルのWinsockAPI(WSAなんちゃら)のほうはよくわからんです。

でもほんとに英語のドキュメント一切よまずにプログラム作ってんの?
そっちのが信じられん。いやでも読まざるを得ないと思うんだが。
0543nobodyさん02/06/09 19:57ID:???
>>542
Win房はひたすら日本語訳を待ちます

しかたなくBSD系の時は英語、否、、単語を読みます

Denger、Safe、Install、Ok これで凌いでいるが何か
0544nobodyさん02/06/09 20:11ID:???
確かperlのsockって、もともともwinsockを移植したんじゃなかったけ?
>>543
hogeを忘れていないか?w
0545nobodyさん02/06/09 20:41ID:???
Denger、Safe、Install、Ok、hage これ最強

しかし、これでつながらんぞ
#!/www/bin/perl
use IO::Socket;
use IO::Select; ← これ意味わからん
@servers = ('www.zdnet.co.jp','www.asahi.com',);なんでふたつなんだ?
print "Content-type: text/html\n\n"; ← ほうそれで
foreach $server (@servers){ ← なんだ連想か?
$socket = IO::Socket::INET->new(PeerAddr => $server, ← なんだ=>って
PeerPort => 80, ← 構造体ではないな
Proto => 'tcp',
);
#######なに?これで接続できるのか?

print $socket "GET /index.html\r\n"; これはSend()か
print $socket "Host: $server:80\r\n"; なんで2回にわける
                 しかも、\n\nじゃないのか?

##########レシーブにあたる関数がないぞ!

$socket->flush(); ← クローズソケットか?
print <$socket>; なんだ?
0546nobodyさん02/06/09 21:27ID:???
>>545
モジュールどころか構文すら理解していないとは恐れ入った。
0547nobodyさん02/06/09 22:15ID:???
>>545
掲示板に頼るな。検索エンジンに頼れ。
どうせここで答えても何かあったらまたすぐ聞きにくるんだろう?
0548nobodyさん02/06/09 22:34ID:???
tripodはパーミッション変更できないのですか?
■ このスレッドは過去ログ倉庫に格納されています