2 :
1 :01/12/26 10:54 ID:???
クソスレ立てるな =======終了=======
串とIPとあゆ板下さい それでは おながいします
7 :
前スレ979 :01/12/26 12:18 ID:BRFa7AfO
http://me.bird.to/hakoniwa/download.htmlから 箱庭諸島2 Ex.Version (based 箱庭諸島2ver2.30)
を落して自分のFreeBSDのサーバで動作させようと思ったのですが
http://xxx.xxx/xxx/hako/hako-main.cgi にアクセスしたところ
つぎのターンまで、あと 0 時間 -16821368 分です 同時アクセスエラーです。
ブラウザの「戻る」ボタンを押し、
しばらく待ってから再度お試し下さい
というエラーがでていますいます。
/var/log/httpd-error.log にエラーは記録されてはいません。
どなたか何故エラーででるのあ教えてください
という質問をしました。
>httpのエラーと箱庭のエラー出力の区別付かんヤツには無理だと
>思われ
もちろん区別はついていますよ。
しかし、質問するのにこちらの情報はできるだけ出す必要が
あると思い「エラーログはでないの?」の質問が来てもいいように
最初に出しておきました。
どなたか原因を教えてください。
ローカルなサーバで外部に公開はしていないので上のアドレスは
デタラメでです。
>7 スクリプトの製作者に聞くのがいい。 マジレス。
同時アクセスエラーなんじゃ無いの?
>>10 > 同時アクセスエラーなんじゃ無いの?
このエラーの意味が分からないのですが
自分一人しかアクセスしていないです。
なら配布所で聞く事を勧める 多分人数制限にセマフォとか排他してて、それが詰まってるのでは と言う意味で書いた 見に行ったらperlだったんで萎えた、cppVer使ってるなら追っても良いけどね
use CGI qw(:standard); $qq = new CGI; print $qq->header(-type=>"text/plain", -attachment=>"data.txt"); ってやってもNetscape6.2でファイルの保存ダイアログが開きません。 (IE5.5は開く) 何か対策はありますでしょうか。内容はテキストデータです。
text/plain を適当に変えれ。
15 :
親切な人 :01/12/26 16:15 ID:???
>>14 てっ適当に?
なるほどapplication/octet-streamにしたらダイアログが出ました
ありがとうございます。
こういう時につかうスタンダードなヘッダってありますか?
17 :
14 :01/12/26 17:13 ID:???
俺は application/x-download にしてる。
>>18 絶対やっちゃ駄目
100KBの配列をreverseすると、しない時と比べてメモリを2MB以上消費します(構文解析時のワークエリアも含めて)
良くてアカウント停止、最悪サーバが落ちます
20 :
18 :01/12/26 18:08 ID:???
>>19 ありがとうございます。
自鯖で試して、明らかにreverseが重かったので不安になってました。
ところで、reverseの代替となるアルゴリズムって何かありますか?
負荷にならないようなのがいいんですが。。。
>19 Perlの話ですけど便乗質問よろしいでしょうか? reverseでやるとまずいそうですけど、例えば foreach(reverse(@data){$_を処理} for($i=$#data;$i>=0;$i--){$data[$i]を処理} この2者の場合、後者の方がいいということでしょうか?
22 :
21 :01/12/26 18:12 ID:???
)の数打ち間違えたのはご容赦を(あせ
コラコラ w >18 配列のサイズ書かれても分からんよ 50KBの要素が2個の配列か、1バイトの要素が102400個かで全然違うだろ? つーか構文解析に2MBも使わないって(苦笑
後者。
それとサーバーも落ちない
26 :
21 :01/12/26 18:18 ID:???
>24 ありがとうございます。 自分のスクリプトを手直ししてみようと思います。 ところでこういった事はどこで勉強されるのでしょう? 大抵の書籍とかはプログラミングの仕方は書いてあっても こういった速度などに関するものはあまりないように思えて・・・。 よろしければご指導お願いします。
reverseってそんなに遅かったかな 双方向リスト反転してるだけじゃ無いの? #未確認だけど・・・
28 :
こういう質問はここでいいのかな? :01/12/27 01:36 ID:DukV2Cc1
ネットゲーとはどういう構造なんでしょうか? たとえばネット対戦できる麻雀ゲームを作成するとすればどういうスキルを習得すればできるんでしょうか? 初心者には無理だってことは承知ですが、参考までにおしえてください。
,ィミ, ,ィミ, フ 彡 ミ 彡 ミ, ヤ | ,,彡 ミ、、、、、、、、彡 ミ, (⌒) レ | 彡;:;: ミ, ( ヽ ヤ 〜三;:;::::: 彡〜 ノ ノ レ ~~三:;:;:;::::: -=・=- -=・=- 三~~ ヽ ( : ;; ~~彡::;:;:;:;:::.. ___ ,三~~ ( ノ ,,,,, : ;; ~~彡;:;:;:;:;:;:;:. |┴┴| ,ミ~~ ノノ ;'" ,,ノ―、 ,;' ~~彡:;:;:;:;:;:;:;:;. ノ――| ---==ニノ ,;'′ >=ニ(二二二() ,...-''''""~~,::;:;::;::;::;::;' ミ,, ,;'′ ゝ--〈 ____,;";;:;;;;;;;;;;;;;;;;;;;;;:;:;:;:;:;:;:; i! ミ,,,,;'′ `ー‐' ::::ミミミ:;:;:;: ミ:: ,;' ̄ ̄ ̄ ̄| \___/ :::::ミミミ:;:;: ミ:::, ,;::''′ |. \/ ::::ミミミ:;:;:: ,;+''"~~゙+、~'''''~ | | ::::ミミミ:;:;:;: ,+'" ミ::::: | ━┷━━━┳━━━━ :::::ミミミ:;:;:;:;: >':;: ミ:: | ┃ ::::::ミミミ:;:;:;:;:;../;:;:;: ;:" | ┃ ::::::::ミミミミ:;:/;:;:;:;: ,.+'"''-、________|__ ┃  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄;':;:;:;: ,.+'" ミ、 l ┃ ::::::ミ;:;:;:;:.. ..ミ:::ミ:;: ミ l ┃ ::::::しUUU┘::::ミ:;: ミ l ┃ :::::::::::::::::::::::::::└UUUじ l ┃ __________________________________,l ┃ ━━━┻━━━
麻雀のルール
でかいAA貼るアフォに出会わない運
32 :
:01/12/27 04:13 ID:N1sjwrTI
質問です。 自鯖でCGI(掲示板、C言語で書かれた物)を動かそうと思ってるんですが、うまく動いてくれません。 拡張子をexeに変えてローカルで実行すると、ファイルが大きすぎてメモリに入りきらないというエラーが返されます。 winの設定の問題でしょうか?ちなみに、メモリは256MB,OSはWin2k、httpdはan_httpdです。 #もしかして板違い・・・??(;´Д`)
34 :
32 :01/12/27 04:34 ID:???
そりゃもちろんコンパイルはしましたよ。 そのコンパイル済みのバイナリファイルが実行できないんです。 vine2.1.5でコンパイルしてきた奴なんですけど、それじゃダメっすか??
35 :
32 :01/12/27 04:35 ID:N1sjwrTI
イチオウアゲ
36 :
32 :01/12/27 04:37 ID:N1sjwrTI
あ、 >拡張子を〜〜 のとこで勘違いされました?? コンパイル→exe→cgi→(゚д゚)マズー じゃぁexeのまんまでどうだ?→(゚д゚)・・・ー です。
どうだって言われても・・・・ vineのソフトはWINじゃ動かないだろ? それともクロス魔術師がコンパイルしたんだろうか
38 :
login:Penguin :01/12/27 04:55 ID:Y9+IS1nf
>>34 え・・・vine上でコンパイルしてどこで実行しようとしていらっしゃるのでしょうか
39 :
32 :01/12/27 04:56 ID:???
vineのソフトじゃなくて、.tar.gzでアーカイブされてたからlinux上でコンパイルしてきたんです。 それでもダメでしょうか?
40 :
32 :01/12/27 04:57 ID:???
>>38 すれ違い・・・(;´Д`)ァゥァ
vineでコンパイルしてwinで動かそうとしてるんです。
ふつーコンパイラは自分のインストールされてる環境に合わせた コードを生成します。 しかし、諦める事はありません。 enterキーを押す時に強く念じるのです! 「これはWINで使うんだよぅ〜〜 (-人-)ナムナム」 そうすれば、小人さんがWINDOWS用のexeファイルを頑張って作ってくれます 難しいけど、、、 頑張って! # と言うコピペがどっかで有ったよ ^^;
42 :
32 :01/12/27 05:01 ID:???
>>41 やぱダメですか・・・(;´Д`)
つーかワラタ(w
winでなんとかコンパイルする方法ありませんか??
ヘッダファイルを無理矢理持ってくるとか・・・
44 :
32 :01/12/27 05:08 ID:???
borlandやらLSI試食版やらはもう持ってるんですよ(;´Д`) でも、コンパイルするとヘッダファイルが足りないみたいなんです。 今日はもう寝ますんで、明日また色々調べて挑戦したいと思います。 こんな時間にありがとうございました。
お前はコンパイラ持っててそんな事も知らんかったのか (^^ まぁ、規模にもよるだろけどBBS位なら大抵同等のヘッダが有るから それを使え、ついでにC++もべんきょすれ
46 :
32 :01/12/27 05:21 ID:???
まだ起きてたり・・・ いやぁ、よくわからないんですけど、unistd.hてのがincludeフォルダに無いんですよ(;´Д`) どっかで落として来れるもんなんでしょうか? 明日linuxから持ってきてincludeフォルダに置いて再度挑戦してみます。 それでは、おやすみなさい。。。
47 :
login:Penguin :01/12/27 05:23 ID:Y9+IS1nf
>>46 何も考えず、そのままvine上で動作させれば良いと思うんだが
48 :
32 :01/12/27 13:30 ID:???
おはようございます。
>>47 いえ、今鯖をlinuxに移行する為の準備期間ってことでlinux勉強中なんですよ。
で、繋ぎとして新しい掲示板をwinで使って見ようかな、と。
さ、これから歯医者いってから試してみたいと思います。
結果は後ほど・・・
49 :
32 :01/12/27 17:08 ID:???
結果報告。 必要なヘッダファイルを持ってきた所、なんとかコンパイルできました。 チョト強引かもしれませんが・・・(;´Д`) しばらくはこれで繋いで、頑張ってlinux勉強しようと思います。 ありがとうございました。
50 :
えいじ :01/12/27 19:35 ID:VRi8wtO1
open(OUT,+>filename.txt); print OUT "あいうえお\n"; close(OUT); でfilename.txtが新規作成されますよね。 でも作成場所をトップディレクトリにした場合はは 新規作成されません。 どうしたら解決できるかご存知の方おられますでしょうか。 よろしくお願いいたします
52 :
sage :01/12/28 00:55 ID:P8B6/AoK
>Perlの実行速度 簡単に出せますよ。 $CPU_start = (times)[0] ; 処理内容 $CPU_end = (times)[0]; printf("<DIV align=right>消費時間: %.3f CPU秒</DIV>\n",$CPU_end-$CPU_start); printf("</body></html>"); # by水沢
53 :
sage :01/12/28 00:56 ID:P8B6/AoK
いちお print "Content-type: text/html\n\n"; 出すの忘れないでね(汗
54 :
:01/12/28 01:07 ID:D/y9CjEc
今の2ch見てて思ったんですけど、鯖に、hoge.cgi/php/〜〜っていうブラウザからのリクエストが届いた時に、 read.cgiっていうフォルダを探しちゃったりしないんでしょうか? それとも、そうさせないための方法とかあるんでしょうか? どなたか、ご教授下さい。
はぁ何言ってるのオマエ? ニホンゴハナセヨヴァーカ
56 :
:01/12/28 01:15 ID:???
中途半端な煽りレス返すんなら来るんじゃねぇよ。 ・・・オレモナー などと逝ってみるテスd
57 :
54 :01/12/28 01:18 ID:D/y9CjEc
えと、書き方が悪かったでしょうか・・・。 read.cgiより後ろの文字列は、URLとして解釈されるのか、それとも環境変数に代入(?)されるのでしょうか?
環境破壊反対!!
59 :
名無しさん@お腹いっぱい。 :01/12/28 01:25 ID:a98yftGH
>>32 コンパイラちゃうくて、
インストーラーだっけ?
なによく知らんけど、
WINってバージョンあったよね。
60 :
馬鹿 :01/12/28 01:27 ID:???
馬鹿が馬鹿よ呼ぶ大変な状態です!!
>>57 何が言いたいのか分からない。
環境変数ってどの環境変数??
URIとして解釈されないとパラメータの意味が無くなると思うんだが・・・・
62 :
54 :01/12/28 01:50 ID:???
今いろいろ見てきました。
hoge.cgi/**
の、**の部分が環境変数PATH_INFOに入るということは実験できたのですが、
それでもcgiの実行結果が返ってくるということはhttpdはそのディレクトリは探してないのでしょうか??
>>61 ちょっと自分でもこんがらがって、うまく伝えられない状況(;´Д`)
ググールへ逝って来ます・・・。
ああ、そう言う事か httpdがリクエスト貰ったらDocumentRootからディレクトリを辿って行くのな。 んでディレクトリじゃ無くてファイルか見つかった時点で httpd_conf何かの設定を見て、そのファイルがexecCGIされてたら / 以降をhttpdがEnvのPATH_TRANSLATED何かにセットしてファイルをオープンする訳 まあ大体どんなサーバでもこんな感じでファイルを探してる これでOK?
65 :
54 :01/12/28 02:41 ID:???
>httpdがリクエスト貰ったらDocumentRootからディレクトリを辿って行くのな。 なるほど、これで謎が解けました。 つまり、優先順位(?)はディレクトリよりファイルが先だからhoge.cgiが見つかって それが実行出来る物であったら、それ以下、?より前の部分がPATH_INFOに入れられるワケですね。 口下手ですいませんでした、ありがとうございました。
>>64 通らないってどゆこと?
普通に見えちゃったんだけど・・・。
けど、webprog板だけ、何故かバナーと背景が見えないなあ。
他の板は普通に見えるのに。
謎だ。なんか基本的なことを見落としているのだろうか・・・。
> つまり、優先順位(?)はディレクトリよりファイルが先だからhoge.cgiが見つかって 優先順位も何も、同じ名前でファイルとディレクトリは作れない。
68 :
名無しさん@お腹いっぱい。 :01/12/28 10:28 ID:I1y72yIj
i-mode用サイトでPCのアクセス不可にしてるとこがあるけど、 CGIでやる場合はHTTP_HOSTで振り分けるの?
いや、REMOTE_HOSTじゃないかに
70 :
:01/12/28 11:38 ID:???
REMOTE_HOSTかHTTP_USER_AGENTだね
71 :
初心者ですみません :01/12/29 07:33 ID:IhpmkgLt
書くところ間違えた(鬱) 掲示板のレス部分にタイトル変更機能が付いてない物を改造しているのですが、 親記事のタイトルが$subj、レスが$rsubjに格納しているとして if ($subj) { $rsubj = "Re\: $subj"; } print "\t<b><font color=\"#ff00ff\">$rsubj</font> これでレス部分に「Re:(親タイトル)」表示が出来たのですが、 自分がレスフォームから書き込んだタイトルを反映させるにはどうすればいいでしょうか。 <input type="text" size="30" name="rsubj" value="Re: $subj"> このようにタグは書いています。
72 :
:01/12/29 09:46 ID:???
ソース無しにどう答えろと?
73 :
:01/12/29 09:48 ID:???
74 :
ななぴ :01/12/29 10:23 ID:A1ZmLDMN
正規表現ってなに?簡単に言えや
Regular Expressions
76 :
2チャンネららら :01/12/29 18:45 ID:Dxg9d8II
77 :
名無しさん@お腹いっぱい。 :01/12/29 19:24 ID:RtOopK2q
htaccessって何て読むんですか?
ht(tp)-accessと考えれば自ずと…。
Hな父さんがアクセス
エッチティーティーピーディーアクセスコンフィギュレーションファイル
82 :
どこが違うの? :01/12/30 08:08 ID:Xs3aU9Xx
#!/usr/local/bin/perl $rhost = $ENV{'REMOTE_HOST'}; print "Content-type: text/html\n\n"; print "<html><head><title>ENV REMOTE_HOST</title></head><body>\n"; print "あなたのリモートホストは、$rhostです。\n"; print "</body></html>\n";
83 :
どこが違うの? :01/12/30 08:13 ID:Xs3aU9Xx
あ、REMOTE_ADDRだと出来た。 なんでリモホはダメなのかなあ
なにがどうダメなの? あなたの脳内を他人は読めないよ
>82-83 最近は使えないところが多いね。 何でダメかはサーバー会社にでも聞いたら?
>>82 gethostbyaddrとか使っても駄目かい?
>>84 アクセスしても、「あなたのリモートホストは、です。」
しか出てこない。
>>85 あっ。そうですか。リモートホスト取得
ってなんか鯖に不都合な事ってあるんですかね?
>>82 $host= $ENV{'REMOTE_ADDR'};
$host = gethostbyaddr(pack('C4',split(/\./,$host)),2) || $host;
91 :
名無しさん@お腹いっぱい。 :01/12/30 14:25 ID:u8VYHHVb
>>82 if ($ENV{'REMOTE_HOST'} eq $ENV{'REMOTE_ADDR'} || !$ENV{'REMOTE_HOST'}) {
$ENV{'REMOTE_HOST'} = $ENV{'REMOTE_ADDR'} if (!$ENV{'REMOTE_HOST'});
$ENV{'REMOTE_HOST'} = gethostbyaddr(pack('C4',split(/\./,$ENV{'REMOTE_HOST'})),2) || $ENV{'REMOTE_ADDR'};
>>87 > ってなんか鯖に不都合な事ってあるんですかね?
いちいち要求がくるたびにリモートアドレスからホスト名をルックアップしていたら、
サーバーに多大な負荷がかかるから。
通常は必要時だけ(Perlのgethostbyaddr()等で)逆引きできるしてある。
それでもiswebみたいに逆引きできないところがあるけど。
93 :
92 :01/12/30 16:19 ID:???
×できるしてある。 ○できるようにしてある。
94 :
名無しさん@お腹いっぱい。 :01/12/31 02:15 ID:j9i5Z4Nr
this_is_query.cgi?message=%90%C0%82%C1%82%C4%83%88%83V%81I とかってやつの ? 以降を URL エンコードするってよくいいますよね。 で、その URL エンコードってのには、& や = でバラしたりとかいう作業も 含まれているとは思うんですが、 単純に + を半角スペースにしたり %7e を ~ にしたりすることだけのことは なんていうんでしょうか? やっぱり URL エンコード? それとも URI エスケープ?
url-decode
96 :
名無しさん@お腹いっぱい。 :01/12/31 02:55 ID:9syMh91n
$host = gethostbyaddr(pack('C4',split(/\./,$ENV{'REMOTE_ADDR'})),2) || $ENV{'REMOTE_ADDR'};
97 :
名無しさん@お腹いっぱい。 :01/12/31 03:02 ID:9syMh91n
>>66 >けど、webprog板だけ、何故かバナーと背景が見えないなあ。
>他の板は普通に見えるのに。
<img src="../
~~~
が原因。
ディレクトリが1層下になるからね。
read.cgiもこれを利用して、
<a href=66>
見たいにできるの。
>>94 > で、その URL エンコードってのには、& や = でバラしたりとかいう作業も
> 含まれているとは思うんですが、
URLエンコードはURLに使用できない文字を暗号化すること。
ちなみにエンコード・デコードに分割は関係ない。
URI::Escapeは誤りってことなのか。
100 :
94 :01/12/31 16:20 ID:+8aj9sSZ
URLエンコードって、、、いや、デコードのまちがいっす、鬱。
>>98 ってことは、暗号化や復号化の処理自体がエンコードなりデコードってことで
いいってことなんですか、、、ありがとうございます。
いや、ちょっと気になったもので。
こういう「ちょっと気になる」ってのがいちばんイライラするんですよね。
とにかく、ありがと。
かなり初歩的な質問で申し訳ないですが BBSやカウンターを取りつけるには まずサーバーにページを借りてからするものでしょうか?
「取り付ける」が何を意味するかによる。 ページを借りるって言うのも意味がわからない。 もう少し詳細を書いてくれんと答えようがないYO!
もうちょっと詳しく言うと BBSを借りてきて、実際使えるように設定するには サーバーからHPスペースをもらってからでないと ちゃんと設定できないのしょうか
>>103 別にスペースを借りてこなくても
自分のPCで疑似環境を構築してテストしてから借りればいいんじゃん?
105 :
名無しさん@お腹いっぱい。 :01/12/31 18:24 ID:JU12p1Rx
perlでセッション管理をしたいんですが、定石だとhiddenで渡すと思いますが、 その場合、ページの切り替えのときは<a>タグじゃなくて<form>で 切り替えていかないといけないのでしょうか? リンク先がたくさんあると<form>がその分多くなってしまう気が・・・ 何か良い方法があれば、ご教授ください。
>103 レンタル掲示板やレンタルカウンタの事? 大方は前もって掲示板を借りてても問題は無いと思うけど。 必要な時は自分で設置するから借りた事は無いが、理論上は問題無い。 サービスによっては前もって把握したがるサービスもあるかもしれないけど。 せいぜい気にすべきは掲示板での戻り先くらいな物だろうけど、これは多分後で 設定できるだろうし。 …でもこの質問、少し板違いな気もするが。 Web製作の方がまだ良いかと思われ。
GETにするならcookie使わないとね。 URIに埋め込むとreferer洩れした時にまずい。
リダイレクトすればいい
110 :
名無しさん@お腹いっぱい。 :01/12/31 23:47 ID:HmADGb+H
sunでcgiwrapが動いてるサーバがあります。 ここで使うスクリプトはeucコードじゃないとだめだっけ? (設定によるのかな?) 文字ヴァケで悩みまくり・・・。 データをjcodeでsjisにして、保存して、見てみると文字ヴァケ・・・。 (htmlのmetaで文字コードは指定していません) サーバの使いかた忘れちゃったよ。
112 :
110 :02/01/01 00:38 ID:jV/yJayj
勘違いしてますね。 全部sjisにしたら直りました(たぶん・・・)
新年オメデト、 なんか殺伐としてるからさぁ・・・。 あごめん、邪魔した?
114 :
名無しさん@お腹いっぱい。 :02/01/02 01:53 ID:iq5oPPqB
VC++6.0でCGI作らなくちゃならないんですが、何か良い参考書ありますか? 本屋行っても全然ないんで困っちゃってます。誰か助けて。
1冊CGIの本買って読めばいい(つーかWebで十分だが) あとはコマンドラインアプリ作ってhttpdと話すだけ CGIよりhttpdの設定本の方が良いかもね
>>114 ,115
標準入出力でやりとりするだけだから易しいもんだよね。
わざわざVC++なんかで組むのが馬鹿らしいくらい。
117 :
名無しさん@お腹いっぱい。 :02/01/02 02:33 ID:X3xNyY3j
>>115-116 ということは、先ずは最初に何か関連本を読んだほうが良いということですね。
早速、本屋に行ってみます。ありがとうございました。
CGIはインターフェイスをHTMLで作れるからいいよな。 コンソールアプリと同じような感覚で作れるし。
120 :
チュウ :02/01/02 18:33 ID:dZQOJH1p
フォームメールのE-Mail入力チェックを外したいんだけど やりかたがわかりません。 コメントアウトが#を加えるってことまでは自分で調べたのですが いざ#を付けてみてもうまく動作しません。 だれか詳しい人教えてちょ〜 #------------------------------------ # 入力チェック #------------------------------------ #お名前・onamae に入力チェックをかけない場合はコメントアウトして下さい if ($onamae eq "") {$errno=11;&error; } #メールアドレス・emailに入力チェックをかけない場合はコメントアウトして下さい if (!($email =~ /(.*)\@(.*)\.(.*)/)) { $errno=12;&error; }
if (!($email =~ /(.*)\@(.*)\.(.*)/)) { $errno=12;&error; } ↓ # if (!($email =~ /(.*)\@(.*)\.(.*)/)) { $errno=12;&error; } で良いんじゃないのか? にしても酷いスクリプトだな。マジックナンバーじゃなくて定数を使ってくれ…。
グループウェアっぽいものを作っているのですが、 ユーザがログアウトしたあとにブラウザで前のページに 戻れないようにするのってどうすればいいんでしょうか。 どなたか知っていたら教えてくださいm(__)m
123 :
名無しさん@お腹いっぱい。 :02/01/02 21:53 ID:VG6leNvJ
http://www2.org1.com/~eiji/upload/uploader.cgi ここのみたいに、JPGファイルをアップロードして、その画像ファイル一覧を
GIFの縮小画像でサムネイル一覧表示をするスクリプトを探しています。
アップロードされた画像を単純にHTMLのタグで縮小表示してるのはたくさん見つかったんですが
そうすると大量のサムネイル表示には重くて適していないもので。
「探しています」スレッドでは誰も応えてくれなかったので、ソースレベルでどのような
ことを行っているのかお聞きしたく書き込みました
宜しくお願いします
>>122 出来ません。
まあ、ユーザーが自分で明示的にログアウトした後なら、
セッション情報がサーバから消されている筈で、
恐らくユーザーが前のページに戻ったところで、
無効なセッションとしてエラー処理されるだろうから問題ないでしょう、きっと。
プ
126 :
名無しさん@お腹いっぱい。 :02/01/03 08:41 ID:OYtOtVsw
CGI 使ってリモートブックマークみたいなのを作ってるんですが、 そこから飛ぶときに出来れば Referer を渡したくありません。 Location で飛んでも Referer 渡されちゃうし。 どうやったら Referer 渡さずに飛べるんでしょう?
早く教えてください!!!
早くしてください!!!!!
>>126 そのブックマークスクリプトを起動する際に
パスワード認証するようにして、
Refererを知って見に来た外部の人間には
見られないようにすればいいと思われ。
131 :
名無しさん@お腹いっぱい。 :02/01/03 09:24 ID:OYtOtVsw
>>130 でも、それだと"登録してる"って事実は漏曳しちゃうわけですよね。
うーん....
132 :
名無しさんに接続中… :02/01/03 10:21 ID:KWfhi5kb
>>123 自分で作るしかないようなきがするが
特にGIFの生成に関するのでフリーでというのは虫がよすぎる。
GIFの生成わりと簡単なのでネットで調べるとヨシ。
cgiをSSIで呼び出すときにクエリー文字以降のコマンドを実行したいのですが どうすればよいのでしょうか? 具体的にはimgboard.cgiの2ページ目、3ページ目…を 2.shtml、3.shtml…として呼び出したいです。 1ページ目はimgboard.shtmlに <!--#exec cgi="cgi-bin/imgboard.cgi"--> と書いて正常に表示されます。 2ページ目は2.shtmlに <!--#exec cgi="cgi-bin/imgboard.cgi?page=2"--> としてみましたがエラーが出てしまいます。
>>134 2.shtml,3.shtml…それぞれに
<!--#exec cgi="cgi-bin/imgboard.cgi"-->
と書き、
imgboard.cgiの中で環境変数DOCUMENT_URIを調べて、
呼び出し元を判別すればよい。
136 :
名無しさん@お腹いっぱい。 :02/01/03 21:42 ID:rXCVYJ/4
フォームからの受け取り値が多くて、 未記入は漏れなく許さない形にすると、if文の荒しになります。 if( $hage eq "" ){ print "Content-type: text/html\n\n"; print "<html><head><title>未記入です。</title></head>\n"; print "<body>\n"; print "<p>未記入です。</p>\n"; print "</body></html>\n"; } if( $aage eq "" ){ print "Content-type: text/html\n\n"; print "<html><head><title>未記入です。</title></head>\n"; print "<body>\n"; print "<p>未記入です。</p>\n"; print "</body></html>\n"; } ... と延々書いていくしかないんですか。非効率的な気がします。
あと、とりあえずそれでもいいんですが、 この場合未記入でもその後の処理は続いちゃいますよね? if内処理の中に__END__を入れればいいの?
if($hage eq "" || $aage eq "" ){ print "Content-type: text/html\n\n"; print "<html><head><title>未記入です。</title></head>\n"; print "<body>\n"; print "<p>未記入です。</p>\n"; print "</body></html>\n"; exit; }
&error("hageが未記入です") if $hage eq ""; &error("aageが未記入です") if $aage eq ""; sub error { my $msg = shift; print <<"_EOE_"; Content-type: text/html <html><head><title>未記入です。</title></head> <body> <p>$msg</p> </body></html> _EOE_ exit; }
>>136 require 'cgi-lib.pl';
&ReadParse;
foreach (values %in){
if(!$_){エラー処理;exit;}
}
>>131 redirect.cgiとかそういうのを作って、redirect.cgi?url=
http://foo/bar/ として呼び出すと
<meta http-equiv="refresh" content="0;url=
http://foo/bar/ ">
というHTMLを吐くようにする。
んで、ブックマークスクリプトで表示するリストではredirect.cgiを使うよう
にすればOK。
ありがとう。 下のような感じなのかな www.users.yun.co.jp/~moriq/lang/cgi/tips.html 適当に改ページの処理らしき所に突っ込んでみたけど動作せず。 # ページを決める $total_page=@PAGE_START; if($FORM{'page'} > 0){ if($FORM{'page'} > $total_page){ $disp_page = $total_page; }else{ $disp_page = $FORM{'page'}; } }else{ $disp_page = 1; } $next_page = $disp_page + 1; $pre_page = $disp_page - 1; if ( $ENV{'DOCUMENT_URI'} ) { $page_name = $ENV{'DOCUMENT_URI'}; } else { $page_name = $ENV{'PATH_INFO'}; } if($pre_page > 0){ &output_kiji_html; 大本のCGI www.big.or.jp/~talk/t-club/soft/mini_r6/imgboard122r6.zip
144 :
名無しさん@お腹いっぱい。 :02/01/04 12:38 ID:+vgAy2bq
メールアドレスの形式を判定して .comや.netや.orgや.to以外のドメインを弾く場合につかう 正規表現って? .*@.*\. この先がわかりません。
146 :
名無しさん@お腹いっぱい。 :02/01/04 12:54 ID:+vgAy2bq
>>145 そんなに難しいもんなの?
if ( ! $mail eq .*@.\.[com,net,org] ){
ふせー
}
とか出来ないの?!萎えるなあ。。
難しいと思うならよく読めよ 簡単と思うなら自分で考えろ、お前は自分で自分を簡単な事も考えられない 馬鹿だと言いたいのか? 実は正規表現知らんだけちゃうんかと
結局、perlってダサイのか
149 :
これでいいのかな?なんだ簡単じゃん。 :02/01/04 13:09 ID:+vgAy2bq
$mail_regex = q{(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\\} . q{\[\]\000-\037\x80-\xff])|"[^\\\\\x80-\xff\n\015"]*(?:\\\\[^\x80-\xff][} . q{^\\\\\x80-\xff\n\015"]*)*")(?:\.(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x} . q{80-\xff]+(?![^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff])|"[^\\\\\x80-} . q{\xff\n\015"]*(?:\\\\[^\x80-\xff][^\\\\\x80-\xff\n\015"]*)*"))*@(?:[^(} . q{\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\\\[\]\0} . q{00-\037\x80-\xff])|\[(?:[^\\\\\x80-\xff\n\015\[\]]|\\\\[^\x80-\xff])*} . q{\])(?:\.(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,} . q{;:".\\\\\[\]\000-\037\x80-\xff])|\[(?:[^\\\\\x80-\xff\n\015\[\]]|\\\\[} . q{^\x80-\xff])*\]))*}; if ($email !~ /^$mail_regex$/o) { print "不正なメールアドレスです\n"; }
>>148 うんダサいね、少なくとも君の半分位はダサい
151 :
:02/01/04 13:28 ID:SyaInDky
アンケートフォームを使っているのですが、直接CGIのアドレスを入力して CGIを呼び出すと空白の結果が送られてきて困っています。 直接CGIを呼び出したときにエラーのHTMLを表示させるにはどう追加記述すればいいでしょうか。
152 :
>>151 :02/01/04 13:32 ID:+vgAy2bq
if( $ENV{'REQUEST_METHOD'} eq "" ){ print "エラってる1\n"; }
153 :
>>151 :02/01/04 13:34 ID:+vgAy2bq
if( $ENV{'REQUEST_METHOD'} eq "" ){ print "エラってる\n"; exit; } #これをスクリプトの上に置く
荒れてるなぁ・・・・
>>149 まぁそんな感じで
>>151 環境変数を適当にチェックするか、フィールドをif($IN{hoge} eq ''){error;
みたいに検査すれば良い、、、、
が!、そんな認識でsendmailをopenしてるなら厨房の餌食にされる可能性が
凄く高いから根本的に本でも読むことをお勧めする
156 :
:02/01/04 13:42 ID:SyaInDky
>>152 スクリプトの一番上に追加したらいいのですか?
それでもまだ駄目なようですが。
そんな腐ったフォーム使うなよ (´д`;) 別のにしろ
158 :
:02/01/04 13:47 ID:SyaInDky
>>157 なかなか良いのが無くて困っていたんです(;´Д`)
if ( ! ($ENV{'REQUEST_METHOD'} eq "POST") ){ print "Content-type: text/html\n\n"; print "<html><body>エラー</body></html>\n"; exit; }
160 :
:02/01/04 14:11 ID:SyaInDky
>>159 うまくいったようです。有り難う御座います。
あと送ってきたのホストを完全に取得する方法分かりますか?
今だったら、*.ocn.ne.jpのようにかなり曖昧なものなんです。
161 :
名無しさん@お腹いっぱい。 :02/01/04 14:21 ID:FMoA2DDO
use POSIX 'strftime'; print strftime "%Y%m%d\n", localtime; こうやると年月日が出ると思うんですが、 この数字に7を足すことってできます? ほかの方法があればその方法もご教授頂けるとありがdなんですが。
163 :
名無しさん@お腹いっぱい。 :02/01/04 14:54 ID:FMoA2DDO
ありがとうございます!! スレッドは立てていないですけど助かってません!! ほんと感謝してます♪
>>151 これだろ
www2q.biglobe.ne.jp/~terra/cgi/webhandler.htm
前にサポート掲示板に同じようなこと書き込んだら
「cgiには直接アクセスするような用途は想定していませんとか言いやがった。
こりゃ駄目だと思って自分で改造したけどね。
>>163 お前は何をしてるんだ? 笑
>>162 も言ってるが、最もプリミティブなやり方ならフィールドを
分割した後ツェラーの公式で通算秒に直してやればいい
CPAN漁れば絶対有りそうだが、自分で書いても手間は掛からんだろ
ここは人が少ないんだから、次からはじっくり待つ方が良いぞ
166 :
名無しさん@お腹いっぱい。 :02/01/04 16:48 ID:ZcIQHoBD
KENTのPetitBoardに新記事のマークを付けるにはどうしたらようのでしょうか???
↑何でマルチすんだよ糞ガキ消えろ
168 :
名無しさん@お腹いっぱい。 :02/01/04 16:56 ID:ZcIQHoBD
うるせぇ俺は20歳だ。そんだけ気になっとんだ。
169 :
名無しさん@お腹いっぱい。 :02/01/04 16:57 ID:ZcIQHoBD
そんな事より即効で文句言うてめぇの方がガキだ。
じゃ教えるから消えてくれ PETITのログには投稿日時が入ってるが変に整形されてしまっている。 だからログに細工して <>1000000000の 様なデータを追記して 書き出し時に比較するか、 元から入ってる、日本語表記の時刻から1970年からの秒数を割り出して 比較すればいい
171 :
名無しさん@お腹いっぱい。 :02/01/04 18:22 ID:+vgAy2bq
フォームを使って英数字や記号以外の物は弾きたいんですが、 (日本語やら記号やら全角は弾きたい)どう書くんでしょう。 $date =~ /[a-zA-Z]/ をifで使うと英数字がとりあえず入ってればよくなりますよね。 とにかく「全角物は排除」したいんですが。。。
修正 (日本語やら記号やら全角は弾きたい) ↓ (日本語やら全角記号やら全角は弾きたい)
$date!~/[^\w\dその他の記号]/
>>173 すいません、むちゃくちゃ簡単な花氏でした。。
特殊文字を忘れてた。
あ、間違えた(笑)
$name =~ /[\Wその他の記号]/ でいいと思われ
あ、よくなかった #date =~ /[^\wその他記号]/ だな
# -> $
179 :
あほ :02/01/05 19:53 ID:???
sub html { print <<EOE; Content-type: text/html <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> </head> <body> <p>あほ</p> </body> </html> EOE return(); }
180 :
あほ :02/01/05 19:55 ID:???
↑htmlを関数を作っておいて楽にしたいんだけど、 {}の中にタブを入れるとエラーになる。。。 print << ってタブいれらんないの?
181 :
あほ :02/01/05 19:55 ID:???
いれらんねーとソースが見にくいんだよー
EOEの前にタブを入れたのかな? ヒアドキュメントの最後の文字(この場合EOE)の前には入れられないよ。
183 :
あほ :02/01/05 20:13 ID:???
184 :
名無しさん@お腹いっぱい。 :02/01/06 00:52 ID:4gpFhzTE
kentwebのアクセス解析をつかっています。 これのOS判別にWinXPがないんですが、 簡単に追加とかってできますか? Web制作の初心者スレッドでこちらに誘導されました。 よろしくおねがします。
ちょっと調べてくるから待ってろ。
186 :
名無しさん@お腹いっぱい。 :02/01/06 00:56 ID:d7n79FF9
<Lesson1> まずreport.cgiから以下の一行を探す。 elsif ($agent2 =~ /Wind?o?w?s? ?NT ?5/i) { $os = 'Win2000'; } <Lesson2> そしてこれをコピペで書き変える。 この行はWin2000の上にXPが無いと、XPも2000で ヒットしてしまうから注意してくれ。 elsif ($agent2 =~ /Wind?o?w?s? ?NT ?5.1/i) { $os = 'WinXP'; } elsif ($agent2 =~ /Wind?o?w?s? ?NT ?5/i) { $os = 'Win2000'; }
188 :
184 :02/01/06 01:28 ID:4gpFhzTE
◆8WZMxnc2さん、ありがとうございます。 さっそく、そのように直してみました。 WinXPの人がくるのを楽しみにしときます。 ありがとうございました。
/Wind?o?w?s? ?5/ なんで /Win(dows)? ?5/
としないのか小一時間(以下略
>>187 5.1じゃなくて 5\.1 だっぺよぉ。
190 :
名無しさん@お腹いっぱい。 :02/01/06 14:01 ID:IdoSmDBF
セミコロン ; ってどういう基準でどこにつけるの?? なんか本には基本すぎるせいか書いてない・・・鬱だ・・・
基準? ; を書きたい所でLの右隣のkeyを押せばいいんだよ
192 :
名無しさん@お腹いっぱい。 :02/01/06 14:15 ID:IdoSmDBF
いや、文末に必ずつけなきゃいけないの?? 命令の終わりにつけるとか?
つーか言語何よ? 取り合えず文の終りに付けとけ ついでにその本捨ててまともな本買え
>>190 rubyには特に;は必要ありません。
だから本にも書いてないのでしょう。
>>194 MS-DOSバッチファイルでは;は必要ありません。
だから本にも書いていないのでしょう。
196 :
190 :02/01/06 14:54 ID:???
>193 194 195 すいませんperlです、InlineCの中にInlineAssemblerで書いています それでは 是非回答願います
198 :
名無しさん@お腹いっぱい。 :02/01/06 18:53 ID:3vLHBFrh
えーとプレゼントキャンペーンの集計を1週間に1回やってます。 だんだんデータが重くなり、Excelにコピペするのもかなり大変。 で、1週間毎のデータになるよう、ある時間できって、前の週の データを全部削除してお尻(後ろのカラム)のデータの並びが 時々おかしくなってるんで、それを直してると4時間はかかり ます。普通はどんなやり方をやってるんでしょ?VBA?Perlで スクリプト?なんかいいスクリプトの場所キボーン。
>>198 まず、落ち着いて日本語を書こう。
Perlなら楽だよ。
200 :
198 :02/01/06 22:09 ID:cayoIMr7
アンケートのデータを顧客データを1週間に1回集計。 ブラウザ上に表示されたものをコピペでエクセルに貼付ける。 (しかし、2000件を超えたあたりからCtrl+Aでブラウザ上の テキストを全て選択すると砂時計が回ったままになる、) この時前の週のデータは全て削除し、今週のデータだけにします。 あと、しかるべきカラムにないデータを移動。 これが1万件ぐらいあると、スクロールして全部見るだけで、とても 時間がかかる、どうしよう?というのが質問の主旨です。
>>200 書き込む前に読み返してる?伝わりにくいったらありゃしない。
で、質問が漠然とし過ぎてる。
顧客からどういうデータを取って、どういう集計をして
最終的にどういうデータを得たいのかをはっきりさせて、
今はどうしてるのかを書かないと誰も答えられないよ。
並びがおかしくならないまともな集計スクリプト書いて、
エクセルファイルで出力したら?としか言えない感じ。
>>200 >ブラウザ上に表示されたものをコピペでエクセルに貼付ける。 >(しかし、2000件を超えたあたりからCtrl+Aでブラウザ上の >テキストを全て選択すると砂時計が回ったままになる、) IEだったら、「名前を付けて保存」っていうのがあるはず。 テキスト形式で一度それを保存して、そいつをExcelで開くように したら? つーかCGIの問題ですかこれ?
初めからcsvかxsl吐けば良いかと IEか固まるのは多分CGIではどうしようも無ぃ
204 :
名無しさん@お腹いっぱい。 :02/01/07 00:42 ID:BlOU+qgT
集計機能付きアンケートフォームみたいなスクリプトって ひどく一般的な気がするんです。 あちこちにあると思います。それこそ。 ただ、それつかってどういうことがやりたいのかとか、 どういう集計をしないといけないので手作業してて、4時間もかかるのか とか、いろいろ具体的に書けば書くほど、アドバイスをもらいやすくなるんでしょうね。 こういう集計とかって、Perlの得意分野なので、内容次第では、 ここですごいアドバイスがもらえると思いますよ(笑)
205 :
名無しさん@お腹いっぱい。 :02/01/07 06:55 ID:HrNqkraE
画像のみをアップロードできるCGIを探しています。 みんなが投稿できるようなタイプのものです。 そういったCGIを提供しているところご存知ありませんか?
2chみたいなスレッドフロート式掲示板作ってるんですが、 同じリモートホストからスレ立て制限する方法ってありますか?
>207 スレ立て時にリモホを記録して、一定回数以上のリモホを弾く。
209 :
207 :02/01/07 21:06 ID:???
>>208 ありがとうございます。
あとは自力でなんとかしてみます。
210 :
名無しさん@お腹いっぱい。 :02/01/08 00:49 ID:RDtLz+8f
添付ファイルを送るプログラムで参考になる物(サイト)ありますか?
211 :
210 :02/01/08 00:55 ID:RDtLz+8f
あ、ローカルファイルの参照ではなくサーバー上とか CGIと同じディレクトリにあるファイルを送りたいのです。
CGI.pm
>>213 その手のRFCの日本語訳しているページってどこでしたっけ?
215 :
名無しさん@お腹いっぱい。 :02/01/08 04:55 ID:bkocNLwM
>>142 その方法でも、redirect.cgi が Referer として渡されちゃいますよね。
redirect.cgi がもっと広範囲で使われてるならいいんですが、
そのブックマーク用スクリプトからしか呼ばれないのなら
結局同じような気がします。
(redirect.cgi から来た → ブックマークされとる)
>>216 あひっ、試したら Referer 渡されてませんでした。
試しもしないで偉そうなこといってごめんなさーい。
ありがとうでした。
218 :
名無しさん@お腹いっぱい。 :02/01/08 07:30 ID:mMhN1vkm
phpとかperlからメール送るとき、 errry-to やreply-to って、つけるべきなんでしょうか? Fromだけで十分ではないんでしょうか?
219 :
名無しさん@NEmacs :02/01/08 07:42 ID:IRCUA1xT
s/errry-to/Errors-To/ として答えます。 Errors-To: は非標準フィールドなので、つけても無意味です。内部的にこの フィールドを利用してエラーメール返送する MTA がありますが、それを期待 するべきではありません。(これは UUCP 時代の名残です。) Reply-To: は、返信先を指定したいような事情があるときにつけます。MTA は 通常これを参照しません。これを参照するMTAは腐っています。 必要であれば、エンベロープ送信者も指定します。エラーメールはこのアドレ スに返送されます。(sendmail の -f オプション) MTA = Mail (Message) Transfer Agent # From: とエンベロープ送信者、To:, Cc: とエンベロープ受信者は別物です。念のため。
220 :
名無しさん@お腹いっぱい。 :02/01/09 00:15 ID:nYi4jqfK
文字(日本語)のデコードにjcode.plをつかってるんだが、 半角のみ(ゴルァとか)でデコードすると、文字化けして転送されてしまいます。 コードは'sjis'で設定してるんですが、ほかに何か割るいとこがあるんですか? おまえら押しえてください。
元コード種の自動判別に失敗してるので手動で指定する。
222 :
名無しさん@NEmacs :02/01/09 01:34 ID:EMrXtxph
そもそも「半角」を使うのがダメ。 (「半角」が混じると、EUC-JP と Shift_JIS の判定が困難になる。) # ここで、「半角」= JISX0201 Kana
223 :
よみ :02/01/09 10:32 ID:C5sUC2Kc
超初歩的な質問で申し訳ないんですが あるファイル(10行のファイル)をOpen読み込んでたとえば5行目とかを消すもしくは置き換えるのにはどうしたらよろしいでしょうか? お教えください
>>223 Perlかな? 一番簡単な方法、たぶん。
# ファイル(hoge.txt)を開いて配列に突っ込みます
open FH,"+< hoge.txt" or die $!;
@lines = <FH>;
# 5行目をあぼ〜んする場合です
splice @lines,4,1;
# 5行目を置き換える場合です
$lines[4] =~ s/NO/YES/;
# 書き戻します
truncate FH,0; seek FH,0,0;
print FH @lines; close FH;
exit;
>>223 DB_FileのDB_RECNOを使う
use DB_File;
use Fcntl qw(:flock);
my $db = tie @lines, DB_File => 'hoge.txt', O_RDWR | O_CREAT, 0666, $DB_RECNO or die $!;
# ロックする場合
open DBF, '+<&=' . $db->fd or die $!;
flock DBF, LOCK_EX or die $!;
undef $db;
# 5行目をあぼ〜ん (spliceは実装されてない?)
delete $lines[4];
# 5行目を置き換える
$lines[4] =~ s/NO/YES/;
untie @lines;
226 :
よみ :02/01/09 12:32 ID:C5sUC2Kc
>>224 ,225
親切にありがとうございました。
しかし我ながら223のようなわかりにくい文章書いてるな。
あーはずかし!
227 :
よみ :02/01/09 13:01 ID:C5sUC2Kc
>>225 しつもんです。
lines[4] =~ s/NO/YES/; だと、5行目のNOのところだけYesに置きかわるんじゃないですか?
DB_Fileってベタファイルにも使えるのかぁ・・・・・・ふむふむ >227 lines[4] = "新しく挿入したい文字列"; だよ。 後は検索しよー
230 :
_ :02/01/11 00:46 ID:w8TxSfcA
cookieについて質問です。 cookieを1回の表示で2つ保存期間の違うものを保存したいのですが、 どのようにすればよいのでしょうか? 以下のようにすると、同じファイルに保存されます。 <META HTTP-EQUIV=Set-Cookie CONTENT=cgi_cookie=$c_value;expires=$del_date> <META HTTP-EQUIV=Set-Cookie CONTENT=lim_cookie=$c_u_value;expires=$del_date_u> 教えてください。
名前で区別したら別々に取得できるんじゃないの?
232 :
_ :02/01/11 01:31 ID:bEyApFVZ
>>231 名前を変える方法を教えていただけませんか?
233 :
名無しさん@お腹いっぱい。 :02/01/11 05:19 ID:islSeYg6
>>232 >>231 じゃないが、取得するときに(どうやってるかしらんが、ハッシュ?)
そのメタタグに書いてある名前で判断すればよいということじゃないの?
234 :
名無しさん@お腹いっぱい。 :02/01/11 13:27 ID:2aMDT30w
初心者の質問ですみません。 掲示板の名前欄で、デフォルトで最初から任意の文字を入れておくには どうしたらいいんですか? 例えば名無しさんと最初から名前欄に入れておきたい場合、 $name = $FORM{'name'}; となってるのを下のものに変えるだけじゃだめなんですか? $name = $FORM{'name'} ||= "名無しさん"; これだとダメだったので、他に変える部分が必要なんでしょうか?
$name = $FORM{'name'} || "名無しさん"; ||= じゃなく ||
236 :
名無しさん@お腹いっぱい。 :02/01/11 14:03 ID:IFHU684G
アクセス解析のCGIを入れたいのですが そういうのって、サーバに負担がかかりやすいものなのでしょうか? うちは、BBSを5つにチャットを2つ(全部さびれててますが) カウンタも自分でCGIを探してきて用意してるので 負担をかけすぎて迷惑にならないか、心配です。
>236 アクセス解析は,呼び出される度に書き込むBBS みたいなものだから ログサイズとアクセス数によりけり
238 :
234 :02/01/11 14:51 ID:2aMDT30w
>>235 ありがとうございます。
それでやってみましたが、名無しさんと入らなくて空白のままでした。
どうしてだろう…
>234-235,>238 ローカルでテストしたら両方とも成功しました。 Perlのバージョンが古いとかはありませんか? Perl4だとエラーが出たような。
240 :
240 :02/01/11 15:00 ID:3F158jXQ
2ちゃんねるそっくりな掲示板をNTで構築したいと考えています NTにはわからないなりにもAnHTTPDとPerl for Win32を いれて動かそうと考えています 2ちゃんねるそっくりな掲示板ソフトというのはあるのでしょうか? 教えてください
>>13 さんのようにダイヤログを表示させてそこにファイルをいれたいんですが
まったくもってよくわかりません。
use CGI;
$query = new CGI;
print $query->header(-type=>"application/octet-stream", -attachment=>'data.txt');
$filename = $query->param('attachment');
open OUT,">>data.txt" or die "OUT miss\n";
print OUT @hoge;
close OUT;
こんな感じかと思ったんですができません。
244 :
243 :02/01/11 15:21 ID:???
ああごめん,アップロードしたいのかと読んじゃった。 ファイル開かずにそのまま print @hoge; とかでいけない?
245 :
242 :02/01/11 15:58 ID:???
>>243-244 様
おお、なるほど。できました。ありがとうございます。
4時間ほど悩んでおりました;
しかしダウンロードするファイル名がCGIの名前(これはtest.cgiでやってるの
でtest.cgiという名前)になってしまうんですよねぇ(^^;
もうしばらく格闘してみます。
感謝
246 :
名無しさん@お腹いっぱい。 :02/01/11 17:11 ID:EHUnad42
CGIの中にHTMLを組み込む(表現おかしいかも・・・) 時って 1 のような感じになりますよね。 <font size=\"3pt\" color=\"$color1\"> ←1とする。 <font size="3pt" color="$color1"> ←2とする。 1 のようにしたときと 2 のようにしたときでは表示が違うのですが・・・。(文字の大きさ) 2 のような感じで表示したいのですが・・・インターネットサーバーエラーがでてしまいます・・。 どうにかできないでしょうか?
print "<font size=\"3pt\" color=\"$color1\">"; ←<font size="3pt" color="$color1の内容"> print '<font size="3pt" color="$color1">"; ←<font size="3pt" color="$color1"> 言いたいことがよくわからん つか3ptなんて記述は間違ってるぞ
print qq(<font size="3pt" color="$color1">); "の中には"を使えないのは知ってるかな? ちなみに3ptってのはスタイルシートで使う単位だから そのままでは使えないよ。
249 :
名無しさん@NEmacs :02/01/11 21:15 ID:fZtnJrfW
重箱の隅をつつきにきました。
>>234 ,
>>235 ||= でも、$name = ($FORM{'name'} ||= "名無しさん");と解釈されるので特
に問題はないかも。この場合、$FORM{name} が偽の場合、$name, $FORM{name}
が「名無しさん」になります。
あと、$FORM{name} が偽、すなわち $FORM{name} == 0 の場合でも「名無しさん」
になっちゃうので注意。"" と比較するのが吉かもしれず。
250 :
235 :02/01/11 23:11 ID:6cFSC0f9
んじゃ $name = ($FORM{name} eq "") ? "名無しさん" : $FORM{name};
251 :
名無しさん@お腹いっぱい。 :02/01/12 12:41 ID:bQnlwZdC
あと、ptは正しい単位じゃないのでpxで指定しよう。fontタグに style="text-size: 9px"とか埋めればよし。 だいいち、3ptってPCじゃフォントがつぶれて読めないが・・・ それに元々qqいらないな、この場合 <font size=3 color=$color1>でいいんじゃ?
253 :
_ :02/01/13 00:12 ID:gKFm/uwA
質問です。 dateという名前の配列があり、$date{'check1'}、$date{'check2'という風に 数が上がっていきます。 forループで i の値を1からインクリメントし、その i の値を使って配列中 の全ての要素に同じ事を実行する際に $date{'check$i'} みたいなことはどのようにすればよいのでしょうか?
>>253 %date = (check1 => one, check => two);
として,
素直にやるなら
for (my $i=1; $i<=2; $i++){
print $hash{"hoge$i"};
}
とかやる。
だけど,これだとハッシュ使う意味が無い。
@date_checkとかの配列使うほうがいいのでわ。
255 :
_ :02/01/13 00:39 ID:gKFm/uwA
>>254 ありがとうございました。
@date_checkでやります。
Yomi-search ver4.19なんですが、 ランキングとかをSSIで1部だけ表示することは可能らしいんですが、 初心者なのでどう記載すればいいかわかりません。 どなたかご教授ください。
板ちがいでした。すいません。
258 :
:02/01/14 01:36 ID:LNUBzUKr
259 :
名無しさん@お腹いっぱい。 :02/01/14 01:55 ID:a1RCZc6A
漏れの場合は、フォームデータをコンバートするとこで、 $gCode = jcode'getcode(*value); jcode'convert(*value,$gCode); とやってる。一応うまく逝ってるが。 *valueは変換する文字列データが入った$valueのグロブ。
260 :
259 :02/01/14 01:56 ID:a1RCZc6A
261 :
258 :02/01/14 02:14 ID:LNUBzUKr
259さん、御回答ありがとうございます! えっと、これはCGI本体の中を書き換えるんですよね? デコード処理のところで # S-JISコード変換 &jcode'convert(*value, "sjis", "", "z"); # タグ処理 if ($tagkey) { $value =~ s/<>/<>/g; } else { $value =~ s/\&/&/g; $value =~ s/</</g; $value =~ s/>/>/g; } というのを見つけたんですが、ここで良いのでしょうか?
262 :
259 :02/01/14 02:29 ID:a1RCZc6A
それでいいと思う。
263 :
258 :02/01/14 02:39 ID:LNUBzUKr
>>262 ありがとうございます。挑戦してみます。
264 :
名無しさん@お腹いっぱい。 :02/01/14 02:44 ID:WCoaMU5B
すみません。教えて下さい。 CGIから、sendmailを使って、メールを送ろうとしているのですが、 他のCGIをマネて、 if (open(MAIL,"| $sendmailpath $mailaddress")) { print MAIL "To: $mailaddress\n"; print MAIL "From: $mailfrom\n"; print MAIL "Subject: $subject\n"; print MAIL "MIME-Version: 1.0\n"; print MAIL "Content-type: text/plain; charset=ISO-2022-JP\n"; print MAIL "Content-Transfer-Encoding: 7bit\n"; print MAIL "X-Mailer: $mailer\n\n"; (中略) close(MAIL); } このように書いたのですが、 メールヘッダの部分が、ちゃんと受け取れる(Subject等がちゃんと反映される)宛先と、 ちゃんと受け取れずに、Subjectとかが本文に含まれちゃう宛先があります。 ちゃんと全てのメールアドレスのヘッダに反映されるようにするには、 どのような書き方をしたらいいのでしょうか? それとも・・・メールサーバ側の問題なのでしょうか?
265 :
名無しさん@NEmacs :02/01/14 03:06 ID:Xxk0RT5R
改行をチェックしろ。 $mailaddress =~ tr/\r\n//d;
266 :
名無しさん@NEmacs :02/01/14 03:07 ID:Xxk0RT5R
というか、$mailaddress のチェックはキチンとしているの? $mailaddress = "|rm -rf ~" とかやられたりすると危険だよ。
267 :
:02/01/14 03:37 ID:2XDiqt89
> 264 CGIからのメールは送信元と送信先が固定の場合のみ利用するのがおすすめです。 メールは必ずJISコードに変換しましょう。 件名(Subject)および送信元(From)が日本語を使用する可能性がある場合はbase64エンコードを施しましょう。
268 :
名無しさん@お腹いっぱい。 :02/01/14 06:22 ID:U3ggfQwh
すいません、少し前にマルチバイトを含む文字列を一文字ずつ扱う方法を書いてた方がいらっしゃったはずなんですが、 そのログがさっきから見つかりません。どなたか覚えてる方いませんか? こんな↓感じの奴です。 $str = "ABCDEFGあいうえお"; for ($i = 0; $i < length($str); $i++) { $c = substr($str, $i, 1); if ($c =~ /[\x80-\xff]/) { $c = substr($str, $i++, 2); } print "[$c] "; } これをShift-JIS等にも対応させてた気がするんですが…
マジレスしておくと、入力と出力はSJISでいいから、 内部で扱うときはEUCにしておいた方が何かと楽だと思うがどうよ?
270 :
268 :02/01/15 00:25 ID:64oBMleE
外部から受け取ったデータを一旦EUCに換えて、出力時にSJISに戻すということでしょうか?
271 :
名無しさん@お腹いっぱい。 :02/01/15 01:55 ID:ueOEc5lO
>>270 スクリプト自体は多分EUCだからそうしたほうがいいような
IISだったら話はべつだけど
272 :
名無しさん@お腹いっぱい。 :02/01/15 16:41 ID:6vPjko5F
CGIのなかで取得できる環境変数のなかで、以下のものは クライアント(あるいはPROXY)に書き換えられるような恐れは ないのでしょうか? REMOTE_ADDR REMOTE_PORT
REMOTE_ADDR, REMOTE_PORT 共に PROXYのものになります。
274 :
名無しさん@お腹いっぱい。 :02/01/15 17:58 ID:6vPjko5F
すいません。「PROXYのものになります。 」っていうのが 仮に PROXYから REMOTE_ADDR=127.0.0.1 などと逝ってきたばあいに、サーバがその変数を信用してしまう のか、それともPROXYとの接続結果からサーバが REMOTE_ADDR を計算するのか、どちらなんでしょうか、 という ことなんですけど セキュリティ板の方がいいですかね?
275 :
名無しさん@お腹いっぱい。 :02/01/15 20:19 ID:vgO+6jY4
>>274 プロキシが言ってくるとかじゃなく、プロキシのIPアドレスになります。
変更はされません。
277 :
名無しさん@お腹いっぱい。 :02/01/15 20:24 ID:ori6SaQV
今度、自分のHPにFLASHによりつくられているBBSを 設置しようと思ってるんですけど、そういうのって 鯖への負担は普通のBBSと一緒なのでしょうか? あんまりプロバの鯖に負担をかけなくないので気になってしまいました。
>>277 借りてるサーバだったら、文句いってくるレベルが迷惑なレベル。
正直、サーバのCPUとかメモリとかOSのカスタマイズによって
全然違うから一概にはいえない。
. ∧ ∧ ( ´ ・∀・`) へー
280 :
名無しさん@お腹いっぱい。 :02/01/15 22:22 ID:6vPjko5F
>>276 THX
とりあえず信用置ける値であるということですね。
281 :
名無しさん@お腹いっぱい。 :02/01/15 23:30 ID:rRhCMmF5
投票用のスクリプトを作ってるんですが 重複を防ぐためクッキーを発行するんですが クッキーを入れていないと投票できないようにしようと思い if(!$ENV{'HTTP_COOKIE'}){&err('クッキーをオンにしてください')} みたいにしたんですがクッキーをONにしててもこのエラーが起こるらしいです どうすればよろしいんでしょうか?
>>281 HTTP_COOKIEはすでに保存されているものが入ってるんじゃ?
一度クッキーを保存するまではヌルなので、エラーが出ると思いますが。
で、クキーオンオフの調べ方ですが、
いい方法かわかんないけど、一度保存して読み出してヌルだったらクキーオフ
ってことでいいんじゃないかな?
283 :
名無しさん@お腹いっぱい。 :02/01/15 23:45 ID:DCX0dA6k
PerlのCGIでクライアントから送られてきたHTTPヘッダフィールドを参照する方法ってあります?
>>283 HTTPヘッダのどの情報が欲しいわけ?
285 :
283 :02/01/16 00:26 ID:hTcSGOIC
>284 J-PHONEの携帯の位置情報が x-jphone-geocode っつーヘッダで送られてくるそうなんですが
>>285 よくわからん。それの情報ソースある?
(JPHONEのページ調べてみたが乗ってなかったんで)
> 283 HTTPプロトコルで送信された以上、Webサーバがまずレスポンスを受けて解釈されるからHTTPヘッダそのものを?Q照するのはできない相談でゲスねー。 まあ幾つかは環境変数%ENVにセットされるけどねー。 取り敢えず環境変数をすべて出力してみて”J-PHONEの携帯の位置情報”を示すものがあるかどうか確認してみ?驍オかないねー。
288 :
名無しさん@お腹いっぱい。 :02/01/16 06:40 ID:b610iUlz
おうちのあぱっちで試したら、J-Phone の拡張したやつは HTTP_X_JPHONE_* って環境変数で渡されてるね。 というか、ヘッダはHTTP_* って形で全部渡される仕様なのかな。 Hoge: hage! Huga: huga- ってかんじのヘッダ付けたら、きちんと HTTP_HOGE、HTTP_HUGA って環境変数 に入ってくれたよ。
. ∧ ∧ ( ´ ・∀・`) へー
290 :
283 :02/01/16 11:40 ID:lifKMDMs
291 :
名無しさん@お腹いっぱい。 :02/01/16 13:19 ID:vsX2ZxEL
>>290 #!/path-to-perl/perl
print <<HEADER;
Content-type: text/html
<html>
<head>
<title>Environment list</title>
</head>
<body>
<dl>
HEADER
print "<dt>$key</dt><dd>$value</dd>\n" while ( $key, $value ) =each( %ENV );
print <<FOOTER;
</dl>
</body>
</html>
FOOTER
これやって、とりあえず環境変数のリスト出してみるとか。
対応機種じゃないやつで試してるとか....
292 :
名無しさん@お腹いっぱい。 :02/01/16 13:23 ID:fQPtm0ns
294 :
名無しさん@お腹いっぱい。 :02/01/16 14:44 ID:meMdeL+L
短文で恐縮ですが、CGIでクライアントの MACアドレスって取得できるんでしょうか?
295 :
名無しさん@お腹いっぱい。 :02/01/16 14:47 ID:gVWdvgji
ここで聞くのが正しいのか自信がないのですが。 ホスト上に保存された漢字を含むファイルの、漢字コードを調べたい と思います。 単純に、ホスト上のファイルがどのコードを使っているか知りたいだけ なので、ファイルをダウンロードしてそのファイルを開くだけで どのコードか表示してくれるようなソフトはないでしょうか? Vectorでざっと見たところ「漢字コードを変換してくれる」ソフトは 見つかるのですが、単純に「判断してくれる」ソフトが見当たらない のです。 どうか、ご教授お願いします。 または、Telnet上でやれる裏技がありましたら教えてください。
296 :
名無しさん@お腹いっぱい。 :02/01/16 14:49 ID:gVWdvgji
よく考えたら、Web製作板の方がよかったかな? CGIで、漢字が化けるという問題について必要に駆られたと いうことで、どうかひとつお許しください。
298 :
名無しさん@お腹いっぱい。 :02/01/16 21:29 ID:5Ojr765Z
初心者なんですが教えてください。 if ($r9 eq "$street") って$r9が$streetと同じと気ってことですよね? もしこれを$streetの文字列の中に$r9の文字列が含まれているときに・・・っていう場合にはどうすればいいでしょうか? $streetにはスペース区切りで複数の言葉を入力するようにしているのでその中のひとつが一致した場合に・・・というようにしたいです。 宜しくお願いします。
300 :
298 :02/01/16 21:38 ID:???
ありがとう。おかげさまでなんとかできそうです。 頑張ってみます。
>293 大金持ちになれるCGI??
303 :
名無しさん@お腹いっぱい。 :02/01/17 11:49 ID:ouB3hVAd
LWPってBIGLOBEとかでも使えるんでしょうか? LWPの使い方みたいなサイトは沢山見つけたんですけど それ以前にDLしてきたモジュールを何処に置いたら良いのかとかの 初歩的な事が散々悩んだんですが解りません、どなたか教えてください。 今やりたい事はCGIを設置するアドレスと全く違うアドレスから ファイルの更新日時を拾うという作業です もし詳しく説明しているサイトとかあれば 何とか頑張ってみますのでURL教えてください。
>>303 LWPがBIGLOBEで使えるかなんてBIGLOBEに聞けばぁ?
なつみかんとか、更新チェッカーのCGIを参考にすれ
305 :
しゅっと :02/01/17 14:25 ID:QKo5a2GA
はじめまして、しゅっとといいます。 Perl超初心者です。下記のソースを実行しても jpeg画像がブラウザに表示できないです。 Hello cgi world 「×」と表示されてしまいます。 どこがおかしいのか分からず悩んでいます。よろしくお願いします。 #!/usr/bin/perl print "Content-type: text/html"; print "<html>"; print "Hello cgi world."; print "<IMG src=test.jpeg>"; print "</html>";
306 :
名無しさん@お腹いっぱい。 :02/01/17 14:26 ID:wRcZzrUC
>303 コンパイルが必要なモジュールは、使えないことの方が多いよ。 コンパイルが必要ないモジュールは(含む、LWPの古い奴とか)、 カレントディレクトリに置いてあれば使えるよ。
307 :
名無しさん@お腹いっぱい。 :02/01/17 14:27 ID:wRcZzrUC
>305 jpeg画像の拡張子がjpgになってないか、JPGになってないかJPEGになってないかとか調べる。
308 :
名無しさん@お腹いっぱい。 :02/01/17 14:29 ID:wRcZzrUC
>305 あと、 print "Content-type: text/html\n"; のほうがいいかも。
print "Content-type: text/html\n\n";
310 :
しゅっと :02/01/17 17:32 ID:QKo5a2GA
>309 ありがとうございます。 しかしながら、出来なかったです。 jpegファイルは、cgiファイルと同じディレクトリにあります。 print "Content-type: image/jpeg\n\n";としましたけど、 駄目でした。。。う〜ん。。。
>310 そのディレクトリに以下の内容のHTMLファイルを置いて表示してみましょう。 ↓↓ここから↓↓ <html> Hello cgi world. <IMG src=test.jpeg> </html> ↑↑ここまで↑↑ CGIの責任には思えないよ。
あ、一つ思い付いた。
そのCGIをまさか、Webサーバー上で試してないよね?
プロバイダのスペースや無料スペースで試してないだろうね?
場所によっては、CGIの動くフォルダで画像とか開けない事もあったはず。
jpegファイルを直URLで確認したり、>311で言ったように
HTMLだけで表示してみたりしてみそ。
つーか、CGIのテストはローカルでやりましょう。
http://tohoho.wakusei.ne.jp/wwwcgi6.htm
313 :
しゅっと :02/01/17 18:12 ID:QKo5a2GA
>312さん htmlファイルを置いて表示したところ、以下のエラーログが出ました。 [Thu Jan 17 18:10:07 2002] [error] (8)Exec format error: exec of /usr/local/www/cgi-bin/test.html failed [Thu Jan 17 18:10:07 2002] [error] Premature end of script headers: /usr/local/www/cgi -bin/test.html 現在は、ローカルで行なっています。 また、/usr/local/htdocs/test.htmlは上手く表示されましたが、 /usr/local/cgi-bin/test.htmlは駄目でした。 それぞれのディレクトリにtest.jpegを置いています。
314 :
名無しさん@お腹いっぱい。 :02/01/17 18:13 ID:cCcCBdng
CGIの負荷を自分のPC(ウィンドウズ98)で 調べる方法とかないでしょうか? アップロードする前に、使うCGIが同程度の負荷なのか 知りたいのですが・・・。
>313 それじゃあ、そのサーバーではcgi-bin内ではCGI以外は使えない。 別のフォルダに画像を置いて、そこへのリンクを貼るのがいいよ。
316 :
しゅっと :02/01/17 18:19 ID:QKo5a2GA
>314 名無しさん@お腹いっぱいさん何度もありがとうございます。 CGIの負荷とは。。。意味がわからないです。 あかん。。。ううう。。。
318 :
日曜大工 :02/01/17 18:57 ID:FQdE7hBK
はじめまして。 複数の検索サイトをプルダウンで選べて、 その選んだ検索サイトから検索できる検索エンジンで、 フリーのプログラムやソースを公開してる所とかありますか? イメージ的には、ISIZEのやつが良いのですが。。。 知ってる方がいらっしゃれば、教えてください。 よろしくお願いします。
320 :
:02/01/17 20:44 ID:???
322 :
名無しさん@お腹いっぱい。 :02/01/17 21:28 ID:xI06lEJm
質問お願いします。 サーバにtmpフォルダを作ってログを書き込もうと思ったんですが 相対パスでフォルダを指定するとうまくいくのに絶対パスで 指定するとうまくログを書き込めません。 なぜでしょうか? 違うサーバーのフォルダにも書き込みたいので、 是非とも絶対パスで書き込めるようにしたいのですが・・・
323 :
名無しさん@お腹いっぱい。 :02/01/17 21:29 ID:wM2BVnGn
すみません、チョト質問いいですか。 i-mode端末ってHTTP_REFERER吐かないんですか? アクセスログ記録CGI作ってたんですが、i-modeだとREFERERが記録されてないみたいで… 端末の機種によるんですかね??
324 :
名無しさん@お腹いっぱい。 :02/01/17 22:20 ID:wM2BVnGn
>>322 違うサーバーのディレクトリには書き込めないと思われ。
自サーバーの自ディレクトリ内(自分のFTP認証で読み書きできる範囲内(?))ならば
絶対パスでも書き込めるハズ。。。(たぶん)
325 :
名無しさん@お腹いっぱい。 :02/01/17 23:18 ID:9VYXNm78
cgi-binフォルダにHTML形式のファイルを置いたら 500のエラーになります。 なにか原因があるのでしょうか? どなたか知っておられる方がおられましたら、 ご教授ください。
>325 .htaccessとか。 サーバーの設定でしょ。
考えられる要因 cgi-bin下にはcgiしか置けなくなっている。 解決方法 貴方の借りているサーバーのFAQを読むこと。
328 :
名無しさん@お腹いっぱい。 :02/01/17 23:44 ID:se/+ek/k
単なる興味なんですけど、 今って、ISPやレンタルサーバでもとから入ってるperlって、 mod perlなんでしょうか?
329 :
名無しさん@お腹いっぱい。 :02/01/17 23:59 ID:9VYXNm78
>>327 >>326 レスありがとうございます。
原因はcgi-bin以下にはcgiしか置けませんでした。
感謝です!
330 :
名無しさん@お腹いっぱい。 :02/01/18 01:04 ID:8ugIM9os
>>328 それは各社によって違うからなんとも言えない。
mod perlは今でもまず無いと思われ。
>>323 はかないから2ちゃんも書き込めなくなったのよ。
有料化とは何か関係あるのかな・・・?
あ、ケータイから書き込めなくなったってことね。 回避方法あったり、書き込める板があったりするけど。
334 :
323 :02/01/18 05:54 ID:???
>>330 >>332 >>333 サンクス。
2ちゃんがi-modeから書き込めないのってリファラーのせいだったんだ…。
ブラウザ情報のせいかとおもてたよ
しかしリファラー吐かないのはi-modeの仕様?ですかね??
困ったもんだ…。
read.cgiのソースってどっかないの?
>335 どっかにあるよ。この板ではない板のどっかに。
4ヶ月ほど遡ればごろごろと。
339 :
335 :02/01/19 15:32 ID:jPqJsm8v
情報サンクス ウニクス板の人らの戦いの後を ユクリと楽しみまくります
Perlなんですが ひとつのスクリプトの中に 大本スクリプト(処理1:処理2:処理3) があって、処理3は滅多に使わない場合 Aスクリプト(処理1:処理2) Bスクリプト(処理3) という風に分けたほうが処理的に軽くなるんでしょうか? サーバ全体の負荷は多少軽くなるのではと予想してますが Aスクリプトのみで考えてどうなんでしょうか。
341 :
名無しさん@お腹いっぱい。 :02/01/19 17:11 ID:knwd48rF
>>340 独立した処理だったら、そりゃ分けたほうがいいでしょう。
A から B を使うんだとしたら、別の問題。
AutoLoader とか AutoSplit なんか見てみては?
342 :
340 :02/01/19 17:35 ID:???
レスありがとうございます。 Perlはインタプリタだから 実行する以外の処理があっても それはそれなりにメモリを食う という解釈でいいんでしょうか? ってことは処理をライブラリ化しておいて 使う時だけ読み込んで処理するというのは そこそこ良い考え方なんでしょうか? (今だと、面倒なんで一切合切頭で読み込んでる)
すみません。 その流れでいくと、コメント分もなるべく少ない方がいいのでしょうか ふと気になったもので・・・。
>343 =~ s/コメント分/コメント文/;
コメントはあってもなくてもほとんど影響ないよ。 まぁ、コメントを大量につけすぎて、 スクリプトのサイズが100Mとかいいだすと影響もあるだろうけど。 普通にコメントつけてる分にはきにしなくてもいいよ。
>345 少し安心しました。 ありがとうございます。
348 :
名無しさん@お腹いっぱい。 :02/01/20 08:57 ID:ecoNESR6
perlで検索エンジンを作っています。
クリックランキングを付けたいので
open(RAND, "$data_f");
@url = <RAND>;
close(RAND);
open(RAN, ">$data_f");
foreach $num(0 .. $#url){
$data = @url[$num];
($no,$title,$jurl,$pp,$ip) = split(/\,/,$data);
if($kk == $no){
$uu = $jurl;
$pp++;
print RAN "$no,$title,$jurl,$pp,$ip";
}else{
print RAN "$no,$title,$jurl,$pp,$ip";
}
}
close(RAN);
print "Location:
http:// ","$uu","\n\n";
と処理をさせて(上記は理屈だけですが)
Locationでジャンプさせたのですが、Win上のApache(1.3.22)
では正常にジャンプするのですが、Linux上のApache(1.3.22)
にうp すると,正常にJAMPできません。
うまくジャンプさせるには、どうすればいいでしょうか?
御指南お願いします。
ジャンプ出来ないってゆーのはどんな感じで? エラーが出んの?
350 :
名無しさん@お腹いっぱい。 :02/01/20 19:39 ID:jE2ekMiz
LocationでURLに移動できないのです。 500エラーはでないのですが、 「ページが表示できません」(いわゆる404エラーかな) が出てしまいます。 ヘッダ情報の関係でしょうかね?
>>348 CGIからどういうレスポンスが返ってるのかを確認すればいいじゃない。
352 :
名無しさん@お腹いっぱい。 :02/01/20 21:07 ID:jE2ekMiz
色々試してみたのですが、普通のURL(テストとしてniftyのURL)
でもlocationができないんです。
#!/usr/local/bin/perl
Location: "
ttp://www.****.con\n\n ";
exit;
上記のようなCGIでもアウトでした。(値は正常なものです)
サーバーが制限を掛けていると言うことは考えられるのでしょうか?
CGIからのレスポンスを調べるとはどういう事でしょうか?
厨房ですみません。
354 :
名無しさん@お腹いっぱい。 :02/01/20 22:31 ID:jE2ekMiz
CGIは動いているのでPASSは、正常です。 locationだけうまく動かないのです。 print を書き忘れてましたね。すみません。 スクリプトにはちゃんと書いていました。
404エラーならIEやらNNのアドレスバーのアドレス見れよ。 あほらし。
357 :
名無しさん@お腹いっぱい。 :02/01/20 23:13 ID:dJXwfbrc
locationはサーバによって動作しないとこがあるらしいよ。 サーバ管理者とかに問い合わせたほうがいいと思うよ。
あぼーん
360 :
348 :02/01/21 00:25 ID:RVRWDBZa
>>357 そうなんですかね?
CGI本体から同じCGIに
パラメータを渡した状態でのロケーションはできるみたいです。
もしlocationを制限されているのならば、外部サーバーには
locationできない仕組みになっているんですかね?
とりあえず、管理者の方に問い合わせてみます。
ありがとうございました。
>>356 アドレスバーでわかるんようなエラーなら苦労しません。
361 :
名無しさん@お腹いっぱい。 :02/01/21 00:27 ID:Fs99nO4j
つか、locationじゃないとダメなの?
362 :
名無しさん@お腹いっぱい。 :02/01/21 00:29 ID:Fs99nO4j
↑続き ジャンプさせたいだけなら、<META>ジャンプとかじゃダメ?
単にジャンプ先のページが無いだけだったりして・・・ んなわけないか。
>>360 ならなんで404エラーなんだよ。
print "Location
の直前に
print "Content-Type:text/html\n\n";
でもおいてちゃんと出力されてるか見れ。
つかヘッダ関係のトコで挙動がおかしい場合の基本だべ、これ。
どんな基本やねん (w
WINなら大丈夫ってんだから関係ないだろ
>>360 telnetでちゃんとLocation吐いてるか見れ
>>357 を確かめろってこった
366 :
名無しさん@お腹いっぱい。 :02/01/21 04:04 ID:1VJkr7um
ちょうどロケーションの話題が出てるので..。 質問したいんですが、perlで作ったCGIの中で print "Location: ../../complete.html\n\n"; とやっているんですが、マックで動作してWINでは動作しません。 行き先はフルパスにしてもだめ。WIN、マックとも複数環境で同じでした。 非常に困ってます。しかも、何年も前に作ったCGIのバグフィクスなんで 自分でも何やってるんだか意味がわかりません。 だれか、原因わかりませんか?
>>365 >telnetでちゃんとLocation吐いてるか見れ
>>357 を確かめろってこった
馬鹿発見。おんなじことやんけ。
368 :
agege :02/01/21 04:07 ID:exoXJ6ur
369 :
366 :02/01/21 04:09 ID:1VJkr7um
>368 それでもだめでした(涙)。ありがとう。 他にもご意見聞かせてください。
>>367 に追記。
Locationヘッダを見る事については「同じことやんけ」って事ね。
>>366 Locationヘッダは
http:// 〜 と書かなければいけません。
相対パス・絶対パスは『本来』はダメです。
関係ないかも知れんけど、一応。
かぶった。鬱
372 :
366 :02/01/21 04:11 ID:1VJkr7um
>370 ありがとうございます。今、調べてて初めて知りました。 てことは今まではなぜ動作していたんだろう。
\n\n ⇒ \r\n\r\n ではどうだろか?
>>367 何で同じ事やねん 低脳の相手は疲れるけど寝る前に教えてやるよ
text/html吐いた後でprint してもそんなもん糞の役にもたたねーだろ アホか
それともあれか?貴様はたった一行のprint文も吐き出して確認しないと不安なのか?
困った奴だねこのド初心者は全く はぁ・・・
そんな事してもサーバ側でContent以外のヘッダ全部切られてたら
意味ネーんだよ アホが
分かったら、ここに謝罪文書いとけ w
自作自演で、「アホが居ますね」とかすんなよ 寒いから
376 :
名無しさん@お腹いっぱい。 :02/01/21 04:17 ID:Z38+o1D3
>>374 に追記
>>348 の
Win上のApache(1.3.22)では正常にジャンプする
をまず読めって事ね
多分
>>349 くらいから罵倒レス入れてるのは貴様だろうが
半端な知ったかで見苦しいんだよ
>>373 その変換をするのはnph-cgiにしていない限りHTTPDの仕事です。
> 378 なるほどネ。言われてみてわかりました。 しかし、みんな熱いネー。トロピカルだネー。
380 :
366 :02/01/21 04:24 ID:1VJkr7um
僕のことも忘れないでね。 なぜ、winとマックで挙動が違うのか誰か教えてください。
まぁ、374は馬鹿だけど概ね言ってる事は正しいね Telnetが面倒ならオミトロンとか入れて見れば簡単だよ -> HTTPheader
>>380 WinとMacと言うよりもLocationヘッダでまともなURLじゃない値が
返って来たときの挙動はブラウザの実装次第。
383 :
@lcheMIST :02/01/21 04:35 ID:n/BKgO7J
384 :
366 :02/01/21 04:51 ID:1VJkr7um
>382 なるほど。ありがとう。 ちなみにマック版IE、NNの複数バージョンで正常動作。 WINはIEの複数バージョンで以上動作。NN最新版で正常動作。 NNは今急いでチェックしました。 >text/plain のわな(共通):Content-type: text/plain を使用した場合、 >Internet Explorer 3.0以降ではうまく動かないことがあります。 >[表示]→[オプション]→[プログラム]→[ファイルタイプ]で、 >.cgiという拡張子のファイルにメモ帳などのプログラムを割り当てている場合、 >text/plain 形式の実行結果をダウンロードしてしまい、 >期待通りの動作をしないことがあります。 という解説をとあるサイトで見て、意味はよくわからんのですが、 関係ないでしょうね..やっぱり..。
そういえば、ケータイでもLocationダメだったなぁ。 HTMLに直書きだと飛べるのに、cgiからの出力だと飛べないという。 PCでは飛べるからスクリプトのせいじゃないのよ(;´Д`) AU逝ってよし、と。
>>377 はなんであんなに自分の無知を叫んでるの?
そう言えば昔、スクリプトにヘッダ書き忘れてたことがあったなぁ。 Win上のローカルで動いたから気にせずうpしたら、エラーが出る。 原因究明に随分と時間かかったよ。 まさかうちのローカル環境だとヘッダ書き忘れてもちゃんと表示されるなんて 思わなかったし。 ちなみに、Win2000+AnHttpdだけど。
ヘッダの書き出しを忘れてた、ってことね。
389 :
名無しさん@お腹いっぱい。 :02/01/21 17:20 ID:KiNU+LHM
データベースについての質問お願いします。 今ウィン環境で、そこにあるデータベースに別のサーバからアクセスして データベースを操作したいのですが、そのサーバーにパールのCGIを置いて 操作したいんです。 DBIとかいうのを使わなきゃいけないみたいなのですが、 それをどうやって設置するのですか? モジュールがあってそれをCGIと同じ階層に設置しとけば、USE DBI は有効になるのでしょうか? LINUXだといっぱい書いてあるんですが・・・
>386 pupupu
391 :
名無しさん@お腹いっぱい。 :02/01/21 17:24 ID:yxhIL91Y
>389 コマンドラインから c:\> perl -MCPAN -e shell とかしてみる。 特に、install Bundle::CPAN とか。
392 :
名無しさん@お腹いっぱい。 :02/01/21 17:31 ID:KiNU+LHM
391> それはデータベースが置いてある方のコマンドラインですか? サーバの方は設置しかできないので、コマンドラインには入れません。
393 :
名無しさん@お腹いっぱい。 :02/01/21 17:33 ID:yxhIL91Y
>392 ううん、Windowsだよ。 PPMとかは使ったことないんだけど。 あ、ActivePerl?なに使ってるのかな? ほかのものについてはしりません。
394 :
名無しさん@お腹いっぱい。 :02/01/21 17:42 ID:KiNU+LHM
392> すいません整理します たとえると 家(常時接続)にWIN環境でMYSQLのDBを作りました。 ここにはアクティブパールもあります。 それを外のサーバに置いたパールで書いたCGIで操作したいんです。 上記のお話だと家のコマンドラインからコマンドを実行すれば、 CGI上の USE DBIとかは有効になるんでしょうか?
395 :
名無しさん@お腹いっぱい。 :02/01/21 17:44 ID:yxhIL91Y
>394 ああごめん、全く逆の連想していました。
396 :
名無しさん@お腹いっぱい。 :02/01/21 17:50 ID:yxhIL91Y
一般的に、Perlのモジュールは、@INCという、Perlモジュールが 置かれているパスに置かれていれば機能します。 @INCには、カレントパス(実行されるCGIがある場所)も含まれますので、 そこに置けば、運が良ければ動くでしょう。 運が良ければ、というのは、Perlのモジュール群は、 相互に関連していることが多く、たとえば、DBIのあるモジュールの機能を使うためには Netモジュールが必要だったり・・・とかそういう事情です。 たとえば、コマンドライン(SSHやtelnet)でも利用が出来ないサーバでの課題ということに なってくると、もしこれらのモジュールの中で「C」で書かれ、コンパイルが必要な モジュールが含まれ、かつそれが@INCに存在しない場合、お手上げになってしまいます。
397 :
名無しさん@お腹いっぱい。 :02/01/21 17:59 ID:KiNU+LHM
396> telnetでサーバーの方を操作すればいいんですね。 そこのサーバはPERLは使えるんですけど usr/bin/perlへは行けません 当然そこに@incというモジュールはあるんですよね・・・ DBIを使わない方法はないのでしょうか?
398 :
347 :02/01/21 18:19 ID:???
>383 サンクス、漏れはフレーム生成部分のソース見落としてて 3重になってる事に気づかずjavascriptが記述してあるHTMLが判らなかった訳か あとは大丈夫そうなので自力で頑張ってみます ホントにありがとう。
399 :
@lcheMIST :02/01/22 01:06 ID:NXihuWSg
>347=398 オラッチもnph-なんてあるの知らなかったので勉強になったにぇ。 日々精進じゃけんのぉー
400 :
名無しさん@お腹いっぱい。 :02/01/22 01:52 ID:aFfMsp/U
質問お願いします 自宅のmysqlから職場のmysqlに繋ごうと思ったので dosプロンプトでmysql/binから mysql -h ipアドレス ってしても職場のmysqlサーバーに 繋ぐ事ができません。 cann't connect mysql server on 〜 とか出てしまいます root にしてpassを入れても入れませんでした。 どうすればいいのでしょうか?
401 :
ナナシンボ :02/01/24 10:44 ID:V8edfMEH
CGIをSSIで表示する際の質問なんですが、 xxx.cgi?act=xxx って感じでもSSIとして呼び出して、 そして表示は可能なのでしょうか? 知っておられる方がおられましたら。 どなたかご教授ください。
402 :
名無しさん@お腹いっぱい。 :02/01/24 10:52 ID:V8edfMEH
あげ
>>401 普通にexecじゃだめ?
xxx.cgi?act=xxxは特定のCGIしか効果がない気がします。
404 :
ナナシンボ :02/01/24 11:43 ID:V8edfMEH
コマンドはどのような感じでしょうか? 単発質問で申し訳ございません。
>>401 すみません。そもそも何がしたいのか量りかねます。
もう少し詳細に。
406 :
ナナシンボ :02/01/24 11:49 ID:V8edfMEH
いろいろなモードがあるサーチエンジンで 新着情報をSSIを使ってTOPページに表示したいのです。。。 うまく通じたでしょうか。。。
>>406 いや、全然w。
じゃあ、SSIモードにしてSSIでexecすればいいでしょう。
408 :
ナナシンボ :02/01/24 11:58 ID:V8edfMEH
[an error occurred while processing this directive] SSIモードとか無いようでございまして、 上記のようなエラーが出てしまいます。
>>408 まず、そのCGIのreadmeなり仕様書なりを読む。
それでできることとできないことをはっきりさせる。
改造が必要なら改造する。
410 :
ナナシンボ :02/01/24 12:15 ID:V8edfMEH
プログラムができる人の薄笑いはかっこいいです。 どうか教えてください。 改造の仕方を教えてください!!
411 :
名無しさん@お腹いっぱい。 :02/01/24 12:22 ID:nUVwgo4z
>410 もとねたのCGIをどっかに置かないと無理でしょうよ(笑) がんばれ!
413 :
ナナシンボ :02/01/24 12:42 ID:V8edfMEH
わかりました。がんばります。 その際は、改造をよっ宜しくお願いします。
415 :
ナナシンボ :02/01/24 13:05 ID:V8edfMEH
はい。移動します。。。
あぼーん
417 :
名無しさん@お腹いっぱい。 :02/01/26 17:39 ID:t4y2XoUY
すみません。質問です。 Windows2k+Active Perl 5.6.0.623 のサーバー借りたんですけど、 ・絶対位置を指定する。 ・***.cgi→***.plにする。 ・パーミッションの変更は不必要 これが必要と言われて、やってみたんですけど 動きませんでした。 あと、何か必要なことが有れば教えていただけませんか? 厨房な質問ですみません。
>>417 私だったらそんなサーバ借りる気がしないが、それはさておき。
>動きませんでした。
これでは詳しい事は誰も回答できないと思うけど。
エラーメッセージとかログの内容とか、Scriptをどのように設定したとか
その他諸々を全て提示すべき。『絶対位置を指定』だって主語や目的語が無いから意味不明。
皆超能力者じゃないんだから、貴方の行き詰まってるトコなぞ、書いてもらわにゃ
分からないって。逆に詳しく書けば回答もたくさん貰える筈。
上述の通り一般的なことしかいえないからそういうのだけ列記。
『PerlのPath』『Scriptの設定ミス』『Scriptの(改造で発生した)文法ミス』
『UNIXでしか使えない関数を使ってないか』『KCatch.pmとか使ってみる』
この辺チェックしておいてみ。
唯、その程度の環境だったらLocalで実験環境組んでやってみる方が早いと思う。
インスト&起動くらいなら一時間位がんばれば出来るよ。
追) 本題には関係ないけど、読むと為になるかもね。
http://www.geocities.co.jp/SiliconValley/5656/
419 :
名無しさん@お腹いっぱい。 :02/01/26 22:01 ID:rKevR140
質問させてください。 CGIで、サーバー間の同期が取れるようなプログラムって、可能ですかね? 探したのですが、見つからなかったので、知っている方よろしくお願いい たします。
420 :
417 :02/01/26 22:05 ID:t4y2XoUY
>>418 やっぱり Win2000鯖はまずいですか。(苦笑)。
もうちょっと勉強して、動かなかったら再度、
何処がどうなってるのか質問したいと思います。
ありがとうございました。
421 :
名無しさん@お腹いっぱい。 :02/01/26 22:18 ID:Me/qVl9/
422 :
名無しさん@お腹いっぱい。 :02/01/26 23:15 ID:vygz7+I2
KENTさんのSUN BOARD(www.kent-web.com/bbs/sunbbs.html)を掲示板モードで使っているんですが。 センドメールで送られてくるメールの投稿日時とホスト名が、最初の書き込みと全く同じのままなんです。 出来ればURLを公開したくないのでKENTさんのところでは聞けなくて……。 もし同じようなエラーが発生し解決した経験をお持ちの方がいらっしゃいましたら教えて頂けると嬉しいです。
423 :
名無しさん@お腹いっぱい。 :02/01/26 23:40 ID:CqBvXkR7
2chモデルのCGIスクリプトが欲しいんですが・・・ 何かないでしょうか?
あぼーん
いい加減にしなさい!(`3´)ぷんぷん
428 :
名無しさん@お腹いっぱい。 :02/01/27 13:57 ID:AW1tScf7
SSI使わずにCGIでランダムメッセージできませんか??
>428 index.htmlやindex.shtmlやめてindex.cgi使う。
430 :
名無しさん@お腹いっぱい。 :02/01/27 14:04 ID:AW1tScf7
それはちょっと・・・
>430 じゃあindex.php使う
じゃあメッセージを画像にしてランダムで表示させる
Javascriptでランダムに表示させる。
htmlを書き換える 次のリクエストに返す内容を書き換えるってこと
435 :
428 :02/01/27 17:25 ID:AW1tScf7
Javascriptでもいいけど、ソースでバレバレかなぁと思って。 ランダム画像にします
436 :
名無しさん@お腹いっぱい。 :02/01/27 19:40 ID:NBBnRIb5
437 :
436 :02/01/27 19:42 ID:???
スレまちがった・・・すいませn
438 :
名無しさん@お腹いっぱい。 :02/01/27 19:45 ID:/jXxAIan
一日1000アクセスだとして彼らが何らかの書き込みをする場合です。 色んな話題を扱う為に、あめぞう型一つのscriptで処理させるのと、 違うタイプのscriptを数個置くのと、どちらが鯖の負担が少ないでしょう。 掲示板の数は30くらいと仮定して。 先輩諸氏、アドバイス願えませんか?
>438 同じ内容のCGIだったら、同一サーバで稼働させるんであれば、サーバの負担は 全く一緒だよ。
>438 それよりも掲示板で表示させる内容をHTML保存して それを表示させるようにした方がよっぽど負荷は減る。
441 :
438 :02/01/27 21:49 ID:/jXxAIan
439-440 感謝です。 スレ違いになりますが、返答を頂く間に他の板も見たのですが、 phpであめぞう型のがありました。 試しに使ってみるとまずまずの感じ。 これもありかなぁと思いました。 美術に関係する掲示板なのですが、テクから歴史、流行、 論文資料、グッズとたくさんの分類分けが必要なのです。 2ch型でやれば良いかなと思って質問させて貰いました。 メインはあめぞう型でたくさんの話題を、 ほんの少しだけ凝ったデザインの掲示板も使う。(2,3個) 特に注意すべきは、ログをhtml形式で保存、表示させるタイプと いう線でいけばよろしい、とい認識でよいでしょうか。 では、探しにいってきます。
442 :
442 :02/01/28 12:21 ID:D/EY6qQ0
突然すみません。 @a = (1); @b = (1); sub addem { my ($reference1, $reference2) = @_; for ($loop_index = 0; $loop_index <= $#$reference1; $loop_index++) { $result[$loop_index] = @$reference1[$loop_index] + @$reference2[$loop_index]; } return @result; } @array = addem (\@a, \@b); print join ('、 ', @array); これで2となると思うのでございますが、 1をある数をカウントする$xxxにあてはめて、 1 2 3 4 5 6 7 8 9 10 という処理を行って そして、 10までいったらまた1に戻すという処理をPerlで行いたいのですが、 どこをいじればいいのかわかりません。 どなたか、ご存知の方がおられましたらご教授ください。
443 :
名無しさん@お腹いっぱい。 :02/01/28 13:00 ID:QsnBvpSI
>442 よくわかんないけど $i = 0; foreach (@処理する配列) { 処理ルーチン; if ($i eq 10) { $i = 0; } else { ++$i; } } でお望みのことは出来るかと。
444 :
うまくいかない :02/01/28 17:36 ID:r62kXaC2
えーっと、既存CGI(C++で作成)へ環境変数などを渡す為に、Parlを被せて、 実際にはperlの中からcgiをオープンかけてるんです。で、今回、起動したCGI のほうが正常に作動したかどうかを、そのparl内で調べる必要があるので、 open2を使用してと思ったんですが、うまくいかないのです。 元のソースはこんな感じです。 if (!open AA, "|$p") {} syswrite AA, $para, length($para) close AA; $p :モジュール $P :引数 以下修正後です open2(In,O, $p, $para) while(<In>) { print; } print O "\n"; close O; close In; この子プロセスから受け取った標準出力の内容をprintして まずは画面表示しようとしたのですが、そこからうまくいか ないのです。どうすればいいんでしょうか(;;
445 :
うまくいかない :02/01/28 17:54 ID:r62kXaC2
Parlを被せて -> Perlを被せて でした。なにやってんだか<おれ
open2(*I, *O, @args); とかいう話じゃなくて?
447 :
うまくいかない :02/01/28 18:27 ID:r62kXaC2
>>446 できました。*がぬけていたみたいです。
ありがとうございました。
>442 本題からはそれるけど、 @$reference1[$loop_index] は $reference1->[$loop_index] か $$reference1[$loop_index] に すべきなんじゃないかな。 何かを意図してスライスにしてるわけじゃないよね?
449 :
名無しさん@お腹いっぱい。 :02/01/28 20:26 ID:1+Uax+qT
apeboardの掲示板にfstatのアクセス解析をつけるには どうしたらいいのでしょうか?
↑マルチポストかよ
451 :
2APESについてなのですが :02/01/28 21:13 ID:xDeG8agz
2APESさんでapeboardをDLしました。 自サイトでBBS公開してましたが、マルチレスのあるapeboard+をDLしてバージョンアップを考えてます。 移行するときに、元のBBSのログを新しいBBSに移す方法ってあるんでしょうか?? あるとすればどうしたらよいのでしょうか? スレ違いでしたらすいません・・・。
453 :
2APESについてなのですが :02/01/28 21:21 ID:xDeG8agz
CGI初心者なのでどれをどう書き直せばいいのかわかりません すいません もうすこし詳しく教えてください 2APESさんのFAQにもBBSにもなかったので
どこに行ったら落とせるのよ?そのcgi
そのCGIがどんなのか知らないけど、新しいCGIになにか書いてみてそのログの書式にあわせて 以前のログを書き換えればいいのでは? ログの取り方が全く違ってれば大変だけど・・ それより作者さんのサイトで聞いた方が良いと思うけどね。
456 :
2APESについてなのですが :02/01/28 21:40 ID:xDeG8agz
うーん、作者さんに・・・聞いてみます。 ありがとうございました。 ちなみに、そのCGIはwww.2apes.comでDLしました。
457 :
ポリ子 :02/01/28 22:33 ID:yuq/vDAC
458 :
名無しさん@お腹いっぱい。 :02/01/28 22:36 ID:CgOVSzuj
あのー。 sh、bash、cshでCGI作りたいんですけど、 なんかサンプルあったら教えてください。
ポ リ ン キ ー 逝っ て よ し ! _,∩_ _,∩_ _,∩_ (_____)ゝ、 (_____) y (_____) / :: :: :: ヽ 〉 /-‐:: ::‐-ヽ / / :: :: :: ヽ _./ (・ )ll(・ ) ∨ _/ 0) i! 0) ∨ _/ ( ・)i!(・ ) ゙、_ // :: :: ∈ゝ :: ::ヽ // :: ‐-‐ :: ヽ // :: ー一 :: ヽ\ . ゝ/:: :: :: :: :: ::ヽ ゝ/ :: :: :: :: :: ヽ ゝ/ :: :: :: :: :: ヽく  ̄ ̄ | ̄ ̄ | ̄ ̄  ̄ ̄ | ̄ ̄ | ̄ ̄  ̄ ̄ | ̄ ̄ | ̄ ̄ | | | | | | ⊂! !つ ⊂! !つ ⊂! !つ ジャン ポール ベル ジャン!
460 :
名無しさん@お腹いっぱい。 :02/01/28 22:42 ID:QsnBvpSI
>457 違います。メールサーバの機能です。
>458 人に意志を伝えられる日本語会話の勉強の方が先だぞ? きみは。
462 :
ポリ子 :02/01/28 22:44 ID:yuq/vDAC
>460 あ、ども、ご親切にありがとうございました。
463 :
458 :02/01/28 23:08 ID:CgOVSzuj
>>461 たとえば
#!/bin/sh
で記述されたCGIのサンプルあったら教えてくださいって
ことなんだけど、そんなに理解不能だった?
465 :
458 :02/01/28 23:20 ID:CgOVSzuj
>463 うん。shで「なんの」スクリプトが作りたいのか意味不明
467 :
名無しさん@お腹いっぱい。 :02/01/29 12:18 ID:JeVd1Fc0
apeboradにカウンタをつけたいです。
cgiをいじることになるみたいなのですけど、
どうすればよいでしょうか?
カウントできればカウンタはなんでもいいです。
よろしくお願いします。
http://www.2apes.com
469 :
名無しさん@お腹いっぱい。 :02/01/30 01:25 ID:vwtucaqb
<ol> <li>xxx </ol> こうやって書くと、 1 xxx ってなると思うのですが、 縦と横にスペースが入ってしまいます。 そこで、Perlでこれを表現したいのですが、 どう記載すればいいのかわかりません。 どなたかご教授ください。
470 :
469 :02/01/30 01:29 ID:vwtucaqb
すみません。 ×そこで、Perlでこれを表現したいのですが、 ○縦と横のスペースを入れずにPerlで表現したいのです でした。
(・。・)?
age
473 :
名無しさん@お腹いっぱい。 :02/01/30 17:07 ID:L4I/gPlU
川o・-・) 〈 perlはまったく関係ありません。cssを勉強てください。
474 :
あっきー :02/01/30 18:11 ID:c1rN3/yG
カーネルのバージョンをcgiを使って探りだすプログラムを作りたいです。 telnet address 23でカーネルのバージョンが出るので、 それを利用してとろうとしても取れませんでした。 なんとかなりませんか? ソケットを使って。 apache とftpはとれたのですが・・
475 :
名無しさん@お腹いっぱい。 :02/01/30 18:15 ID:jvP4y3Zo
>474 そのCGIをローカルで使って、よそにあるサーバの カーネルのバージョンが取りたいって意味?
476 :
あっきー :02/01/30 18:17 ID:c1rN3/yG
updateを促すプログラムなんです。 versionを調べて。 そのcgiをサーバにあげておいて
>updateを促すプログラムなんです。 >versionを調べて。 余計なお世話だと思うが。
そういうテキトーな理由をつけて つまらんアタックをかけるつもりに一票
479 :
名無しさん@お腹いっぱい。 :02/01/31 01:40 ID:Dm/LxBSD
パスワードCGIさがしてるんですが、できるだけ強度が固いのがほしいです おすすめのCGIがあったら教えてください<(..)>
480 :
名無しさん@お腹いっぱい。 :02/01/31 01:46 ID:Xiqtl9A0
>479 Basic認証を使っているのがいいと思います。 CGIで認証するものの中には、CGI自体で認証をかけているものもありますが、 手軽な分リスクもありますから。
>>480 Basic認証ですね!有難うございます
今からBasic認証のものを探してみます(^-^)
483 :
479 :02/01/31 02:38 ID:???
>>482 ぐふっ(;;
なるほど、でした。勉強しに逝ってきます
484 :
名無しさん@お腹いっぱい。 :02/01/31 02:41 ID:Xiqtl9A0
>482-483 でもまぁ、メール使った自動パスワード発行システムのスクリプトとかも ありますからね。 KENTWEBやレスキューにあったと思います。
485 :
名無しさん@お腹いっぱい。 :02/01/31 02:52 ID:bkfPgoFs
CGI.pmであっぷろーどの作業をしてます。 フォームから画像ファイルをアプすると、指定のディレクトリに 正常にアプされて、それ以外にルートに "CGITempxxx" というファイルが出来ます。なぜですか?
>>485 ワタシにはさっぱり分かりませんが、CGI.pmの中をTempで検索してみました?
何か出て来るんじゃないでしょうか。
>485 環境が書いてないですが、Win系ではファイルハンドルをクローズすると自動で消されます。
488 :
甘 :02/02/02 11:39 ID:w924RHMB
いま、オブジェクト指向なプログラミングに凝ってるんですが、Perlのバージョンが5でないと動きそうにないんです。 で単刀直入に、Perl ver5( >= )の普及率ってどのくらいなんでしょうか。 「ほとんどのサーバってPerlの4だからやめた方が〜」とかご存知の方おられましたら是非ご意見をば…
ほとんどのレンタルサーバはPerl5です。 未だにPerl4をメインで使ってる人を知りません。
490 :
甘 :02/02/02 11:56 ID:???
そうですか…。いや、古いバージョンを放置してるとこってあるかと思ったんだけど。意外とそうでもないか。
ありがdです。
>>489
漏れのプロバのスペースがPerl4。 色々不便。 実際問題Perl4は少ないと思う。 プログラミングする前に自分の使えるサーバーのPerlのバージョン調べたら? 配布するんだとしたら、Perl4では動きませんとだけ書いておけばいいでしょ。
492 :
名無しさん@お腹いっぱい。 :02/02/02 20:10 ID:btDa9WJG
BBSのCGIがinternal server errorで動きません。
ttp://dream.lib.net/room/cgi/e_resbbs.html ↑ここのやつです。
iswebでは動くのに、今使ってるレン鯖ではムリでした。
前に使ってたレン鯖でも動きました。
で、パーミッションが違うのかと思い、管理人に問い合わせたら、
管理人が同じ鯖にこのCGIをアップしてくれたんですけど、
管理人のアップしたBBSは動いてました。
Perlのパスやパーミッションは合ってるはずです。
管理人は設定は何もいじらずにアップしたそうですが、動いてます。
全部アスキーでアップしてます。
エラーになる原因を教えてください。あと、サーバー側の設定のミスで
自分の借りてるスペースだけCGI不可になることってありますか?
>>492 ・Perlのパスを再度確かめるj
・パーミッションを再度確かめる
・.htaccessを弄ってないか考える
・CGI::CarpやKChatchを使ってみる
494 :
名無しさん@お腹いっぱい。 :02/02/02 20:59 ID:btDa9WJG
>>493 やっぱり、Perlのパスもパーミッションも間違ってないです。
他のCGIでも同じ状況になりました。他の鯖では動くのですが・・・
サーバ側の設定ミスというのはありえるのでしょうか?
495 :
492 :02/02/02 21:00 ID:btDa9WJG
>494=>492 です。 すいません。
>>494 CGIを置くディレクトリ指定とかないの?cgi-binとか
>494 サーバー側のミスもありえないとは言わないが、 君が間違ってる確率より何万倍も可能性が薄い。
498 :
492 :02/02/02 21:10 ID:btDa9WJG
>>496 何もないです。管理人さんがテスト用に置いてくれた
BBSもcgi-binには入ってませんでした。メールでも
ディレクトリ指定はないと書いてました。
499 :
名無しさん@お腹いっぱい。 :02/02/02 21:10 ID:BKjoUs7g
レイアウトが自在な掲示板ありません?
500 :
492 :02/02/02 21:13 ID:btDa9WJG
>>497 自分でもそう思うのですが、
他の2つの鯖で動くのに、この鯖だけ動かないというのが・・・
自分で思いつくことは全部試したし、
確認も何度もしたのですが・・・
>500 そういう時こそ簡単なものを見落としやすいものさ。 FTPソフトを変えて試してみるとかしてみたら?
502 :
名無しさん@お腹いっぱい。 :02/02/02 21:18 ID:BKjoUs7g
サーバで制限してる関数使ってたりしないの?
あと、レン鯖の説明の書いてあるページをもう一度全部読み直すのも大事。 こういう時ほど基本に立ち戻る。 それでもダメなら、管理者の方に「自分のスペースに」アップして試してもらえ。 それでできないようならあっちのミスだろ? ただし、それで上手くいくようなら、君は今後管理者に大きな事を言いにくくなるがね。
簡単なCGI(HelloWorldとかw)でも動かないようならサーバの設定ミスもありえるかも・・
506 :
492 :02/02/02 21:34 ID:btDa9WJG
>>501 FTPソフト変えてみました。でも、動かないです・・・。
このソフトでアップして、iswebでは動きました。
>>504 それ試してみます。で、それでもムリなら、
>>503 さんのいうように、最後の手段で管理者の方に
お願いします。
507 :
492 :02/02/02 21:42 ID:btDa9WJG
>>504 「これはテストです。」と表示されるだけの
簡単なCGIもinternal server errorになってしまいました・・・。
そのコードここに書いてみ。 君の言う事は何か怪しい
まあ良いか。 一度管理に問い合わせてみれば?
510 :
492 :02/02/02 21:50 ID:btDa9WJG
とりあえず一日待ってみろ 何かが変わるかも知れない (ワラ
>508 同意。 どうにも怪しい。 >510 そのまんま使ったにしてもそのコードを上げろと言ってるの。 そのまんま使ったから使えるなんて甘い事考えるなよ。 iswebで動いたってtoktokで動かないCGIだってあるわ。 それと、そのレン鯖のURL出せ。 絶対お前は何かを見落としてる。
513 :
492 :02/02/02 23:31 ID:btDa9WJG
>>512 #!/usr/local/bin/perl
print "Content-type: text/html\n";
print "\n";
print "<HTML>\n";
print "<HEAD>\n";
print "<TITLE>テスト</TITLE>\n";
print "</HEAD>\n";
print "<BODY BGCOLOR=\"#FFCCCC\">\n";
print "これはCGIのテストです。\n";
print "</BODY>\n";
print "</HTML>\n";
です。パーミッションは管理人さんの指示通り755にしました。
サーバによって動く動かないっていうのがあるのは知ってます。
でも、
>>492 に書いたとおり、
管理人さんがUPしたのは動いてたので、動くのではないかな?
と、勝手に判断してしまいました・・・。
利用してるのは、管理人さんが無料でしてるレン鯖です。
http://kabocha.org/ ←ココです。
管理人さんとも何回もメールでやり取りをしてます。
やっぱり僕が何か見落としてるんだと思います。
それが分からないんですけど・・・
514 :
492 :02/02/02 23:35 ID:btDa9WJG
追加
>>513 のperlのパスは
#!/usr/bin/perl
に直して使いました。
パーミッション700とか705とか一応試してみてください(ダメだと思うけど・・笑)
>>515 Your brain is rotten.
Die early because a low brain
like you does not have the value of being alive.
??
755ではセキュリティ的にちょっと(かなり?)マズいので700じゃないと動かないサーバもあるからな。
519 :
492 :02/02/03 00:29 ID:YFOaRgDw
原因がわかりました・・・。 ここの鯖はpublic_htmlの中にファイルを アップする方式ではなかったのに、僕が勝手に public_htmlを作ってそこに入れてしまってました。 で、public_htmlを参照する機能が 完全に無効にされてなかった(htmlは見れた)ので、 なかなか気が付かなかったのです・・・。 レスをくれたみなさん、すいません、やはり僕の落ち度でした。 m(_ _)m
520 :
名無しさん@お腹いっぱい。 :02/02/03 00:39 ID:+IXT+7Wc
>519 がんばれよ。
すみませんがどなたか教えてください。 ブラウザは一旦BASIC認証にパスすると、同じサーバ上の異なるURL に対してもAuthorizationヘッダを出力します。(IE5.5sp2, NC4.7 で確認) このブラウザが記憶している認証情報を、次回サーバが送信するヘッダ でクリアする方法はありませんか? 言い替えればブラウザは、サーバがWWW-Authenticatoinヘッダで認 証を要求したときだけAuthorizatoinヘッダを出力し、そうでないと きはAuthorizationを出力しないようにしたいのです。
522 :
名無しさん@お腹いっぱい。 :02/02/03 01:36 ID:+IXT+7Wc
>521 ない。 ダイジェスト認証使うのを検討したら?
523 :
521 :02/02/03 01:47 ID:???
レスサンクス。 ちなみに、.htaccessのない環境です。 うーん、サーバがWWW-AuthenticatoinでMD5をくれてやれば、ダイジェスト 認証に対応していないブラウザが認証に失敗して、以前の認証コードを消去 してくれるなんてことはありませんか…。 でも、公開するものなのでブラウザは不特定だし、トライ&エラーで疲れま した…、鬱。
524 :
名無しさん@お腹いっぱい。 :02/02/03 01:52 ID:+IXT+7Wc
>523 盗聴されない限りにおいてはリスクは乏しいけど、 盗聴される危険性まで検討するんだったら、htaccessがなかったりしたら お手上げなんじゃないの? 自前サーバならともかく、共用だと、盗聴の危険も出てくるからな。 ま、MD5とか組み込んでもらうかなんかしかないと思う。 ブラウザ落とすまでいつまでも、Basic認証の情報はブラウザーが保持し続ける。 サーバ側じゃなくてブラウザサイドの問題だから。 あとは、SSL化するくらいしかないな?認証ページを。
525 :
521 :02/02/03 02:32 ID:???
どもども。 なお相手はVLAN上でして、特定の場所以外でなければパスワードが流れるという ことは考えられませんし、考えないで逝こうと思います。 今ミケネコさんの.htaccessの資料を読んでますが、考えますに 1 BASIC認証ではセッションの細かい管理はできない。 (即ち同一サーバに対しては、URLは何であれ常に同じAuthorizationを出し 続けてしまうため。同一サーバに異なるBASIC認証が複数あると、ブラウザ を落とさない限り、どちらか一方のみ失敗する) 2 よって、サーバはWWW-Authenticateを返すことはせず、アクセスしてきた やつのIPアドレスを見て必要に応じて401を返してやるのがよいのではないか と思いました。どうでしょうか。
526 :
521 :02/02/03 02:36 ID:???
>どちらか一方のみ失敗する もとい、 >1つを除き、その他はすべて認証ダイアログさえ出さずに401を食らう。 ということです。スマソ。
認証済みのブラウザに、401返すと認証ダイアログが開いた記憶があるけど IEのバージョンに依存かも。
528 :
初心者@携帯好き :02/02/04 19:05 ID:8txKYoJn
KENT氏のpetit boardのiモード版、petit2iを使ってるのですが、
http://red.tomato.nu/desperado/software/ iモードでアクセスするときに、レスがあるのかないのかわからないのにそれぞれの書き込みのレスを開いてしまうので、
できればレスがある記事はレスにジャンプするボタンの横にレス件数を表示できればなぁ・・・って思ってます。
(例: [レス][2件])cgiをちょっといじれば可能だとおもうんですが、cgi初心者のため全くわかりません。
よろしくお願いします。
530 :
名無しさん@お腹いっぱい。 :02/02/05 10:25 ID:C2aOyr0O
微妙にPerlの言語に関する質問なのですが、「自分自身のURL」や「どこから来たか」を調べることはできますか? どっかしらの特殊変数かな〜と思うのですが。 早い話、掲示板自身のアドレス以外から直接アクセス(カキコ系の)があったときに非常停止するようなスクリプトを書きたいのですが、ご教授お願いします。
531 :
名無しさん@お腹いっぱい。 :02/02/05 10:28 ID:JhAvXglK
Excel VBAについてはどこの板orスレッドで聞けばいいですか
>530 %ENVを調べれば分かる。 ただ、最近はパーソナルファイヤーウォールでリファラーを返さなく なってるものが多いから、「どこから来たか」を正確に取得できるとは 思わない方がいいよ。
>>532 どちらかというとjavascriptで取得するのが一般的ですな。
<script><!--
document.write('<img arc="a.cgi?ref=' + document.refferer + '">');
//-->
なお、うろ覚え。
534 :
530 :02/02/05 10:46 ID:???
>>532 氏
ありがdです。なんとかわかりそうです。
ただ、リファラーを正確に取得できないとなると、むやみに非常停止するわけにも行かないし、かといって全オープンにするのもシャクだし、最善策はどうなのでしょう。
う〜む…。
でも、ブックマークから飛んできた物には使えない。 ちょっと考えたアクセス制限。 まず、ブラックリストに奴のIPを登録。 奴が来た場合クッキーにその情報を渡しブロック。 奴が串をかましてきてもクッキーで割り出し。 その串をリストに追加。 とかね。
536 :
530 :02/02/05 10:54 ID:???
>>533 ・
>>535 氏にもありがd。
漏れ的には特定個人をはじくための非常停止機構でもないし、アクセス解析でもないんでJSで取得ってのもいと難しき。
537 :
CGI初心者 :02/02/05 16:21 ID:jN2S9DC6
質問です。 カウンタ設置しようと思います。 index.html指定で書かれたカウンタ用のスクリプトcgiを 使用してindex.htmで問題になることはありますか?
537を理解できた奴は神
>>537 スクリプト内のindex.htmlをindex.htmに書き換えればいい
540 :
539 :02/02/05 16:53 ID:???
神ゲットー か?
>540 うむ。ズザー
CGIの質問でなくてすみません。 この板はなんでこんなに人が少ないんですか? プログラム技術板の隔離板だからですか?
あははは
人が少ない−>バカが来ない−>初心者はweb制作に行く−>ウマー もしかしたら第二のUNIX板にw。
545 :
名無しさん@お腹いっぱい。 :02/02/06 08:51 ID:3hxy9iwP
掲示板で排他処理しないと具体的にどんな事態になるのか想像出来ません 色で言うと何色になりますか?
白→良くて灰色、最悪の場合黒 これでいいかい?(わ
547 :
:02/02/06 10:39 ID:PbQtpnzC
JAVAやクッキーがオフだと別のページに 飛ばしてしまう様なcgiってありますか? これってcgiを使わなくてもできますか? 初心者過ぎて話にならないと仰らずに 入門者のおいらにも教えて下さいな。
548 :
名無しさん@お腹いっぱい。 :02/02/06 10:48 ID:4VmPYmTX
これぞC言語掲示板の雛型決定版! のような勉強になる掲示板のソースがあったら教えてください。 よろしくお願いします。
550 :
:02/02/06 15:18 ID:???
549さん 早速、どうもありがとうございます。 メモっておいて完成したら試してみます。
別スレでスレ違いだったことに気づきこっちに書き込み直しました。 鯖がhi-hoです。 それでCGIゲームを置きたくて とりあえずApacheで動作確認したFFAとEndlessBattleを置いてみましたが FFAは呼び出しの時点でスクリプトエラー EBは呼び出しはできたもののどれかひとつでもリンク押すとスクリプトエラー 僕の力じゃどうしようもありません。 何か方法は無いでしょうか?
向こうで答えた。
553 :
名無しさん@お腹いっぱい。 :02/02/07 02:12 ID:ZsSbl5S8
すいません、 CGIプログラム上から別のページへLocationヘッダなどで呼び出す際、 渡す環境変数はいじれませんか?
554 :
404 Not Found :02/02/07 02:19 ID:X0BR1SaY
掲示板サイトにおいて、荒らしの特定用に
レジストリからメアドとか名前を抜き出して、
<INPUT TYPE="hidden" NAME="meado" VALUE="
[email protected] ">
<INPUT TYPE="hidden" NAME="namae" VALUE="大橋巨泉">
をできる方法はないですか? VBスクリプトだと、できそうでできません。
>VBスクリプトだと、できそうで・・ 教えて下さい (爆笑
556 :
89454 :02/02/07 02:31 ID:oXR+e5L6
、-.、._ .__
`ヽ、"'' - ._ _,;:-‐ ''"/
\ ~'' ー ,,__ _ ,,.:::-‐ ''" "~ /
ヽ、 , ヾ'ヽ、__ ./'i~ /
\ |! 丶、\"ーェ''7 / / _..,,ノ
`ヽi`ー-;,___"''ゝー<''~ ,,、-'"~i-ー''"~
、_冫=-:::::::::::~"''"⌒ ̄ ァヽ,.へ,
`ー,-''~::::/::::::: ::::::::::::`>'´,/、丶
/ /:ァ'::::::::,i::::::、:..::: :::....ヽィ'\ノ::::. \
、_, -/ .:ァ' .:シ ::...::::/!| ::::::|'、::::l__::i:::::;i :::::}:::::: `ヽ、,____,
、_ニ=‐{ .:ノ! i, .:{ァ'"メ.l{l ::::| 'l''"}::`|.:::::} :::ト、:: "''==ニ
. `ー-/{./ { |:{.:{ヾツ_..,l,{....:::|. |' `ヽハ:ノ:::l::::|:::ヽ、 `ヾ、
ァ' /'.リ l :l|::ヾ〉.,ィ⌒i `ー'' ' `‐リ::ノ::ノ:::::i、ヽ 丶ト、
. // .:/ .:ハ|:iハi、'、ヾ゚ツ ''"¨ヾ,シ:/|:::: ハ:::}:..、.:: ::l )
// / .:,' .:/:l .l:;:;リ}::} ひ、、 ` 、、-'ソ /::'ノ'ハ::::}::::}:::ノリ
リ { .:/! :{ヽト'^^'リ :` 、_⊂ニつ '' lハ|ノ:ノ_ V ル'/
l. ::{ `ヾ ‘ .-ーレルハ''lー-‐'"|リルy⌒~ /
. ヽ| /´ /#ハ ,.:-‐l#l~ /
{ ,: ./#/ ' .|.#|.. ..ァ'
l .:i/#/ |#.{. ,;'
l ァ'-‐‐-:::;',.__ l.#|/
i ./ ' ~⌒`ヾ、}'
| .{ :::...... }
j .ヾ、_::::::,,:::::::-‐ .....::ノ
l {=-‐-::;;_ ュ `::;;__;;;シ
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
http://www.puchiwara.com/hacking/ やっぱコレだねェ〜♪
>553 QUERY_STRINGやPATH_INFO, HTTP_COOKIEくらいしか できないんじゃないかな >554 運がよければ HTTP_FROMに入ってるけど,普通は無理。
558 :
名無しさん@お腹おっぱお。 :02/02/07 11:54 ID:M9y2Y41A
>555 最近出版されている本に載っているとかマヌケなこと抜かぬなよ。 「誰も書かなかったホントの裏技(秀和)」 「ホームページ危ないトリック&トラップ(メディアテック出版)」 この2冊の内容はどちらもローカルでしか使えないクソスクリプトだということを どれぐらいのガキどもが気づいているのだろうか? 内容も煽っているだけのドキュソだし。
抜かぬなよって何処の方言?
で、何でそんなイキリ立ってる訳よ 糞本は、糞餓鬼向けに書かれてんだから丁度良いんじゃねーのか それとも、萌え萌えBBS荒された復讐の為にその本を買って 実践したけど出来なくて怒ってるのか? そんな程度の低い本に金出すなら、MSDNの会費払ってfocus辺りチェック した方がちょっとはマシだぞ 今の旬は、アクティブスクリプトとMIME偽造しての受動攻撃だ 一昔前は、ActiveXだのアプレットだのってレジストリに辿り着くまで ちょっとは頭使ったもんだが、今はコイツのお陰でいきなりバイナリ 実行だ。 椅子使って天井にぶら下ったバナナ取れる程度の頭で理解出来るだろ
561 :
名無しさん@お腹おっぱお。 :02/02/07 13:54 ID:W77uI4p+
>>560 一旦、HTMLファイルごとダウソロードさせて、そこで抜いたデータを
INPUT TYPE="hidden" で送ることにしました。成功。
なお、両糞本は図書館でコピーしましたので購入していません。
どこのどいつかわからん奴に金払うのももったいないし。
>>559 吉祥寺ですけれど。タイプミスごときを発見してクソレスするのもどうかと。
上げ足取りでよろこんでんじゃねーよ。すんまそんって言ってほしいのか。
すみません初心者の質問です。 投稿した人がリアルタイムで投稿を閲覧できないタイプの掲示板を 探しているんですが、どこかにないでしょうか?(フリー・商用可で) 投稿をまず管理人が確認してから、管理人が手動で閲覧ページに 追加するようなタイプを探しています。 そういうのがない場合は、どういうCGIから改造すれば作りやすいかも 教えていただけるとありがたいです。
>>562 ですけどすみません。
掲示板を探していると書きましたが、実際はご意見箱みたいに
使います。管理人が閲覧ページに追加するというのは別になくても
構いません。よろしくお願い致します。
>>564 ありがとうございます!また後で聞いてみます。
566 :
名無しさん@お腹いっぱい。 :02/02/07 22:14 ID:DkHnJcQz
携帯電話用の掲示板を見てると、ezwebだけ書き込めない所が多いのは何故?
567 :
名無しさん@お腹いっぱい。 :02/02/07 22:19 ID:WQ26b83K
568 :
名無しさん@お腹いっぱい。 :02/02/07 22:21 ID:DkHnJcQz
>567 職場で開いてしまったじゃないか
570 :
名無しさん@お腹いっぱい。 :02/02/08 21:55 ID:7b9QJMyH
CGI(Perl)で作成したビットマップイメージ(BMPファイル、という意味ではなく、 ピクセル毎の濃度情報の羅列、という広義のビットマップ)を、GIFなり PNGなりに変換して、クライアントに返してやりたいんですけど、 そういうことって難しいでしょうか? Cとかで書かれたPNGの圧縮ライブラリをPerlに翻訳するのは相当大変そうですが。 WindowsBMP形式で出力するのならPerlからでも簡単に書けますが…。 その辺の方法で、妙案を知ってる方、教えてくださいです。
572 :
名無しさん@お腹いっぱい。 :02/02/09 04:48 ID:Tw5caV36
Fri Feb 08 19:19:16 2002 ↑ この日付を 1970年1月1日00時00分00秒からの秒数に一発変換する方法 ないでしょうか…。
573 :
572 :02/02/09 04:53 ID:???
すみません、言語はPerlです。
>572 Date::Parseあたりのモジュール入れれば1発でできる。 標準で付いてるTime::Local使って,自分で関数書いても 10行ぐらいでできる(はず)
私は Time::Piece を勧めておくよ
576 :
574 :02/02/09 05:59 ID:???
>572 他の環境で動かない可能性高いけど,自作するならこんな感じかなぁ。 use Time::Local; sub parse_date { my($time,%month,$sec,$min,$hour,$mday,$mon,$year); $time = shift; @month{qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec)} = (0..11); ($mon,$mday,$hour,$min,$sec,$year) = ($time =~ /\w{3} (\w{3}) (\d{1,2}) (\d{2}):(\d{2}):(\d{2}) (\d{4})/); return timelocal($sec,$min,$hour,$mday,$month{$mon},$year); } #以下テスト $date = 'Fri Feb 8 20:42:33 2002'; $time = parse_date($date); print "$date\n"; #Fri Feb 8 20:42:33 2002 print "$time\n"; #3096040756 print localtime($time)."\n"; #Fri Feb 8 19:19:16 2002
577 :
572 :02/02/09 06:44 ID:???
>>574 ,575,576
レスありがとうございます。
この時間、人が少ないので助かりました。
>>576 574を読んで、ちゃんと解決してから書き込もうと思っていたら
コードまで書いて頂いてるとは。ありがとうございました。
perlでつくられたチャットを軽量化しようとおもっています。 nphスクリプトとgzipを実装しようとおもっていますが、この二つを導入するデメリットや注意点などありますでしょうか。
gzipを実装。 データ量とのトレードオフでマシンパワーを使う。
>>579 レスthxです。
2chの場合はあまりCPU負荷が増えなかったそうですが、gzip実装する場合としない場合、どちらが鯖に優しいですか?
チャットなので20秒に1度10kb程度のデータです。
Perlの場合、メモリを異様に食うのと速度が遅いのが問題だと思うんだよね。 一番の近道はCで実装する事だと思うよ。
>578 前にチャットスレで見た, ログをHTMLじゃなくてJavaScriptで書き出すってのはどう?
>>581-582 そこまでの力量がない腐れ厨房なんです、すみません(^^;;
でもせめて負荷の高いCGIおくのだったら、かんたん出来る軽量化はやっておきたいなあというわけなんです。
>>583 javascript、検討したんですがカスタマイズがしにくかったり、同期でトラブル微妙にもってたり、何より漏れの脳味噌の処理能力を超えていて(^^;;
にゃかにゃかうまくゆかんです……
ぐーぐるってみてもnphとgzipはとりあえずやっといて損はなさそうなので、やってみますです。
>584 mod_perlとか SppedyCGIのほうが効果あるんじゃない? 普通のチャットなら,プログラム起動に 10かかるとして,処理は 3くらいしかかかってない。 起動時間を縮めたほうが効果的。
sendmailでメール送信したとき 2行目以降の先頭文字が一文字飛ばされてしまうんですが原因不明で困ってます。 日本語だと当然省略された行からjis変換できず化けているようです。 (あ、てことは変換前に何か原因が・・・?!) いや、変換後に飛ばされてるのかもですが、jcode.plの変換をナシにしても 結果はおなじでした。 誰か助けてください。きっかけをください。
>>585 mod_perlのほうは調べてみて「こりゃー、下手に手をだすと鯖に迷惑をかけてしまいそうだ」と、躊躇していました。
speedCGIのほうは知りませんでした。thx! ぐーぐるってきます。
589 :
_ :02/02/10 02:24 ID:???
>>589 お前、例のbbs.cgiのアレ試したいだけちゃうんかと。
591 :
589 :02/02/10 02:34 ID:???
???例のbbs.cgiは知らないですが、アレはCSS? いつもはFreePeekでキャプチャして見てるんですが、これは使えるかなと思いまして。
>589 telnet
携帯でのみ特定の文章(html)を表示させるプログラムがCGIでできるらしいのですが、 ドコで調べればいいのかわからないのでやり方を教えて下さい。
REMOTE_ADDRや HTTP_USER_AGENTを調べる。 あと, HTMLでなら noscriptを使うとか。
>>592 telnetとはめんどいな。
おいらも便利ツールキボンヌ
>>589 見たけど
このようなツールは,プログラミングとTCP/IPについての初歩的な知識があれば作成できる
だとよ!
Delphiで作ったぽいが、持ってても俺は作れん。
googleでも見つからんな。(w
597 :
名無しさん@お腹いっぱい。 :02/02/10 03:26 ID:x2r/lBJQ
ActivePerl使ってるんですが、 CGIを起動させるたびに、CGItempXXXXXっていうファイルが残るんです。 どうしてですか?
>>588 やっぱgzipはトレードオフでの負荷が高すぎっすか?(-_-;
細かい負荷を検証する方法があればお教え願いたいです。
599 :
589 :02/02/10 03:51 ID:???
>592、595、596 さんどうもです。 vectorとか探してもそれらしきものが見つからなかったです。 ってか皆さんはPOSTメソッドどうやってテストしてます? 変数変えるのも面倒で。telnetもTeraTERMとかでマクロ組めば楽なのかな。 もちょっとデバッグの勉強せねば。 引き続きツール情報お待ちしております。
600 :
593 :02/02/10 04:33 ID:???
初心者なもので、ちょっとまだわからないです。 PCから来た人に対してはソースも見せたくないんです。 UAを指定すればいいということはわかるんですが、 それは具体的にはどうすればいいのでしょうか? 質問ばかりですみませんが、ご存知の方ご教授下さい。
>>599 POSTメソッドのテストってのが何なのかワカランけど
ヘッダとポストされたデータ見るなら、Proxomitronが簡単便利。
http://www.pluto.dti.ne.jp/~tengu/proxomitron/ ↓ こんなカンジ
POST /cgi-bin/test/bbs.cgi HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
Referer:
http://192.168.1.1/cgi-bin/2chbbs/index2.html Accept-Language: ja
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
Host: 192.168.1.1
Content-Length: 148
Pragma: no-cache
Connection: keep-alive
Cookie: NAME=名無しさん
Browser reload detected...
Posting 148 bytes...
submit=%8F%91%82%AB%8D%9E%82%DE
FROM=%96%BC%96%B3%82%B5%82%B3%82%F1
mail=
MESSAGE=%8F%91%82%AB%8D%9E%82%DE
bbs=2chbbs
key=1010920016
time=1012492903
HTTP/1.1 302 Found
Date: Sat, 09 Feb 2002 19:33:57 GMT
Server: Apache/1.3.22 (Win32)
Set-Cookie: NAME=名無しさん; expires=Tuesday, 12-Mar-2002 00:00:00 GMT; path=/
Set-Cookie: MAIL=; expires=Tuesday, 12-Mar-2002 00:00:00 GMT; path=/
Location: ../2chbbs/index2.html
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html
>>599 うぇ、リンク先見たら601とちょっと違うみたい。
ヘッダ自体はProxomitronで自由に送れるけど、
ポストしたいならクライアント書いたほうが…。
PerlかJavaで書いてみ どっちも100行位で出来るから 俺はPerlで書いて%POSTの値を直接書き換えてる
604 :
589 :02/02/10 12:12 ID:???
>604 んー、サンプルは荒らしツールだろ (笑 漏れのはちょっと変なスイッチとかゴチャゴチャ付いてるんでね まあ、どっちにしてもまともなパケット飛ばすなら全部Perlで出来るから やってみれ 1:%POSTにPOSTの内容、%HEADにヘッダの内容 2:%POSTのエスケープ s/([^ \w])/printf"%%%02X",ord$1/eg for(keys %POST); 3:%POSTを連結してlengthを取っておく 4:use IO::Socketしてサーバに繋ぐ 5:ヘッダから順に流し込む もっともプリミティブなDUKE w
606 :
:02/02/10 15:47 ID:???
Perlなのですが、printfを使って得る出力結果を戻り値として得る方法は無いでしょうか? 例えば、 printf ( "%05d", "1" )の時は00001を文字列として受け取りたいのですが。
>>606 sprintfと言う便利すぎる関数がある。
$a = sprintf ( "%05d", "1" );
608 :
606 :02/02/10 15:50 ID:???
後から読み返して日本語がぷーなので補足しますが、 printfによるフォーマット付き出力をprintしないで得る事は出来るか?という事です。
609 :
606 :02/02/10 15:51 ID:pSADSDVf
>>607 早いレスポンスありがとうございました。です。。(´д`)
611 :
589 :02/02/10 21:15 ID:???
>>605 DUKEってPerlDUKEってものなんですね。調べてようやく分かりましたが
つまりは諸刃の剣ってことで、なかなか転がってるものでは無いのですね。
大変参考になりました。Perlもっと勉強しよっと。
612 :
名無しさん@お腹いっぱい。 :02/02/11 10:03 ID:9PTzyEYB
gif表示のアクセスカウンタ作ったんですが、ネスケ6でだけ表示がおかしいんです。 画像連結にはgifcat.plというのを使ってます。 他のブラウザではちゃんと表示されるんです。 どうしてですか?
613 :
名無しさん@お腹いっぱい。 :02/02/11 12:15 ID:a/gnXcc0
>>612 ソースを見せて下さい。
それとどうおかしいのか説明きぼん。
614 :
612 :02/02/11 16:19 ID:9PTzyEYB
ありがとうございます。カウンタの本体で画像連結してる部分は以下です。 開設サイトのサンプル通り。 require "gifcat.pl"; binmode(STDOUT); print &gifcat'gifcat(@files); #@fileは1.gif、2.gifなど あと、gifcat.plはたぶん有名なライブラリだと思いますが、中身は理解してません。 画像には透過gifを使用。画像サイズはすべて統一。 ネスケでの症状は、一桁しか表示されなかったり、 黒文字の背景透過のはずが白字に文字が透過になったりとそのときによって違う。 よろしくお願いします。
>614 その時によって違うという事は、カウンタの画像のうちのどれかに問題がある可能性が高いのでは? 同じ処理をしていて違う結果が出るとしたら、ブラウザなどの不具合か、 「カウンタの特定の数字でその現象が起こる」という可能性が高いと思うのだけれど。 例えば、画像の内、ひとつだけが透過GIFになってなかったりとか。
616 :
612 :02/02/11 16:59 ID:9PTzyEYB
ありがとうございます。 同じカウント数でもネスケだけ(バージョン6.2だけ)だめでした。 しかし、ブラウザによって挙動が違うのは、ちょっと僕の理解を超えてます。 初心者なのでわからんですが..。ブラウザにとっては単なるgif画像ですよね?? 今気づきましたが、html内のimgタグで参照しているときは崩れた一桁、 cgiを直接ブラウザで実行した場合は全桁表示で同様に崩れています。 うーわからん。よろしくお願いします。
NN6は使ってないからよくわからないけど、「アニメーションをオフにする」とかなってない? IEだとアニメーションオフだと表示されないんだけど、関係ないかな?
618 :
613 :02/02/11 17:49 ID:???
>>612 gifcatの冒頭に
;# アニメGIF同士を連結することはできません。
;# アニメGIF対応のブラウザでなければ、最初の画像しか表示されません。
;# 高さの異なるGIFファイルは連結できません。
と記されているけども上記三点は確認した?
俺も
>>617 さんと同じ意見です。
まあネスケはユーザー少ないんだからIEで動けばいいんじゃねえのヽ(´ー`)ノ
なんちて。お役に立てなくてスマソ。
619 :
613 :02/02/11 17:56 ID:???
それとどうしてもダメだったらgifcat.plを使わなければいいじゃん。 ちょっと(かなり)動作が遅くなるけど、一桁ずつCGIで処理する方法とか。
620 :
612 :02/02/11 20:41 ID:9PTzyEYB
ありがとうございます。なんだかやたら重いですねここ。 アニメはしてないんですけどね。 imgタグひとつでやりたいんですが、ばらばらの複数桁表示することってできるんですか? うーむ、不勉強なもので、どうやるんだろう。
621 :
612 :02/02/11 20:49 ID:9PTzyEYB
なんか日本語おかしかった。 imgタグひとつでcgi呼び出して、ばらばらのgif画像を表示するのは無理ですよね?? 桁数分のimgタグ書かないとだめですよね? うーん、それはめんどくさいなあ。全部で10個くらいカウンターあるし。 4桁でも40個タグ書かなきゃならんのか。
>620
gifcat.plはアニメーションとして扱われている。
俺も理屈は知らないが、とにかくブラウザは「アニメーション」として認識している。
元の画像がなんであれ。
だから、アニメーションをオンにしておかないと表示されない。
バラバラ複数表示は、1/10000、1/1000、1/100、1/10、1/1の桁の数字をそれぞれ表示させればいいだろう。
IP取るか何かで重複カウントをしないようにして。
重いのは攻撃受けてるかららしいぞ。
ttp://mentai.2ch.net/accuse/
>621 IMGタグを書くのをめんどくさがるような奴は、プログラミングに向いてない。 あきらめろ。
何かNNでそんな問題有るってのは前に聞いた事あるぞ 取り合えずファイル変えて何個か試してみれ # GDで吐き出せって解が無いのはネタか?
625 :
612 :02/02/11 21:50 ID:9PTzyEYB
なるほどなるほど。gifcatはアニメーションなのか。 でも、他のアニメgifは表示されてるし..。 取り敢えず、画像変えてみます。 攻撃されてるんですか。攻撃してる暇あったらimgタグ40個でも書くっちゅうのに。 とりあえず、ありがとうございました。GD、調べてみます。
パレットは同一か?
newsproを設置したいのですが、どうすればいいのかさっぱりわかりません。 どなたかnewspro設置に関する解説の載っているHPなど、ご存知の方はいらっしゃいませんか?
>623 ずらっと並んだIMGタグ見て悦に入ってるヤツはプログラミングに向いてない。 >612 いかに少ない手間で望んだ処理を実装できるかがプログラマのセンスだ。 頑張れ。
>628 望んだ処理を実現できなかった時に別の手段を考えられない奴もプログラマにむいてないと思うぞ。
630 :
名無しさん@お腹いっぱい。 :02/02/12 20:28 ID:xItClW5N
631 :
名無しさん@お腹いっぱい。 :02/02/12 21:01 ID:J8KR6oNi
プログラマに向いていない度
>>612 >>>>>>>>
>>628 >>
>>623 >>628 >いかに少ない手間で望んだ処理を実装できるかがプログラマのセンスだ。
少ない手間で済まそうと、CGI.pmを多用して鯖に迷惑をかける人の発言っぽいので減点。
>>629 激しく同意
>>612 タグのたかが40個も書けない奴はJAVAを書くとしたらハローワールドしか
書けません。逝ってヨシ
632 :
630 :02/02/12 21:08 ID:xItClW5N
削除用CGIスクリプトを見つけて自己解決です。 また質問するかもしれないのでよろしく。
>>630 File Upload CGI Second Editionというのを設置した事がないんだが、
FTP(か付随のファイルマネージャ)を使って削除すればいいんでは?
其れとも、それ自体ができないのか? 関係ないならスマソ
>>633 CGIで負荷をかけつつファイルをうpするなんてナンセンスだよね。
FTP使ったほうが数倍まし。
実際そういうスクリプトってプログラマが自己満足(勉強)のためだけに作成
してるパターンが多いと思う。。
>>634 20-21番ポートが閉じられている教育機関がどれだけ多いか考えたこと無いだろ?
インターネットへのゲートウェイとしてHTTPプロキシしか用意されていない環境とか想像したこともないだろ?
FTPでも負荷はかかるって驚愕の新事実だろ?
自分の世界だけで人をバカにしないように。
>>635 "設置したら"っていってるんだからFtpで設置したんでしょ
>>635 別にバカになんかしてなぃょぅ。。
実際漏れは自己満足だけのためにアップロードcgiを作成中だから
言ってみたんだよ。ゴメンネ。
>>612 gifcat.pl使って同じ問題発生してるよ。
透過gifを使った場合にグチャグチャな表示になる。
透過gifじゃない場合は最初の一桁が黒くなる。
とほほのページも後者になってるから、たぶんgifcat.plの問題っぽい。
全然解決策じゃないけど、透過gifを止めて桁数を1つ多くしとくとか。
639 :
教えてください。 :02/02/13 17:00 ID:TSfdBnbM
すみません。教えてください。 SSIのような感じで外部htmlをcgiのページに入れることって可能ですか? ちなみにshtmlに外部htmlだと「#include」を使います。 こんな感じにcgiのページに取り組むことって出来るのでしょうか? よろしくお願い致します。
>>639 CGIにそのような機能は無いが、
CGIスクリプト自身で実装は可能。
641 :
639 :02/02/13 17:40 ID:TSfdBnbM
ありがとうございます。 やっぱそういった機能はないんですか。 >CGIスクリプト自身で実装は可能。 たとえばどういった方法ですか? 重ねて質問でスミマセン・・・。
HTMLファイルをオープンしてプリント。
643 :
639 :02/02/13 18:01 ID:TSfdBnbM
>>642 うーんやっぱそれしかないですかぁ。
いろいろありがとうございました。
勉強になります。
644 :
伝説の勇者ロリ ◆Ug2000AA :02/02/13 19:04 ID:OBfug7d+
17スクリプトで作った掲示板をリスト表示するスクリプトをかいて下さい
>644 みかえりは?
646 :
名無しさん@お腹いっぱい。 :02/02/13 21:03 ID:+kVUoqof
648 :
名無しさん@お腹いっぱい。 :02/02/14 13:29 ID:uu2YqRDp
>>631 >少ない手間で済まそうと、CGI.pmを多用して鯖に迷惑をかける
この部分、詳しくキボンヌ
WindowsでCGIチェックするには何使ってますか。 anhttpd使ってたんだけど、だんだん重くなって困る。win98se ってことでapache入れてみたんだけど、サーバーにPUTするときは1行目は 絶対書き換えなきゃならないの?
>>648 >>631 じゃないが
CGI.pmはメモリを食う(といってもても1MB程度だが)のだ。
それにコンパイルにもかなり時間がかかる。これCGIスクリプトとしては致命的。
自鯖やmod_perlならともかく、共用鯖で使用するのはお勧めできない。
651 :
名無しさん@お腹いっぱい。 :02/02/14 16:49 ID:VPX5WYBv
/∵∴∵∴\ /∵∴∵∴∵∴\ /∵∴∴,(・)(・)∴| |∵∵/ ○ \| |∵ / 三 | 三 | / ̄ ̄ ̄ ̄ |∵ | __|__ | < CGI.pm、素人にはお勧め出来ない。 \| \_/ / \____ \____/
CGI.pmの機能のうち、URLデコードしか使わないのなら、おなじみのコードのコピペかcgi-lib.plで十分だよな。
>>652 得意げな顔して何がコピペかcgi-libだよな、だ。
お前は本当に分かっているのかと問いたい。問い詰めたい。小一時間問い詰めたい。
まぁ普通はCGI::LiteかCGI::Minimalでも使ってなさいってこった。
655 :
名無しさん@お腹いっぱい。 :02/02/14 19:50 ID:4Wmucv6g
URLデコードもファイルのアップロードも、もう汎用のルーチンが 出そろっているにもかかわらず(しかも、俺専用サブルーチン化も終わってる) CGI.pm使うメリットってあるのでしょうか?
>>649 httpd.confで
ScriptInterpreterSource registry
というところを探してみな。
せっかくだからapacheスレも読んでおけ。ためになるはず。
>>656 メリットがあるか否か、と問われれば"ある"だろうよ。
param()を初めとしてquery_string()、header()、self_utl()、cookie操作といったメソッド群は捨てがたい。
ただそれに伴うデメリットが大きすぎるように感じるので俺は自作のを使うが。
659 :
名無しさん@お腹いっぱい。 :02/02/14 22:29 ID:9A/CUBFF
どなたか教えてください。 あるドメイン上で食べさせたCookeiを全く違うドメイン上で有効にさせることってできるんですか?
>659 DNSのセキュリティホール使ってなりすましましょう。
661 :
名無しさん@お腹いっぱい。 :02/02/14 22:36 ID:nozayNsj
>660 そうゆう問題になってしまうんですか...。 要するに別々の違うドメイン同士でシングルサインオンを実現したいんですけど、 何かやりかたありますか?
あのね、Cookieがそんなことが簡単に許したらさ、サイトに来る やつのオンラインショッピングやバンキングのIDとパスワードを getしようとする輩の片棒を担ぐことになりませんか?
>661 print <<HTML_SOURCE; <HTML> <HEAD> <TITLE></TITLE> <META http-equiv="refresh" content="0;URL=目的のドメイン"> </HEAD> <BODY> <INPUT type="HIDDEN" name="id" value="id"> <INPUT type="HIDDEN" name="pass" value="pass"> </BODY> </HTML> HTML_SOURCE とりあえず移動はできたけど?
664 :
名無しさん@お腹いっぱい。 :02/02/15 01:19 ID:DAKSQb3X
両方ともSSL内で、最初のドメインでログインした情報、でなくてもいいんですけど、 「どっからのリンクか」とかIDとかをCookeiにのこして、 移りたいドメインの方でそのCookeiを認識して、 そのままログインできないかってことなんですけど、 やっぱり無理なものですか? 突拍子もないこと言ってたらすみません。
665 :
612 :02/02/15 01:56 ID:nyIDEBdJ
>>638 めちゃめちゃ遅レスですが、gifcat.plの件、ありがとうざいます。
gifcat.plの中身を勉強してみます。
結局、Cookie と ビスケットの違いは何なんでしょうか? このままでは のどが乾きすぎて食べることができません。
667 :
名無しさん@お腹いっぱい。 :02/02/15 03:38 ID:oErzQw9b
CGI.pmのコンパイル時間ってそんなに気になるものか。 そうなると、他のモジュールもつかえねーなぁ。 まあおれも自作のCGI::*作ってるけど。
>>667 コンパイル時間よりモジュールの能力や使用目的と
メモリの消費量との比較の話だと思うぞ。
デコードしたいだけで使うな、しかも共用鯖で。って話。
かといってすげー高機能なことをしたいし実際
するモジュールなのでメモリくいますって言われてもウザいけどな。
結局は「共用鯖でメモリくうな」って話か。@data=<IN>と一緒で。
http://www.ace-cgi.jp/ ↑のニセビンゴゲームEXと言うのをDLして、鯖にUPもしたんですけど、
説明が不十分すぎて全然わかりません。
これはどういうタグを打ったら、HPに表示されるんですか?
そして、説明にはビンゴの一日に発表する数字が変えられるとか書いてあるけど、
CGI初心者なのでどこを書き換えればいいのか全然わかりません。
質問メール禁止ってかいてあるけど、あんな説明じゃ全然わからないので、
メール送ったらやっぱり無視されてるし・・・。
もう2chでしか解決する手段がないんです。
どうかよろしくお願いします。
670 :
名無しさん@お腹いっぱい。 :02/02/15 16:35 ID:blqT6YTo
sendmail等が使用出来ないサーバではご利用頂けません。 ってかいてあるよ
>>669 アンタが何をしたいのか、説明が不十分すぎて全然分からない。
> これはどういうタグを打ったら、HPに表示されるんですか?
どういう意味?
>>669 のサイトより引用
> このようなホームページを運営していると、色々な方からメールを頂きます。
> 励ましのお言葉やお礼を言ってくださる方。本当に嬉しく思います。
> このようなメールを頂ける為、私の場合は結構恵まれていると思います。
> しかし、本当に「常識あるの?」という人も非常に多いのです。
> まったく知らない人にメールを送る場合、普通は「送っていいものか」考えませんか?
> たとえば、「○○についてのメールはお断りします」「メールを頂いても返信致しません」等、注意書きがないかをよく捜してからメールするのが普通ではないでしょうか。
> 私のHPには、あちこちに「サポート目的のメールはお断りします」と書いているのにも関わらず、沢山のサポートメールが届きます。
> 性格的に、来たメールに対して無視する事が出来ずにそれなりの返答をしておりました。が、きりが無いので今では返事を出す事を辞めました。
> 文面が丁寧であればまだ我慢も出来ますが、礼儀も何もあったものではないメールも多いです。
> 「うまく行かないんですけど〜どうすればいいの?」「パーミッションってなに?」
> 突然知らない人にこんな口調でものを言っていいもんなのか、、、、
>>669 これでもメールを送るとは、お前相当な厨だな。
674 :
名無しさん@お腹いっぱい。 :02/02/15 18:12 ID:u5RDXGaq
HTML::Template に変わる軽くてイケてる Template モジュールないかな。 いままで、平気で HTML::Template 使ってたが、なんだか馬鹿でかいモジュール は迷惑らしいんで。
676 :
osiete :02/02/16 05:46 ID:/tWP7Box
biglobeでapebord+を使おうとしているんですけど、 うまく行かないので教えて下さいませ。 とりあえずapeのオンラインマニュアルに従って設定して、 鯖にあげ、パーミッションもそこに書いてあるとおりに変更しました。 それからapebord_p.cgiにアクセスすると Forbidden Your client is not allowed to access the requested object. と出てしまいます。 cgi自体の設定は何度も見直したので間違いはないと思います。 サーバメッセージからやはりパーミッションに問題があるのでしょうか? 鯖によって別のパーミッションを設定した方がいいのでしょうか? また実際にbiglobeにapebordを設置している方がいらっしゃったら アドバイスを下さい。
677 :
:02/02/16 05:48 ID:A2kD2wAS
Your client is not allowed to access the requested object. って、エラーが出てるでしょ。 許されてないわけよ。ようするに。
678 :
osiete :02/02/16 05:52 ID:/tWP7Box
>>766 つまりはビッグローブではエイプは使えないと言う事ですね。
アリガトウございました。
諦めがつきました。
>>665 とほほのサイトにはこう書いてある。
> ・Netscape 6.* では、一番最初の桁がうまく表示できないことがあり
> ます。→ 一番最初の画像の大きさが全体と異なる場合に表示がおか
> しくなるという、ブラウザ側のバグが原因だと推測しています。
681 :
osiete :02/02/16 09:36 ID:m2PS92h6
>>679 あれ?ディレクトリにパーミッションなんてあったんですね。
ありがとうございます。試してみます。
後ほど報告します。
ちなみに679さんはビッグローブでapebord使ってるんですか?
調べたところディレクトリのパーミッションはOKでした。 しかし、ダメでした。 なんか、掲示板本体のcgiを755、 jcode.plを705に設定しなければならないんですけど、 片方を755にすると、もう一方も755になってしまうという現象がおきます。 逆に705にしても同じです。 なんなんでしょうか。 とりあえずもう少しイジッてみてダメなら諦めます。 677さんと679さんありがとうございました。
683 :
名無しさん@お腹いっぱい。 :02/02/16 20:13 ID:YD7vP/c3
C++でCGIを組みたいのですが、 それに関する良い参考書って無いですか?
>>683 必要ない。
環境変数の取得の仕方。
標準入力からのデータ取得。
標準出力へのデータ出力
ができればいい。
Perl用の参考書を軽く読めばできると思われ。
CGIの参考書と言っても中身はほとんど言語の使い方。
685 :
名無しさん@お腹いっぱい。 :02/02/16 22:10 ID:fa/OrNt0
2ちゃんねるのような フロート型掲示板を設置したいのですが 軽い物有りませんでしょうか? megabbsはiswebでは無理でした。
>>685 規約に2ch型掲示板の禁止と無いか?
軽い重いは問題ではない。
687 :
685 :02/02/16 22:21 ID:fa/OrNt0
そうか! 規約読んでなかった! megabbsはレス出来ても スレ立てられなかった
インターネットショップのための CGI&JavaScript(アングラーズネット) という本にのっている 買物カゴのプログラムを見ているのですが、 最初のところがさっぱりわかりません。 クッキーを取得して1行ずつに名前をつけているようなのですが、 そのあとcount1 から count7 まで 数字をつけています。 これが、何を意味しているのか知りたいのですが・・・
>688 その本ボクに買ってくれたら教えてあげるYO!
>>688 まあ待て、お前の態度次第では教えてやらんでもないぞ。
WinMXでオレ様にエロゲーを3、4本落とさせろ。そうすれば
教えてやってもよいぞ。
エロゲーありませんが・・・ $count1= 0; $count2= 0; while ($count1 <= 50 ){ $xx= @kazu[$count1]; &trans; @kazu[$count1] = $xx; if (@kazu[$count1] ne "") { $H = 1*@kazu[$count1]; if ($H >= 1) { $count2++; $datareg1{$count2}="@shouhinnumber[$count1]*@shouhinmei[$count1]*@bikou[$count1]*@kakaku[$count1]"; $datareg2{$count2}="@kazu[$count1]"; } } $count1++; } foreach (split(/; /,$ENV{'HTTP_COOKIE'})) { ($key,$value) = split(/=/); $count1= 1; while ($count1 <= 20){ $shouhin = "shouhin$count1"; if ($key eq $shouhin) { $shouhin{$count1}= $value; @data = split(/::/, $shouhin{$count1}); $data1{$count1} = @data[0]; $data2{$count1} = @data[1]; } $count1++; } }
スミマセン。行がそろってしまいました。再度 $count1= 0; $count2= 0; while ($count1 <= 50 ){ $xx= @kazu[$count1]; &trans; @kazu[$count1] = $xx; if (@kazu[$count1] ne "") { $H = 1*@kazu[$count1]; if ($H >= 1) { $count2++; $datareg1{$count2}="@shouhinnumber[$count1]*@shouhinmei[$count1]*@bikou[$count1]*@kakaku[$count1]"; $datareg2{$count2}="@kazu[$count1]"; } } $count1++; } foreach (split(/; /,$ENV{'HTTP_COOKIE'})) { ($key,$value) = split(/=/); $count1= 1; while ($count1 <= 20){ $shouhin = "shouhin$count1"; if ($key eq $shouhin) { $shouhin{$count1}= $value; @data = split(/::/, $shouhin{$count1}); $data1{$count1} = @data[0]; $data2{$count1} = @data[1]; } $count1++; } }
厨でスミマセン。 行頭を下げて、投稿する方法がわかりません。 あきらめました。とほほ。 ご迷惑をおかけしました。
著作権的に問題ないのか? 市販の書籍のコード晒すの。
配列要素の参照に@…?まさかッ!Perl6のコードかッ!
>>696 偶にいるんだよね、こーいうことしちゃう奴。
んでもスライス扱いになるから、意図した動きになるみたいよ。
だから、こーいう書き方したいなら、
($scalar) = @list[1];
とかって書いた方が気持ちよいけど。
>>692 そのソースだと,これくらいしかわからなかった。
@kazuを処理して, %datareg1と %datareg2に結果を入れてる。
そのあとクッキーを読んで,%data1と %data2に結果を入れてる。
699 :
名無しさん@お腹いっぱい。 :02/02/19 11:49 ID:h6Vj/zlt
改行を含んだ変数($tegami)があるんですが、 この変数を1行毎に処理したいのですがどうしたらいいのでしょうか? while とか foeach とかでやろうと思っているのですが分かりません
>>699 while($data ne "")
{
$data =~ s/(.*?)\n//;
push(@data,$1);
}
>>700 ごめん。
$data -> $tegamiで。
>>700-701 速レスありがとうございました!
無限ループさせてしまっていました、、、
助かりました
>>700 役に立ったかな?
$data =~ s/^(.*?)\n//;
の方がより良いかも。
704 :
名無しさん@お腹いっぱい。 :02/02/19 12:58 ID:Ls+q3KGP
foreach ($tegami =~ /([^\n]*?\n)/g) { chomp; $_ ... } とか
705 :
名無しさん@お腹いっぱい。 :02/02/19 14:59 ID:dKbpdQEs
A子さん はじめまして B子さん どうも A子さん どうも こんな感じでログファイルに保存してあったとして B子さんの発言のみをログファイルから読み込んで 表示するにはどのように記載すればよいのでしょうか?
open(OUT,"$logfile"); while(<OUT>){ @log=split/\t/; if ($log[0]=B子さん){ print @log; last; } } かな?
>706 それだと、if文のところで、$log[0]がすべてB子さんに書き変わる。
>706 そして、それだと、B子さんが一回でてくるとそこで終了してしまう。
>706 さらに、openしたOUTはいつクローズしてもらえるかとうずうずしている。
あれ?そうですか? じゃぁ open(OUT,"$logfile"); @file=<OUT>; close (OUT); foreach(@file){ @hoge=split/\t/; if ($hoge[0]=B子さん){ print @hoge; exit } } でどうですか?
B子さんが一つ以上あるなら open(OUT,"$logfile"); @file=<OUT>; close (OUT); foreach(@file){ @hoge=split/\t/; if ($hoge[0]=B子さん){ print "@hoge\n"; } } で
>710 だから、そのif文だと もし($hoge[0]にB子さんを代入できたら){@hogeを出力して実行終了} だろ? @hoge[0]にB子さんを代入することを阻害する要因が何一つこれっぽっちもない以上 一行目の配列で終了だよ。
>711 いつ気付くんだろ・・・・
B子さんが一つ以上あるなら open(OUT,"$logfile"); @file=<OUT>; close (OUT); foreach(@file){ @hoge=split/\t/; if ($hoge[0] eq B子さん){ print "@hoge\n"; } } こうか?
>714 そうだ
「closeしろ」の意味を取り違えてる、とか B子さんをクォートしなくても良いンか、とか。
open(OUT,"$logfile"); @file=<OUT>; close (OUT); foreach(@file){ @hoge=split/\t/; if ($hoge[0] == "B子さん"){ print "@hoge\n"; } } これでも良し?
んで、俺ならこうする。 open(OUT,"$logfile"); @file=<OUT>; close (OUT); foreach(@file) { @hoge = split(/\t/,$_); if ($hoge[0] =~ /B子さん/) { print $_; } }
>>717 文字にはeqじゃないの? ==でどうなるかわからんけど。
foreach内単に
print if (/^B子さん/);
ではダメなのだろうか?
OUTって名前が気持ち悪いのは俺だけ?
>717 それだとどうかしらん。
>719 ぜんぜんおっけーっしょ?
そういやなんでOUTなんだ?普通INとかそれ系だろ。
open IN, "<$logfile" or die; while(<IN>){ print if /^B子さん\t/; } close IN;
724 :
705 :02/02/19 15:51 ID:???
725 :
705 :02/02/19 15:51 ID:???
こんない× こんなに○ すいません間違えました。
726 :
705 :02/02/19 16:01 ID:???
度々すみません。 追加の質問で B子さんの名前の場所と コメントの場所を調整するにはどうすればいいのでしょうか? B子 どうも こんな感じです。
懲りずに挑戦 open(OUT,"$logfile"); @file=<OUT>; close (OUT); foreach(@file){ @hoge=split/\t/; if ($hoge[0] eq "B子さん"){ print "$hoge[0]<br>$hoge[1]<br>"; } } 又は open(OUT,"$logfile"); @file=<OUT>; close (OUT); foreach(@file){ @hoge=split/\t/; if ($hoge[0] eq "B子さん"){ @hoge=~s/\t/<br>/g; print "@hoge<br>"; } } でどうでしょ?
>>727 脳内で完結しないで試してから書き込むように。
#!perl
open IN, "<$logfile" or die;
while(<IN>){
if(/^B子さん\t/){
s/\t/<br>\n/;
print;
}
}
close IN;
>>728 s/^(B子さん)\t/\1<br>\n/;
s/B子さん/B子タンハァハァ(;´Д`)/eg;
>>732 あ、ほんとだ。
外で\でも通っちゃうのか
734 :
名無しさん@お腹いっぱい。 :02/02/19 20:42 ID:AWkZQcnE
もしよろしければ教えてください。 文字列を保存ファイルから読み出して、1文字ずつに区切りたいのです。split(//,$aiueo); 半角文字(1とかa)は成功するのですが、全角文字(1とかA)が保存されているとその部分だけ文字化けしてしまいます。 どのようにすればうまくいくのでしょうか??。
>>734 だって全角文字って2〜3バイトだし(EUC,SJIS)。
JPerl使うって言ったら怒られるだろうなぁ・・・。
なんかマルチバイト関数とかってなかった?
737 :
名無しさん@お腹いっぱい。 :02/02/20 01:11 ID:WIqY+mg7
>>734 Perlメモにそのままのがあったよ。
www.din.or.jp/~ohzaki/perl.htm#JP_Split
それともUTF-8使ってみるとか。
#utf8プラグマを使ってみるてすと。
#このソースの文字コードをUTF-8にすること。
use strict;
use 5.6.0;
use utf8;
use Data::Dumper;
my $str = "あいうえおabcde";
my @strs = split "" , $str;
print Dumper @strs;
結果
$VAR1 = 'あ';
$VAR2 = 'い';
$VAR3 = 'う';
$VAR4 = 'え';
$VAR5 = 'お';
$VAR6 = 'a';
$VAR7 = 'b';
$VAR8 = 'c';
$VAR9 = 'd';
$VAR10 = 'e';
とりあえずは成功。でもほかのファイルから文字列を取り出して処理する場合はどうなるか・・・。
> 734 環境は? 文字コードは? それがないことには答えようがないYO!
質問すみません。 投票ボタンを押すとカウントが1増えると言う感じの CGIを作るにはどう記載をするにはどうすればよいのでしょうか? 1番簡単な記載の仕方を教えていただきたいです。
>>739 #! /usr/local/bin/perl
open(DATA,"dat");
$count = <DATA>;
close(DATA);
open(DATA,">dat");
print DATA $count++;
close(DATA);
print "CONTENT-TYPE:text/plain\r\n\r\n$count";
741 :
名無しさん@お腹いっぱい。 :02/02/20 10:26 ID:v5xIpXef
>>738 Perl5です。
jcode.plを使って、EUCに統一しています。
ご迷惑をおかけしてすみません。(初心者)
742 :
739 :02/02/20 13:25 ID:BU/Y+TfU
>>740 740様ご教授ありがとうございます。
宜しければ
フォームの中身が
name=普通
name=簡単
ログファイルの中身が
普通 1
簡単 2
のような形になるような記載の仕方を教えてください。
743 :
739 :02/02/20 13:28 ID:BU/Y+TfU
度々すみません。 ついでに投票率もわかるようにして頂けると 助かります。
>743 投票率ってなんだよ。対象分母がわからないのに、なんでそんなもんがわかるんだよ。 と、おきまりの煽り文句入れて於いて。 得票率は、全体の件数と選択項目あたりの票とのかねあいだから、 表示ルーチンで逐次計算する必要があるね。 データを集計するルーチンで逐次カウントするか、集計時にあらかじめ、分子と分母 作っておくか選択するわけだね。
>742 その質問は、Web制作板ずら。 最初から、 <input type=radio name=name value=1>普通<BR> <input type=radio name=name value=2>簡単<BR> にしたら?
746 :
こっちへ逝ってよし :02/02/20 15:12 ID:q+lY2EG2
>746 ブラクラ
748 :
739 :02/02/20 15:29 ID:+agHEvTM
744様,745様 ほんとに単発質問申し訳ございません。 書き込んだ後に気がつきまして対処ができなくどうしようか困っていました。 #! /usr/local/bin/perl open(DATA,"dat"); $count
749 :
739 :02/02/20 15:31 ID:+agHEvTM
...... のやり方をコピペでためしたらDL状況になってしまいました。 どうすれば動作が可能になるのでしょうか。。。
>749 シェルから、which perlとして、Perlの在処を調べる。 また、cgiが実行可能かどうかも調べる。 さらに、httpd.confで、perlをexecにしなければいけないかどうかも考える。 大変だね。
751 :
739 :02/02/20 15:42 ID:+agHEvTM
750様 レスありがとうございます。 フォームにしてみたらできました。 しかし、カウントされません。
ここ見てるかぎりじゃ何もせず他人にコード書かせてるようにしか見えないのだが。
>752 ソレダ!(◕ฺ∀◕ฺ)
754 :
739 :02/02/20 16:53 ID:???
ほか行きます。
755 :
名無しさん@お腹いっぱい。 :02/02/20 21:36 ID:mSabJ9Dm
すんません、このアクセス解析なんですが、
ttp://www.din.or.jp/~himura/at-works/access/access.html @niftyで動かしてる人います?replist.cgi?checkでは全部OKと表示される
んですが、パスワード打って解析結果表示させようとすると500エラーが・・。
main.htmlをmain.plにしたり、homepageディレクトリに置いてみたりと
色々やってみましたが、何度やっても「500 内部サーバーエラー」っス(;´Д`)
パーミッションや転送モードを何度も確認してみましたがダメでした・・。
ちなみにkentさんの「Access Repport」はちゃんと動くので、この改造版の
main.htmlが原因なんでしょうか?サポート掲示板閉鎖してるしもうお手上げッス・・
どなたかご教授ください・・。
>755 それはきっとあなたの設定ミス。 そうでなければ、バグがあるスクリプトを配布している。
757 :
名無しさん@お腹いっぱい。 :02/02/20 22:17 ID:ekU1U/e9
携帯用サイトの掲示板を作ってるんですが、 漢字コードは何がいいんですか? 携帯会社によって違うんですか?
759 :
名無しさん@お腹いっぱい。 :02/02/20 22:19 ID:ekU1U/e9
ありがとうございます。常識ですか? 解説サイトご存知でしたら、よろしければお教えください。
761 :
755 :02/02/20 22:25 ID:m8g7w+mg
>>756 ありがとうございます。マジすか・・もう一度確認してみます。
サーバー別の解説みたいなのに@niftyもあるんですが・・niftyじゃ
無理なのかなぁ・・
762 :
名無しさん@お腹いっぱい。 :02/02/20 23:21 ID:ekU1U/e9
>760 掲示板できました。ありがとうございます。
763 :
名無しさん@お腹いっぱい。 :02/02/21 01:09 ID:+5zgc0Mz
素朴な疑問なんですが、転送URL(www2.to)を使っていて さらにアクセス解析をつけてます 普段リファラで引っかかるアドレスは、当然転送URLのアドレスなのですが たまにリンク元のアドレス(もちろん転送で貼ってもらってる)が引っかかる場合があるのです もし原因が分かる方がいらっしゃいましたら、 教えていただけないでしょうか… よろしくお願いします。
764 :
763 :02/02/21 01:11 ID:+5zgc0Mz
あ、ちなみにアクセス解析はレンタルの物とat worksさんのもの それからTacky's Roomさんの物で同じ結果が出ましたです
>>763 IEはたまにrefferを取りこぼしたりすることがある。
766 :
763 :02/02/21 01:30 ID:+5zgc0Mz
>765 さっそくありがとうございます。 でも今見てきたところ、そういう風に引っかかってるのが Netscape 4.〜の方のようなのです 6の場合は普通に転送アドレスで来るようなのですが…
767 :
あぼーん :02/02/21 01:34 ID:F4KoQdcT
ホームページでフォームに入力した内容をメールで送るってやつレンタルで使ってるんですけど、たまにいたずらメールが来るんです。 送信元IPはわかるんですけど、送信元のメールアドレスもわかるっていうCGIを無料でレンタルさしてくれるサイトがありましたら教えてもらえませんでしょうか。
>>767 冷静に考えろ?
お前のメールフォームにはメールアドレス書く欄があるか?
書いてもいないものをどうやって送信するって言うんだい?
769 :
あぼーん :02/02/21 01:51 ID:F4KoQdcT
>>768 あります。でも嘘かかれたらそれでおしまいなのれす。かかないでわかる方法ないでしょうか?
たとえばメールソフトを間接的に使用するっていうCGIとか
レンタル探してるなら板違い
>>769 サーバーサイドで動いてるのにクライアントのメールソフトを制御できるの?
セキュリティホールってやつじゃあ。。。
773 :
名無しさん@お腹いっぱい。 :02/02/21 02:57 ID:caqYgqkm
>>771 すくなくともサーバ側でクライアントの環境をいじりたいとか
思う人って他人のプライバシとか全然関係なしって感じが伝わっ
てくるよ。
そこまでe-mailを確認したいのなら、パスワードで入れないように
して、希望者にメールでパスワードをいれるように全体を変更したら
どうよ。
774 :
ていうか ◆16H8/cmo :02/02/21 04:57 ID:IB+Fv5b6
複数ファイルと文字列を同時にアップロードするcgi作りたいんだけど、データをどう切り分けるか悩んでる。 一行ごとにやるのはだるいから、なんか上手い方法ないかな。 教えて〜!!
775 :
ていうか ◆16H8/cmo :02/02/21 04:57 ID:IB+Fv5b6
↑あ、CGI.pmとかは使う気ないからよろしく。
↑あ、教える気ないからよろしく
777げっちゅー
778 :
ていうか ◆16H8/cmo :02/02/21 05:03 ID:IB+Fv5b6
↑意味ねーぢゃん。うせろ! でもナイス突っ込み(w
779 :
名無しさん@お腹いっぱい。 :02/02/21 06:11 ID:520+fotT
>>779 まずはHTMLの勉強だ。クリッカブルマップ。サーバサイドとクライアントサイドがあるからどちらもな。
>>779 自分でサーバー用意するならなんでもいいけど、
数あるサーバーで動くのはperlだろうな。
ActivePerlと、WinならAnHttpd、あるいは適当なhttpd、
あと、とほほのperl入門を読め。
>780 デリミタ?
掲示板のスクリプトです。 ローカルのanHTTPdでは、IEでもNNでも正常に動くのですが、 トクトクサーバーにアップすると、NNでは「モジュール違反です」という 表示がでて、オチてしまいます。 IEでは正常です。 どんな原因が考えられますでしょうか。 IEでは全然平気なのですが。 ローカルで動かしてるかぎりはそうはならないのですが。
786 :
785 :02/02/21 22:01 ID:???
あげさせてください。
788 :
785 :02/02/21 22:11 ID:P/vFkV3P
>>787 Perlのせいではなかったです。
言われてぴぴんときてjavascript Offにしてみたら動いた…。
ローカルでは動くんだから広告が悪いのかなぁ。
どうもすいませんでした。Javascriptと判ればスレ違いです。
ありがとう。
789 :
名無しさん@お腹いっぱい。 :02/02/21 23:22 ID:uKcyJ5aS
とあるゲームCGIの説明(?)か何かに、 ログファイルをバイナリデータにしたので処理が速くなった というような事を書いてあったんですが、 実際にテキストよりもバイナリの方が処理が速いんでしょうか。
>>789 たとえば3という値を保存するとする。
テキストで3を保存すると6bitかかる。
バイナリで3を保存すると2bitですむ。
(これを言うとintは32bitじゃあとかお叱りを受けそうだけど)
後、コンピュータはバイナリでしか数値計算ができないので、数字のテキスト->バイナリ変換作業が必要になる(Perlは裏でやってくれる)。
>>791 ログは取れる。reffererが取れないだけ。
Javascriptで生成している部分をHTMLに直接書けばいい。
その代わりreddererはあきらめる。
>789-790 そういうこととは別に、ログをバイナリハッシュに変えれば、テキストのログよりも かなり高速化する。 dbm使うっていうのが近似値だけど。
>>793 質問者でも回答者でもないんだけど、
ログをバイナリハッシュに変えるってどういうこと?
ハッシュのキーをバイナリにして短くするってことなの?
でもハッシュっていうぐらいだから長いキーでも短くなってんだよね、内部的には。
おもしろそうなのでもっと教えて。
>>794 >でもハッシュっていうぐらいだから長いキーでも短くなってんだよね、内部的には。
長くなるならまだわかるが。
>794 最も簡単に説明するとしたら、テキストのログっていうのは、改行ごとに区切られて @LINEな配列にシリアルに読み込まれ、並んでいるわけ。 対して、バイナリハッシュは、保存されたデータ構造が%HUSHな状態(連想配列) にあるので、tieまたはdbmopenで開いたときに、すでに%HUSHな状態として存在できる。 それはちょうど、アナログレコードとCDのような違い。 @LINEから任意な部分を取り出すために必要な労力と、 %HUSHの任意な部分にアクセスするのには、明らかな速度差があるってわけ。 データ件数や扱うデータの質によって様々だけど、使い分ければ速度的に差が出てくるね。
797 :
794 :02/02/22 00:09 ID:???
>>795 うそおん。
ハッシュって長い文字列(ハッシュ配列のキー)とかを不可逆的に圧縮して、それをキーにするにゃないの?
チェックサムみたいなCRCみたいな。(違うけど)。
798 :
791 :02/02/22 00:12 ID:???
>>792 レスありがとうございます。いや実は、上にも書いた
ttp://dream.lib.net/room/cgi/e_analize.html これ設置
してみたんですが、JavaScript有効にしていないとログ取らないん
ですよね・・カウンター機能使ってないからなのかな・・
b1=new Date();
a1=window.screen.height;
a2=window.screen.width;
a3=window.screen.colorDepth;
a4=window.document.referrer;
a5=b1.getTimezoneOffset();
document.write("<img src='./hana.cgi?wh="+a1+"&tz="+a5+"&ww="+a2+"&cd="+a3+"&ref="+a4+"'>");
これなんですが、スクリプトのカウンター機能使わないとログ取れない
とかなんでしょうか?それは関係ないですか?
799 :
794 :02/02/22 00:14 ID:???
>>796 インデックスをつくっとく、って感じでいいんだよね・・・?
掲示板のログだとしたら、書き込み番号がキーになるのかな?
>797 一般に、gdbmにしろndbmにしろ、tieで作ったデータは大きくなるよ。 圧縮されてもいません。 直接そのファイルを覗いてみるといいです。
>799 その辺はCGI設計者の好みと用途でいいと思いますよ。
803 :
名無しさん@お腹いっぱい。 :02/02/22 18:30 ID:kB5a0aUW
PATH_INFOを参照するCGIをperlで作ったんですけど、 interQのCGIサーバーに設置してみたら動かないって報告を受けました。 ファイルが見つからないってエラーです。 調べてみたら、ユーザが設置したCGIを呼び出すための上位CGIが存在していて こいつがPATH_INFOに当たる部分をファイル名だと決め付けているようなんです。 こういうことをしているところはよくあるんでしょうか? 対策はありますか? 他のCGIサーバーを使うか、 PATH_INFOを使わないように修正するくらいしかない気がするんですけど。
804 :
名無しさん@お腹いっぱい。 :02/02/22 18:56 ID:s47PnZwK
今までUNIXでPerlを使っていて問題なかったのですが、NTサーバ(Jperl)ににしてからファイルオープンができなくなりました。 (具体的にはファイルが開けない。それ以外は普通に動く) 改行コードもwindowsにあわせました。 何か考えられる問題はないでしょうか?
>803 オーバーライドするCGIはよくあるよね。 CGIに限らず、SuEXECでも、そういうことは出来そうな感じがするな。 CGIで自由度が高いことがやりたいんだったら、やっぱりそれなりのサーバを使うしかないと思うよ。 管理人のスキルと度量でだいぶ違うから。
>804 いっぱいありすぎる。 ActivePerl+jcode.plじゃだめなの?
807 :
名無しさん@お腹いっぱい。 :02/02/22 20:18 ID:FVueZxe+
>806 レンタルサーバの為、環境は選べないです。 サーバ側の問題もありえるとは思えますけど。。
808 :
803 :02/02/22 21:03 ID:???
>>805 そういうサーバーが沢山あるようなら修正しなきゃいけないかなー、とか思ってたんですけど
とりあえず今のまましばらく様子見してみます。
809 :
名無しさん@お腹いっぱい。 :02/02/22 23:49 ID:AR6ek7gH
データファイルをサーバー上に置いておき、クライアントから ブラウザで抽出条件を指定して、結果をテキストファイルとして ダウンロードするようなCGIをperlで作りたいのですが可能ですか? 画面に出力するのは当然のように可能なので、できそうに 思っていろいろ調べてるのですが、ヒントにめぐり合えません。 Content-typeをどうにかしたらいいような気もするのですが・・・ 何かヒントでも教えてもらえれば助かります。
>809 多分できない。 スクリプトの中で、一度gzなんかに圧縮して送るといいと思う。
>>810 ↓な感じ?
print qq|Content-type: application/x-download\n|;
print qq|Content-disposition: filename="hoge.txt"\n\n|;
# 以下Text表示
813 :
809 :02/02/23 01:40 ID:ndSWjFLu
>>811 ありがとうございます!!
さらにContent-dispositionでgoogleしたら、もう少し
ヒントが見つかりました!!
まだ、コード書いてませんができそうです。
本当にありがとうございました。
質問させてください。 掲示板などのログファイルに保存されている ある一定の文字数をCGIに調べさせて表示するにはどうしたらよいのでしょう?
>814 ファイルに保存されている文字数を調べて表示させればいいと思うよ。 どこがわからないの?
ソースの記載がわかりません。 説明不足ですみせんでした。
えーと、試したのですがうまくいきませんでした。 ファイルはtext形式です。 すごく単純なやり方はないのでしょうか?
819 :
名無しさん@お腹いっぱい。 :02/02/24 21:02 ID:dCUXJG5x
age
820 :
ここもいいよ! :02/02/24 21:19 ID:f/OTQkHz
821 :
名無しさん@お腹いっぱい。 :02/02/25 03:39 ID:orEft5aT
2ch型掲示板なんですが、メッセージ書き込み時 ああああああああああ(エンター) あああああああああああああああああ というように改行を入れると、書き込み確認画面で何故か ああああああああああ あああああああああああああああああ あああああああああああああああああ"> になってしまって書き込もうとしても、「本文がありましぇん」と ・・・これはどうしたら直りますか?
822 :
821 :02/02/25 03:41 ID:orEft5aT
↑切れてもうた。 >になってしまって書き込もうとしても、「本文がありましぇん」と >言われてしまいます。
>821 スクリプト変えれ。
824 :
ぷうすけ :02/02/25 10:34 ID:sZy5WoHh
CGIで、WEB上でできるクイズを作っています。答えのデータは、クイズのプロ グラム本体とは別になっています。本体はquiz.cgi、データはxxxxx.cgiとい う感じにしています。答えを不正に読まれない対策として、データファイル を.cgiにして、.cgi/へのアクセスも禁止しているのですが、まだ心配です。 パーミッションは現在、本体が755、データの方が644となっています。 このクイズの場合のように、あるファイルの内容を読まれないためには、一般 にどんなことをしておけばよいでしょうか?よろしくお願いします。
>824 データを暗号化する。
>824 あとは、パーミッションを600に設定する。それで動かないようなら動くようにしてもらう。 プロバイダに。
827 :
ぷうすけ :02/02/25 11:21 ID:sZy5WoHh
ありがとうございます。データファイルは、拡張子.cgiということで、 基本的にはOKなのですね!?
828 :
821 :02/02/25 11:40 ID:XPxruXjP
>>823 ありがとう。ちなみに17氏のやつっス。
スクリプトはいじってないんですが、何故かこの現象が・・
正常な書き込み確認の画面のソースはこうなんですが
名前:hhh
<INPUT TYPE=hidden NAME=FROM SIZE=19 value="hhh">
E-mail<font size="1">(省略可)</font>:
<INPUT TYPE=hidden NAME=mail SIZE=19 value=""><br>
内容:<ul>ああああああああああ <br> あああああああああああああああああ
<input type=hidden name=MESSAGE value="ああああああああああ
あああああああああああああああああ "></ul>
829 :
821@>>828の続き :02/02/25 11:44 ID:XPxruXjP
何故かうちのやつは 名前:hhh <INPUT TYPE=hidden NAME=FROM SIZE=19 value="hhh"> E-mail<font size="1">(省略可)</font>: <INPUT TYPE=hidden NAME=mail SIZE=19 value=""><br> 内容:<ul>ああああああああああ <br> あああああああああああああああああ あああああああああああああああああ "></ul> ・・となって、<input type=hidden name=MESSAGE〜が表示されてないっス・・閉じタグだけ。 どなたかお助けください。
830 :
名無しさん@お腹いっぱい。 :02/02/25 13:27 ID:rzdUuZQh
この場所に相応しい内容か分かりませんが、質問します。 あるホームページから、フォームアクションでCGIを起動し、 その結果を、別の新しい窓に表示するようにするには、 何をどうすれば良いですか。
<form method=post action=nanntara.cgi target=_blank> で逝けなかったっけ?
832 :
名無しさん@お腹いっぱい。 :02/02/25 14:35 ID:UOHqJPQ/
>831 ご指導、ありがとうございました。 target=_blankを加えてやってみます。
833 :
なんか教えて :02/02/25 15:10 ID:QYTcZNO9
ホームページの中に投票ランキングつくりたいんだけど どうすればいいの?
>833 メールで投票してもらって自分で開票しランキングHTMLを組む。
835 :
名無しさん@お腹いっぱい。 :02/02/25 17:59 ID:yuvH5kLZ
関連サイトをめぐりつつこっちでも質問です・・・。 今画像検索サイトを作ろうと検索エンジンを改造しているところ なのですが・・・(ちなみに初めてCGI触りました)。 あるHTMLタグの塊を、検索で引っかかった数だけ出力するのが 検索エンジンですよね。 その出力するHTMLをこんな風にします。 print "<form method=\"post\" action=\"file.cgi\"><table>\n;"#ここは検索出力の前。ヘッダ print "<<EOF; <tr><td><img src="$path"></td>#$pathというのは、このサーチエンジン #に使用しているデータファイルの中身で #画像ファイルのパスが入ります <td><input type="text" size="60" name="com$no"></td> </tr> EOF #<中略> print "</table>\n</form>\n</body></html>#ここはフッタです。検索処理のあと。 検索で引っかかった画像にメッセージをつけて登録するようにしたいので、 検索で出力するHTMLに[input type・・・・」というのを書いています。 そのnameに変数$noをつけて、検索にヒットした数を1から順にふればよいのだ、 と思ったのですが、その$noをどう定義すればよいかその書き方がわからないの です。 どう書けばよいでしょうか? $no = ?
>あるHTMLタグの塊を、検索で引っかかった数だけ出力するのが 検索エンジンですよね。 へぇ。
print "<<EOF; ↑ ヒアドキュメント変じゃないか?
838 :
835 :02/02/25 18:02 ID:yuvH5kLZ
よ・・・読みにく・・・!!
まずは落ち着いて冷静になってから説明をやり直せ。
840 :
835 :02/02/25 18:02 ID:yuvH5kLZ
>837 しまった(汗) ミスりました
何がしたいのかわからない。 そもそもHTMLを理解しているのか。
842 :
名無しさん@お腹いっぱい。 :02/02/25 19:58 ID:hnsr9Lul
先生!たとえば、 if ($hoge eq 'A') { print "Aです"; } ってあったとしまして、 $hogeが'B'であったときも"Aです"ってprintしたいのですが、 どのように条件に書き加えたらよいのでしょうか。。。?
>842 第1段階 if ($hoge eq 'A') { print "Aです"; } if ($hoge eq 'B') { print "Aです"; } 第2段階 if ($hoge eq 'A') { print "Aです"; } elsif ($hoge eq 'B') { print "Aです"; } 第3段階 if ($hoge eq 'A' || $hode eq 'B') { print "Aです"; }
844 :
843 :02/02/25 20:08 ID:???
タイプミスすまん。
845 :
842 :02/02/25 23:02 ID:???
>>843 先生!ありがとうございました。
第2段階でずっとやっていて、肥大化しまくりだったのが
第3段階でダイエットできそうです。
846 :
名無しさん@お腹いっぱい。 :02/02/25 23:53 ID:5vLgtcLX
投票のスクリプトなんですが、 name=hoge name=hoge2 のような感じで、 投票ボタンを押すと1ポイント加算されて サブルーチンでその投票率を割り出して表示するには どうすればいいのでしょう? スクリプトに組み込めるようにしたいのですが。
>>846 投票率?
票/全体の票の合計*100;
>847 それは得票率。 投票率は、投票者/有権者
>>848 >846が投票率を聞いていると思うか?
>848-849 どっちも言ってる事は正しいな。 一番間違えているのは>846か? もう少しわかりやすい表現をしてほしいな。 漠然としすぎ。
>851 しかもマルチポスト臭い。 前にもどこかで同じ質問見て、回答した。 同じ間違いをしていた>得票率と投票率
853 :
はげ :02/02/26 01:11 ID:ydhHR8oV
北島サブルーチン
怪僧サブルーチン
855 :
846 :02/02/26 02:51 ID:VU0igEUE
>>851 えーと、846です。質問の仕方が悪くてすみません。
ですが、私が悪いことにしないでください。
あと、マルチポストはしませんよ。あのやり方嫌いですから。。。
いろいろとすみません。
その得票率というのを割り出して表示するにはどうしたらよいのでしょうか?
>855 >847の計算式に変数を当てはめて、答えをprintする。 それだけだろ。 得票数や全体の票の合計の数え方から教えないといけないのか?
857 :
846 :02/02/26 02:58 ID:VU0igEUE
できれば。。。 厨房ですみません。嫌わないでください。
>857 厨房だと自覚してるなら直せ。 わからないなら自分で勉強しろ。 他人のおんぶでだっこか? 俺はお前が嫌いだ。 まず今、自分でなにができて何ができないんだ。 足し算わかるか? 割り算わかるか? CGIの設置できるスペースは持ってるのか? HTMLはわかるのか? 無料配布CGIの設置くらいできるのか? スクリプトの改造の経験はあるのか? スクリプトを自分で組めるのか? ファイル操作するスクリプトを自分で組めるのか? お前の話し方を聞いてると、そのスクリプトをここの住人に書かせたいように見えるな。 もしそのつもりなら、無料配布スクリプトを探した方がいいぞ。 ここの住人はそこまで暇でも親切でもない。 自分でできることを自分でやろうとしない奴には誰も親切にはしてくれない。 自分でできることを探せ、考えろ。
859 :
846 :02/02/26 03:13 ID:VU0igEUE
>858 お答えします。 自鯖にWinでアパッチ入れて 今、CGIを改造しています。 CGIを設置できるスペースはあります。 改造経験は掲示板にフォントカラーの選択機能を取り付けれるくらいです。 ファイル操作はログファイルの読み込みぐらいならできます。 スクリプトを組むスキルまではまだないです。 せいぜい改造ぐらいです。
860 :
ほげ :02/02/26 03:22 ID:ydhHR8oV
自鯖って自分で釣って来た鯖のこと?
>860 その鯖にstdoutするらしいけど、腐りやすいからなぁ。鯖は。
862 :
846 :02/02/26 03:24 ID:VU0igEUE
すいません。自宅サーバーです。。。
>自鯖にWinでアパッチ入れて まずこれが間違ってる。 自鯖にMacでアパッチ入れなきゃ。 自鯖=Unixで、TELNETで入れたのかな?アパッチを。 もう眠くて日本語よくわからないや?
それと。 自分でよく意味のわからない単語は知ったかぶって使うな。 知ってる人間を混乱させるだけだ。 サーバーとクライアントの違いくらい勉強しろ。
866 :
846 :02/02/26 03:33 ID:VU0igEUE
ご迷惑をお掛けしました。 しばらく勉強をして来ます。
867 :
864 :02/02/26 03:34 ID:???
>865 つっこみあんがと。ダウンなので寝るです
868 :
846 :02/02/26 04:02 ID:VU0igEUE
全体の項目の中の$hoge1の数はどうやって出せばいいのでしょうか?
869 :
846 :02/02/26 04:03 ID:VU0igEUE
書き忘れました。 $hoge1=バナナ だとして バナナの数を求める場合です。
870 :
名無しさん@お腹いっぱい。 :02/02/26 04:20 ID:Lws/5PwU
項目数が不定の場合はハッシュ(連想配列)に入れればよい。 while (<FILE>) { chomp ; $count ++ ; $hoge{$_}++ ; } foreach(keys %hoge ){ print "項目 : $_ 回数 : $hoge{'$_'}\n" ; } print "$hoge\n" ; ファイルオープンクローズは省略してます。
871 :
870 :02/02/26 04:59 ID:Lws/5PwU
ああ、間違えた。最後のprintは$countだ。。 というか・・846さんの問いとちょっとずれた回答だなあ・・・ 忠実に答えるなら、 while(<FILE>){ chomp ; $count ++ ; if ( $_ eq 'バナナ' ) { $hoge1++ ;} if ( $_ eq 'りんご' ) { $hoge2++ ;} } print "バナナ $hoge1個 りんご $hoge2個 全部で$count個\n" ; こんな感じでしょうか。
872 :
846 :02/02/26 05:24 ID:VU0igEUE
870さん ありがとうございました(泣 おかげで完成しました。 すごく感謝しています。 ほんとにありがとうございます。
873 :
名無しさん@お腹いっぱい。 :02/02/26 17:43 ID:vFUBaFo2
教えてください。 あるcgiファイル(Cで作ったバイナリファイル、変更不可)にperlでフィルタを かけてperlの中からキックしてやる処理を行おうとしています。 open(*i, *o, "aaa.cgi", $param) で起動かけてるんですが、この渡し方だとgetメソッドでわたるみたいなのです。 どうやらこのcgi、postメソッドで引数を取得しているらしいのですが、postメ ソッドへの値の渡し方がよくわかりません。受け取り方ならどこにでも乗ってる んですけど。 知ってる方、教えてください。お願いします。
874 :
873 :02/02/26 17:44 ID:vFUBaFo2
失礼しました。 open->open2の間違いです。
何のためにopen2使ってるのかを調べなおせ。
876 :
名無しさん@お腹いっぱい。 :02/02/26 23:07 ID:G1R05+XZ
掲示板の文字コードをShift_JISからUTF-8に変換したいんですが、 decodeサブルーチン内 → 現状 : &jcode'convert(*value, "sjis"); → 変更 : &jcode'convert(*value, "utf8"); headerサブルーチン内 → 現状 : <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=Shift_JIS"> → 変更 : <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"> でいいのでしょうか? ちなみに文字コードの変換はエディタで終わってます。
jcode.plはUNICODEをサポートしていない。
879 :
名無しさん@お腹いっぱい。 :02/02/27 00:02 ID:SOuE237T
>>878 ゲッ、ではどうすればいいんでしょうか?
880 :
名無しさん@お腹いっぱい。 :02/02/27 00:11 ID:CwyphmC/
>>879 Jcode.pmを使う。
use Jcode;
my $utf8 = jcode(\$value)->utf8;
あと、perl4でなければ、jcode.pl使う時にその書き方はヤメレ
jcode::convert(\$value, 'sjis');
882 :
名無しさん@お腹いっぱい。 :02/02/27 00:31 ID:nZ+PTVkR
Perl勉強するのに、いい本を教えれ。高いのかなぁ・・ やっぱ参考書買ったほうがいいですよね?みなさんどうやって覚えたの? 掲示板とか作ってみたいのですが。
883 :
882 :02/02/27 01:02 ID:???
スレ見つけました(;´Д`) すいましぇん・・。
884 :
名無しさん@お腹いっぱい。 :02/02/27 09:44 ID:jpwD5RBs
$A = 1 / 3 を0.3333333・・・ではなく、桁数を制限して0.33にするのはどうすれば良いのでしょうか?
>>884 sprintf("%.2f",$A);
886 :
884 :02/02/27 10:23 ID:jpwD5RBs
887 :
873 :02/02/27 11:09 ID:/GyUzfOU
>>875 引数を標準入力へ渡すのは出来てるのです。
teeコマンドで、確認しましたので。
perlモジュールからcgiをキックするとき、メソッドを環境変数に
設定してあげればいいのかなぁ・・・・。
888 :
884 :02/02/27 13:55 ID:jpwD5RBs
たびたびすいません。 リスト表示させる構文の中で use integer; $A = $B / $C; を記述すると最初の情報しか表示されなくなります・・・ 何が問題なのでしょうか?
>>888 use integer;
の意味わかってる?
891 :
884 :02/02/27 14:20 ID:jpwD5RBs
素人なので・・・ 手元のレファレンスブックをパラパラと参照しているのです。 ちなみに、use integer; をとっても最初の情報しか表示されないので、 状況は変わらないです・・・。
893 :
名無しさん@お腹いっぱい。 :02/02/27 15:07 ID:uzDDNMO0
少し脳みそを貸して下さい。 返信できる掲示板を改造し、親記事への返信に対してradioboxで5段階の採点 ができるようにしました。が、たまに採点がおかしくなります。 1ページに表示されている全ての返信記事に一気に採点できるようにしました。 $noは親記事のNo. $res_noは返信記事のNo.です。 簡単に書きます。 -------■フォーム部分■--------- [最高:<INPUT TYPE=RADIO NAME=\"($no)-$res_no\" value=5>] [良い:<INPUT TYPE=RADIO NAME=\"($no)-$res_no\" value=4>] のようなものをあと3つ -------■フォーム部分■---------
894 :
名無しさん@お腹いっぱい。 :02/02/27 15:07 ID:uzDDNMO0
ログの形式:<>で区切ってます。 $x1が親記事の番号で$x2が返信記事の番号です。 行の最後に採点のためのデータを6つ追加しました。 $xjが合計点で、$xe〜$xiまでが各採点の数。 -------■ログの形式■--------- 130<>1<>名前<>タイトル<><><>親記事のコメント<>#ff6633<><><>02/02/26(Tue)02:29<>0.XuCN0FGrIKQ<>1014702931<>0<>0<>0<>0<>0<>0<> (130)<>1<>名前<>タイトル<><><>親記事への返信のコメント<>#ff6633<><><>02/02/26(Tue)02:29<>0.XuCN0FGrIKQ<>1014702931<>0<>0<>0<>0<>0<>0<> -------■ログの形式■---------
895 :
名無しさん@お腹いっぱい。 :02/02/27 15:08 ID:uzDDNMO0
-------■受け取り側■--------- ログから全記事を@all_linesに読み込む。 while (($key, $value) = each %in){ if( $key =~ /^%28\d+%29-\d/ ){ $key =~ s/^%28(\d+)%29-(\d+)/$1,$2/ ; foreach (@all_lines) { if( /^\($1\)<>$2/ ){ my($x1,$x2,$x3,$x4,$x5,$x6,$x7,$x8,$x9,$xa,$xb,$xc,$xd,$xe,$xf,$xg,$xh,$xi,$xj)=split(/<->/); if($value == 5){ $xe = $xe+1 ;} elsif($value == 4){ $xf = $xf + 1;} elsif($value == 3){ $xg = $xg +1;} elsif($value == 2){ $xh = $xh +1;} elsif($value == 1){ $xi = $xi +1;} else{ エラー処理;} $xj = ($xe * 5) + ($xf * 4) + ($xg * 3) + ($xh * 2) + ($xi * 1); push(@new, "$x1<>$x2<>$x3<>$x4<>$x5<>$x6<>$x7<>$x8<>$x9<>$xa<>$xb<>$xc<>$xd<>$xe<>$xf<>$xg<>$xh<>$xi<>$xj<>\n"); }else { push(@new, $_ );} } $#all_lines = -1 ; #これは必要? @all_lines = @new ; $#new = -1 ; } } @all_linesをファイルに書き込む。 -------■受け取り側■---------
896 :
名無しさん@お腹いっぱい。 :02/02/27 15:08 ID:uzDDNMO0
受け取り側がすごく間抜けなコーディングですが、 もっとスマートな方法はないものでしょうか? さらにバグがあるようです。たまに採点した以上に採点の数が増えます。
898 :
名無しさん@お腹いっぱい。 :02/02/27 15:14 ID:uzDDNMO0
899 :
名無しさん@お腹いっぱい。 :02/02/27 16:08 ID:uzDDNMO0
perlでランキングするにはどうすればいいですか? 連続でなく(1,2,3,4,5....) 同点場合は同じ順位になるやつです。(1,2,2,2,5,6,7)
>>899 同一順位の奴リストで記憶して一気書き。
901 :
名無しさん@お腹いっぱい。 :02/02/27 17:02 ID:s1a46wqm
先生!以下の文章を短縮する手だてはないものでしょうか。 if ($hoge eq '001_001' || $hode eq '001_002' || $hode eq '001_003'、、、、|| $hode eq '001_050') { print "001グループです。。。"; } 10進法で $hogeが'001_001'、'001_002'、〜(中略)〜、'001_050'の時に、"001グループです。。。"をprintしたいのですが。。。 テキストエディタの左右のスクロールバーが大変です!(;´Д`)
if ($hoge =~ /^001_0\d\d$/) { print "001グループです。。。"; } 00や51〜99も入っちゃうけどな。 それを除外する方法は自分で調べて。
>>901 $hoge =~ /0(\d\d)_0(\d\d)/;
print "グループ1" if ($1 == 0 and $2 >=1 $2 <= 50 );
動作確認してないけど。
>903 $1 == 1 にしておかないと、グループ0になりますぜ?
905 :
901 :02/02/27 19:21 ID:???
先生方!レスありがとうございます。 902さんの if ($hoge =~ /^001_0\d\d$/) { print "001グループです。。。"; } これで一応問題がないかのように(;´Д`)動作しておりますが、このまま使い続けちゃマズイですか? もちろん51〜99なんて存在しないです。。。 903さんの文章は今のおいらじゃ理解できないみたいです。。 もうちょっと経験値をためてレヴェルうpしてから、改めて読み直すことにします
>>901 っつーか、根本的にもっと綺麗にデータ処理をしようと思わないのだろうか。
907 :
名無しさん@お腹いっぱい。 :02/02/27 20:42 ID:uzDDNMO0
ロックファイルの処理がうまくいっているか試す方法ってあります? 自分で同時に書き込むってできないし。 #ローカルサーバ立ち上げてます。
>>907 漏れの場合、ロックしたままランダムな時間 sleep() 。
でも、もっとうまい方法があるような気が。
>>907 1.ロック解除ルーチンをコメントアウトして実行。
ロックがかかっているか確認。
2.そのプログラムをもう一度実行。
六句により書き込めないことを確認。
3.コメントアウトした部分とロックを元に戻し実行。
書き込めればロックは作動している。
サーバ立てるのはいいがOS位書いてほしかった。
910 :
名無しさん@お腹いっぱい。 :02/02/27 22:02 ID:uzDDNMO0
>>907 ありがとうございます。
サーバはLinuxです。
911 :
名無しさん@お腹いっぱい。 :02/02/27 22:34 ID:TYQQ82Xg
Perl で、一旦、 Helloを表示して、3秒くらいの処理行ったあとその出力を表示する のってどうやるんですかね?(ブラウザでアクセス) 前に print "Content-type:text/html\n\n"; print "hello"; sleep(3); print "hoge"; でやったらいかなかったので調べてみたらモジュール使うって見たんだけど、 最近やろうと思ってしらべたら前のResultをブックマークし忘れたので どなたかおしえてくりんぴ
$xxx = now; //wait 3 sec while(now < $xxx + 3);
913 :
名無しさん@お腹いっぱい。 :02/02/27 22:44 ID:TYQQ82Xg
>912 Really?
バッファリングしなければいいのでは
915 :
あさみ :02/02/27 23:57 ID:mGPuUcmq
大量のファイル(ディレクトリにまとめて入ってる)から それぞれ同じ行をとりだして、 並べて表示させるにはどうしたらいいですか? たとえば000.txt から 999.txtっていうのがひとつのディレクトリに あって、ぜんぶのテキストから55行目だけをとりだしてそれを並べて 表示させたいのですけど。達人さんおねがいします。
>>915 スタブ
後は、
open(DATA,"a.txt");
@dat = <DATA>;
print $dat[54];
917 :
あさみ :02/02/28 00:03 ID:Dy5p0v9j
>>916 スタブって????
それだとひとつのファイルからしかとりだせないじゃないですか。
ぜんぶのファイルを一度に操作しようとおもって
open(DATA,"dir/*.txt");
と打ってみたけどそこから先どうしていいかわからなくなってしまったんです。
>>917 スタブじゃないグロブだ。それにすべての答えがある。さぁ、検索。
919 :
あさみ :02/02/28 00:39 ID:Dy5p0v9j
>>918 だめです。わかんない。
型グロブってまだやってないのだ。。。。
921 :
あさみ :02/02/28 01:05 ID:Dy5p0v9j
>>920 わかんないよ。。。
@files = glob("*.txt");
foreach $file(@files){
open(DATE,"$file");
@dat = <DATE>;
print $dat [54];
}
これでもエラーでるよ。。。
922 :
あさみ :02/02/28 01:28 ID:Dy5p0v9j
わあああああああああ、できたよ!!!!!!!
ありがとしゃんしゃん!!!!
>>920 ちなみにこれでできたよ!↓↓↓
@files = glob("*"); #全てのファイル名が返される
foreach $file (@files){
open (IN,"$file");
@dat = <IN>;
print "$dat[76]<br>";
close IN;
}
ふぅううううう。
923 :
名無しさん@お腹いっぱい。 :02/02/28 11:48 ID:GCMIT34v
自動生成されるアンケートのページ(NAME=は数字だがバラバラ)で、 全てのradioboxがチェックされているかを調べるにはどうしたら いいでしょうか?
foreach(数字..数字){ if(!$FORM{"$_"}){print qq(入力漏れあり);} }
925 :
名無しさん@お腹いっぱい。 :02/02/28 20:22 ID:PHCtHVWr
>>924 お返事ありがとうございます。なるほどーですねー。
連続してない数字だったので、ちょっと応用します。
ちなみにNameが文字列だった場合は、はやりその文字列を
hiddenか何かで受け渡すしかないんですかねぇ、やっぱ。
>925 foreach(keys %FORM){ if(!$FORM{"$_"}){print qq(入力漏れあり);} } こういう方法もあるにはあるけど、他の入力まで処理するのが難点。 余計なフォームがないならこれでもいける。 hiddenで渡すなら、受け取るName文字列をリスト配列にでもして作っておいた方がいいと思うぞ。 受け取るものが決まってるなら。
927 :
名無しさん@お腹いっぱい。 :02/02/28 21:24 ID:gAyBZL7c
ちょっと質問させてください。 www.hogehoge.com/foo?id=bar というように拡張子をつけない CGI などのスクリプトをたまに見かけますが, これはどういうメリットがあるのでしょうか。 また,このように拡張子をつけないで実行するには .htaccess でこのファイル名だけ CGI として扱うようにすればいいんでしょうか。
928 :
名無しさん@お腹いっぱい。 :02/02/28 22:07 ID:PHCtHVWr
>>926 あー、賢いなー。なるほどー。
if(!$FORM("mode") とかかませばOKそうです。
ありがとうございました。
>>927 メリットはCGIを作った人に聞いてくれ。
とりあえず思いつくのは、リンクを張るときに4バイト稼げるとか、
作った人にとって.cgiって付くURLがかっこ悪いとかかな。
あとは、www.hogehoge.com/foo?id=bar の実体は実は
www.hogehoge.com/foo/index.cgi?id=bar だったとか言うこともあり得るし。
.htaccessについてはまぁ、知らん。
偉い人スレで聞けば?
実行可能ファイルを拡張子で識別するべきじゃない、とかなんとかあった気がしなくも無い。
>>930 実行属性という物があるから気にする必要性がない。ってや津田ね。
「あるディレクトリ以下のファイルは CGI プログラムと見なす」 という設定は、なんとなくカコイイと思ってしまうのですが、 自分でも理由が分かりません。
>>932 俺は逆にダサイと思います。
人それぞれですね。
934 :
名無しさん@お腹いっぱい。 :02/03/01 14:08 ID:5OIg3ecR
>>926 foreach(keys %FORM){
if(!$FORM{"$_"}){print qq(入力漏れあり);}
}
これだと、radioboxをクリックしてないと、$keyも$valueも
送られてこないからチェックできないですー。(T.T)
やっぱり、hiddenで配列にぶち込んで、渡すしかない?
>>934 $keyも$valueも送られてこない=radio押されていない。
それはそれで一つのステータスではないの?
936 :
名無しさん@お腹いっぱい。 :02/03/01 20:03 ID:5OIg3ecR
RadioBOXのなまえが解かってるならそれで調べれば?
938 :
名無しさん@お腹いっぱい。 :02/03/01 20:14 ID:5OIg3ecR
>>937 えっ?どうやって?
radioboxの名前がわかるためには、その名前の入ったデータを次の処理に渡さないと
わからないと思ったんですけど、他のやり方があるのかな?
ちなみに、radioboxの名前はCGIで自動生成されるので、毎回同じじゃないんです。
>938 hiddenで名前埋め込むとか,HTMLで最初から押しておくとか。
940 :
nobodyさん :02/03/02 13:45 ID:LK7b/SU7
>>939 ありがとうございます。
hiddenはいい案ですね。楽で。
HTMLで最初から押すってのはどういう意味で?
>940 <input type="radio" checked>
942 :
nobodyさん :02/03/02 18:18 ID:LK7b/SU7
>>941 そうそう、checkedに今してます。
けど、何も考えないで、submitしちゃう奴とかいそうだなー。とか
思ったりして…
KENTさんのpetit BBSにひとりキャップ機能をつけようとするとき どうすればよいのでしょうか?
945 :
名無し :02/03/02 21:31 ID:???
あの、あぷろだにアップ時間を表示させることは出来ないのでしょうか?
947 :
名無し :02/03/02 21:39 ID:???
教えてください お願いします
949 :
名無し :02/03/02 21:42 ID:???
ごめんなさい
950 :
nobodyさん :02/03/03 09:42 ID:nOwc+Svw
やぁ♪スレもストップしたところで質問だゾ(´д`)ハァハァ ログファイルに書き込んであるH・Nから 発言数を調べて 発言者ランキングを作るにはどうしたらよいのでしょうか? 調べたけどわからなったから聞きに来たんだ。
951 :
nobodyさん :02/03/03 09:49 ID:nOwc+Svw
∧_∧ ( ・∀・) マターリ待ちます ( ∪ ∪ と__)__)
952 :
nobodyさん :02/03/03 10:04 ID:PnmTn1AV
発言者ランキングのどんなトコが判らんの? 発言数の取り方?
953 :
nobodyさん :02/03/03 10:24 ID:nOwc+Svw
それです(・∀・)!
954 :
nobodyさん :02/03/03 10:34 ID:PnmTn1AV
my %count; open (DAT, $file) or die $@; while (<DAT>) { my $name = ....; # HN取り出し(ログ形式が不明なので直してチョ) $count{$name}++; # $nameの発言数を+1 } close (<DAT>); # 回数が多い人から並び替えて出力 foreach (sort{$count{$b} <=> $count{$a}} keys %count) { print $_, ":", $count{$_}; }
955 :
954 :02/03/03 10:37 ID:???
修正 close (<DAT>); ↓ close (DAT);
956 :
nobodyさん :02/03/03 11:11 ID:nOwc+Svw
957 :
nobodyさん :02/03/03 11:14 ID:nOwc+Svw
958 :
nobodyさん :02/03/03 11:55 ID:nOwc+Svw
すごく申し訳ないのですが
ログファイルはtxt形式です。
保存されてる形は
no.
http://ハァハァ.ne.jp comment name
なんですが、いかがなもんでしょう?
960 :
nobodyさん :02/03/03 12:32 ID:nOwc+Svw
スマン 質問の仕方がかなりワルかったです。 普通に書いたら表示されなかったので、 (ログ形式が不明なので直してチョ) と書いて頂けたのでログ形式を教えたら 表示されるようにしえて頂けるかとおもぉたのでです。 教えて(・∀・)!
963 :
nobodyさん :02/03/03 12:42 ID:673UxTI5
いいか、落ち着いて書くんだ俺。 落ち着いて読むんだ君。 まず、954のやり方でやってみたがうまく表示されなかった。 そこで、俺はログファイルの形式を教えれば詳しく教えてもらえると思ったんだ。 そこで、ログファイルの形式とログファイルへの保存の仕方を君に教えたんだ。 どうだい?うまく通じたかな? 偉そうでスマン
スペースはかなり危険な気がしないでもない。 本文、名前、メアドに対策してるならいいけど・・・。 ちなみに俺はデコードせずに保存してます。絶対にコンフリクトしないしw。
965 :
nobodyさん :02/03/03 12:45 ID:673UxTI5
すみません。スペースではなく\t入れてます。
966 :
nobodyさん :02/03/03 12:50 ID:673UxTI5
みんな移動してるみたいだから、埋めさせてね。
976 :
次スレ :02/04/09 22:26 ID:???
1002
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
1000GET!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。