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

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

レス数が1000を超えています。これ以上書き込みはできません。
0001ななし ◆E6qQ.htN7o 03/01/03 02:56ID:H5ub4PWW
CGIの運用に関する質問スレッドです。

※CGIは特定の言語に依存するものではありません。

※Perlのコーディングに関する質問は専用スレがありますのでそちらでお願いします。
  ↓
【Perl】初心者コーナー Part18
http://pc.2ch.net/test/read.cgi/php/1037797479/l50

過去ログ・関連スレッドは >>2-5 あたりに
0002ななし ◆E6qQ.htN7o 03/01/03 02:57ID:H5ub4PWW
■過去ログ
Part3 http://pc.2ch.net/php/kako/988/988727833.html
Part4 http://pc.2ch.net/php/kako/1000/10008/1000804655.html
Part5 http://pc.2ch.net/php/kako/1009/10093/1009331505.html
Part5.01 http://pc.2ch.net/php/kako/1015/10151/1015127347.html
Part6 http://pc.2ch.net/php/kako/1019/10195/1019561283.html
Part6(7) http://pc.2ch.net/test/read.cgi/php/1025930486/
Part8 http://pc.2ch.net/test/read.cgi/php/1032704121/l50
0003ななし ◆E6qQ.htN7o 03/01/03 02:57ID:H5ub4PWW
■CGI以外のPerlに関する質問スレッド
【Perl】初心者コーナー Part18
http://pc.2ch.net/test/read.cgi/php/1037797479/l50
CGIに依存しないPerlの話題一般/Part2
http://pc.2ch.net/test/read.cgi/php/1030548610/l50
0004ななし ◆E6qQ.htN7o 03/01/03 02:57ID:H5ub4PWW
■関連スレ
【Perl,CGI】参考書籍 第三版
http://pc.2ch.net/test/read.cgi/php/1030209573/l50
【 スクリプト改造工房 PART 5 】
http://pc.2ch.net/test/read.cgi/php/1028193595/l50
こんなCGI探してますスレッド Ver7
http://pc.2ch.net/test/read.cgi/php/1031910901/l50
.htaccessの偉い人 Part3
http://pc.2ch.net/test/read.cgi/php/1019888234/l50
【スレッド】2ch型掲示板 その7【フロート型】
http://pc.2ch.net/test/read.cgi/php/1040777088/l50
0005nobodyさん03/01/03 16:46ID:???
質問してもよろしいでしょうか?
0006nobodyさん 03/01/03 17:04ID:???
質問せずに何をするのだ。
0007nobodyさん03/01/03 17:39ID:???
CGIのことは何も知りませんが、この内容をチェックしてください。
お願いします。
0008nobodyさん03/01/03 17:43ID:???
BBSのログのパーミッションを666に設定してあるんですが、
ログのアドレスを直接参照すると、ログが直接見られます。
CGIを経由しないと参照できないようにしたいのですが、何か方法ありますか?
0009nobodyさん03/01/03 18:03ID:???
>>8
ログファイルの拡張子をcgiにかえてみ
0010nobodyさん03/01/03 22:41ID:jx+nlJxM
>>8
パーミッション600
0011nobodyさん03/01/04 01:23ID:???
>9
ログにCGIのソース書かれると危険。
あまりお勧めできない。

>8
.htaccess
001293503/01/04 10:45ID:???
前スレの948さん。遅ればせながらレスサンクス!
0013nobodyさん03/01/04 14:58ID:???
>>10
有無を言わさず chmod(0666, "logfile");
(Perl) なんてやるクソスクリプトだった
らどうするよ。

#実在するから気おつけてね。
0014nobodyさん03/01/04 17:31ID:???
>>13
KENT
0015nobodyさん03/01/05 13:43ID:???
>>10
suEXECが有効なサーバじゃないとエラーになるでしょ。
0016nobodyさん03/01/06 07:41ID:abYGXX0G
オフラインで、フォルダの中にtako.html と hoge.exe があるとします
hoge.exe はHTMLを吐く実行ファイルで、tako.html には以下のフォームが入っています。
<HTML>
<FORM ACTION="file:///C:/home/Programing/EPA4Bunkai/Text2IPA.exe">
<INPUT TYPE="submit" VALUE="ボタン">
</FORM>
</HTML>

ボタンを押したら、hoge.exe の吐いたHTMLを表示させたいのですが、
上記の条件だと、ファイルのダウンロードになってしまいます。
やはり、Apache などを走らせてないと駄目なのでしょうか?
0017nobodyさん03/01/06 12:23ID:???
>>16
あたりまえだろ。
そんなんで実行できたら、セキュリティーホールに使われるって。
0018nobodyさん03/01/06 13:14ID:JhCfMZHJ
ネットスケープ6を使ってやりたいのですが、UTFの文字コードをEUCに
PERLのプログラムで変換する方法を教えてください。
具体的には
・変数にUTFの文字コードを代入
      ↓
・その変数をEUCに変換
とやりたいのですがどのようにやったらよいのでしょうか?
どなたかよろしくおねがいします。
00191803/01/06 16:13ID:vFPYY9M3
度々すいません。UTF8の文字コードを$optionにいれているのですが
今調べて
$option =~ tr/+/ /;
$option =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
&jcode'convert(*option,"euc");
とやってみたのですが$optionを表示させると???????となってしまいます。

どうしたらよいのでしょうか?
0020nobodyさん03/01/06 16:50ID:8Wd4rwQY
コンピュータにもお前の意思が意味不明だってことだよ。
0021nobodyさん03/01/06 17:33ID:???
というか、コンピュータは言われた通りのことをやっている。
問題ない。
0022nobodyさん03/01/06 20:01ID:???
>>19
jcode.plにはunicode系の変換機能はありません。
jcode.pmで変換できますが、サーバサイドのPerlが実装している必要があります。

utf8<=>eucの変換テーブルを用意して
1文字1文字変換していくルーチンを自作するか
適当なサイトにあるルーチンを借用してくださいませ。。
0023nobodyさん03/01/06 20:01ID:8Wd4rwQY
まず、jcode.pl でやろうとしているんだろうけど
UTF8を扱えるか調べてみろ。
0024nobodyさん03/01/06 21:16ID:???
探してみたらありましたYO
実際に使用していませんのであしからず。。

ttp://www.onicos.com/staff/iz/release/#unicodepl
0025nobodyさん 03/01/07 00:38ID:???
apache2でCGI経由でnewaliasesしたいけど、suEXECするのが妥当?
他に方法あれば教えてくださいませ。
0026nobodyさん03/01/07 15:20ID:???
SUBMITボタンを押すたびに画像を変えるCGI作ってるけど
ブラウザの画像が変わらない。
CGI側からキャッシュを消す方法って無いの?
0027nobodyさん03/01/07 16:20ID:???
>>16
0028nobodyさん03/01/07 17:17ID:???
>>25
suEXECするってのは・・・セキュリティを高めたいって事だよね?
自鯖であればセキュアにできるならするべきだYO

>>26
クライアントのキャッシュを明示して削除する方法は知りませんけれど・・・
htmlからそのCGIを呼び出しているのなら no-cache指定とか。。
フォーム自身もCGIから出力しているのなら
<img src="hogehoge.jpg?$^T$$">
のように?$^T$$でも追加しておけば
CGI起動時刻とプロセスIDでユニークなURLになり
キャッシュは存在しなくなります。。

他にも色々方法はありますYO

>>27
ほげほげ

0029nobodyさん03/01/07 18:23ID:23SRPWxk
jcode.plを使わずにsjis文字をeucに変換することってできますか?
正規表現とかで。
0030nobodyさん03/01/07 18:33ID:???
jcodeでやってることを書くだけ。
車輪。
00312903/01/07 18:42ID:23SRPWxk
>>30
そうしかなさそうですね。
0032nobodyさん03/01/07 19:39ID:E9xJzpX+
>>31
無さそう、、っていうか、ShiftJISとEUC-JPは、ずらしただけだから、
お勉強すれば簡単に作れると思うんだけど・・
0033nobodyさん03/01/07 22:48ID:???
リンク先へ飛ばす際、
リファを取られていても問題の無いように
一旦ダミーの足場を踏まえさせるスクリプトってないでしょうか?
0034nobodyさん03/01/07 22:55ID:???
http://ime.nu/
00353303/01/08 04:33ID:???
>>34
えと、それですか?
00363303/01/08 05:18ID:???
あ なるほど、分かりました。
ありがとうございます。
00373303/01/08 05:39ID:???
続きで申し訳ないのですが、
これと同じようなことが出来るスクリプトは無いものでしょうか?
足場を手前で用意したいもので・・・
0038nobodyさん03/01/08 08:57ID:???
>37
作るの自体難しくないから、誰も配布してないだろうね。
perlなら10行程度でできるし。
Locationで調べてみ。
0039nobodyさん03/01/08 11:09ID:QcH5iWUE
Perlで変数どうしをくっつけたい場合はどうすれば良いのでしょうか?

例えば
$name に "あああ"が入ってて
$num に "111"が入ってるとき

$info に "あああ:111"といれたいときはどうすれば良いのでしょうか?
$info = "$name"+":"+"$num"とやれば良いのでしょうか?
0040age03/01/08 11:39ID:???
やってみれば〜?
00413303/01/08 11:52ID:???
>>38
申し訳ありあせん、
自作しようとしたのですがどうしてもダメです。

ご教授願えないでしょうか?
0042nobodyさん03/01/08 12:10ID:43qqwvSV
cgiを設置したのですが、IEのステータスバーに
「実行しましたが、ページでエラーが発生しました」と出ます
cgi自体は問題なく動いているようなのですが…
IEのスクリプトエラーを表示するをONにしてどこが間違っているのか
チェックしたら、

計画番号設置の
$×× = 19; # (この文の内容)
というところにエラーがあると出ました。
この行の19文字目?が違うらしいのですが、
19文字目は「;」になります…
どうしたらこのエラー表示が回避できるようになるのでしょうか?

00432603/01/08 13:25ID:???
>>28
ローカルのキャッシュ容量が大変なことになるけど
ちゃんと描画できたよ。
ありがとね。
0044名無しさん@お腹いっぱい。03/01/08 14:12ID:???
>>39
.を使え。

>>42
根本的に勘違いしていると思う。
0045nobodyさん03/01/08 14:16ID:43qqwvSV
>>44
どう勘違いしてるでしょうか?
どうか教えてください
0046nobodyさん03/01/08 14:35ID:???
>>45
JavaスクリプトやVBスクリプトのエラーだろ。
0047nobodyさん03/01/08 14:36ID:???
>>39
場合によっては.よりもsprintfの方がいいかも。
0048nobodyさん03/01/08 15:01ID:43qqwvSV
>>46
そうなんですか・・・?
エラーの出たファイルのところにこのcgiの名前があったので・・・
ここでJavaScriptのこと聞いてもいいのかな・・・?
ダメだったらスルーして下さい
JavaScriptエラーってどうやったら修復できるのでしょうか・・・
00493303/01/09 01:21ID:???
>>38
解決しました。
ありがとうございました。
0050nobodyさん03/01/09 15:25ID:???
>>48
コードを修正する。何をあたりまえな。
0051nobodyさん03/01/09 18:17ID:???
CGIから、アクセスしてるユーザのIEのお気に入りの中身を調べることは不可能ですか?
どうにかしてCGIにデータを渡したいんですけど・・。
0052nobodyさん03/01/09 18:48ID:???
>>51
不可能
0053nobodyさん03/01/09 23:31ID:???
それをやられたら泣くだろ
だからねえんだYO!

blinkのやり方はActiveXぽいな。使ったことねえから詳しくしらないが。
0054nobodyさん03/01/10 14:00ID:???
>>53
DynamicHTMLで普通にできそうな予感。
0055nobodyさん03/01/10 22:50ID:???
>>51
そんなプライバシーに関わるデータ抜き取って何しようっての?
発想が厨なんだよ。
ちったあ相手の身になって考えてみろっての。
0056nobodyさん03/01/13 22:11ID:tF1UpiEy
htmlファイルが読み込まれる時に同時にcgiを実行させたいのですが、どうすればよいのでしょう。
とりあえず考えたのはcgiから何か画像を出力させて、<img src="hoge.cgi">なのですが、
実行させるためだけにわざわざ画像を表示させるのはなんか変な感じがします。
何かスマートな方法は無いでしょうか。
0057nobodyさん03/01/13 22:15ID:???
>>56
SSI
0058nobodyさん03/01/13 23:00ID:???
>>56
SSI使えないなら
<IFRAME SRC="hoge.cgi" WIDTH="0" HEIGHT="0">
</IFRAME>
とかでもいいかもね
0059nobodyさん03/01/14 02:13ID:???
>>56
そのCGIからHTML出力させろ。
0060nobodyさん03/01/14 16:51ID:???
>>58
IE限定&IMGの3倍大げさ。
0061nobodyさん03/01/14 20:38ID:???
>>60
ネスケでも6以上ならIFRAMEに対応している。
そういう俺は4.78だけど。。。
0062nobodyさん03/01/14 21:28ID:???
ブラウザ依存のHTML吐き出すようなスクリプトは糞
0063nobodyさん03/01/15 00:54ID:???
HTMLの仕様に準拠していないUAは糞?
0064nobodyさん03/01/15 09:49ID:bv4lo3d6
レンタルサーバ内のplaintextデータ等をバックアップする場合、
何か良いは方法ないでしょうか。
例えば会員データとかで、住所とか名前が入ってるものをメールでそのまま
送るなんて事できないし、圧縮してメール添付ってのも危険ですしね。
専用サーバ借りているのですが、su貰えない&telnet使用可ですが、
固定IP必要なので実質使えないので、CGIで代わりにTELNETモドキやってる程度。
bdesが良いらしいが入ってない。
何か良い方法をご存知の方いましたらRESPLZ。
00656403/01/15 09:59ID:???
でかいファイルでもperlのcryptでOKかな。やってみよう。
00666403/01/15 10:01ID:???
と、思ったけど、デコードできんか...........一人カキコスマン
0067nobodyさん03/01/15 10:25ID:???
>>64
何でメールするん?
FTPで自分のパソにダウンロードすればいいだけの話では。
0068nobodyさん03/01/15 10:59ID:wVEDeB5S
perlスレでcgiに行けといわれたので、こちらにきました。

管理人(私)だけが項目を設定し、来訪者に投票してもらう
という投票・ランキングcgiを設置しようと出来合いの探したところ
項目が140あるので検索機能がついたvote.cgiを探したところ、
ttp://www.c-5.ne.jp/~hamachan/cgihtm/jiten.htm
上記↑で配布されている「簡易データーベース」というものにたどり着きました。
プログラムが古いので
require './jcode.pl';
#-----------------------------------------------------------------
↑これの次の行に↓この一行を追加しました。
open STDOUT, '>-';
jcode.plも新しいバージョンに変えて、説明書きにあったとおり
「ずっこけ物知り辞典」という表示がページに出るところまでは
うまくいったのですが、実際に登録・検索しようとすると、
「ページが見つかりません」、との表示が出ます。
ちなみに、Tripodを使っています。

FTPソフトで見ると、cgi-binフォルダの中に
jiten.cgi、jcode.pl、jiten.docが入っていますが
jiten.docのファイルサイズは0になっています。
count.docファイルは生成されていないようです。

perlスレでTripodではcgi-binフォルダ以下に画像などの
ファイルは置けないとなっているから、とのレスをいただきましたが、
ttp://www.tripod.co.jp/guides/cgi.html
の中頃少し上をみると、スクリプトによって、使用されるHTMLファイルや
テキストファイルは、すべてcgi-binの中にある必要があります、とあるので
これは関係ないかと思いました。

どこをどう改善すればよいのか、ご指導よろしくお願いします。
0069nobodyさん03/01/15 11:25ID:???
>>68
単に
$url_pass = "http://www.hoihoi.ne.jp/~foo/jiten/jiten.cgi";

を自分のURLに設定していないだけなんじゃ・・・
00706403/01/15 11:56ID:???
>>67 毎日、簡単にバックアップしたいので。
FTPでも暗号化しないと、hackされる可能性がある気がするのですが・・・・・。

ネットワーク上で盗用されない為にも、サーバでファイルを暗号化し、
他サーバにコピーが理想。
大したファイルじゃないけど”もしも”の事を考慮してしまう今日この頃。
だんだんCGIと関係ない方向に向かってるかな.....
0071nobodyさん03/01/15 13:14ID:???
>>70
誰がhackすんの?
こういうのに限って、データファイルをドキュメントルート以下に置いてたりするんだよな。
0072山崎渉03/01/15 13:32ID:???
(^^)
00736403/01/15 16:27ID:???
>>71 はぁ。
0074nobodyさん03/01/15 17:02ID:???
CGIしか使えないならCGIで処理するしかないだろうなぁ。
CPANあたりにある暗号化のを使って自分で作るのがいいんじゃない?
需要なさそうだしその辺に転がってるCGIじゃ見つからないと思うよ。
0075nobodyさん03/01/17 20:16ID:???
CGIの内部で画像ファイルを作って出力しようと思っているのですけど、
そのCGIの名前が makepng.cgi という名前だとブラウザからDLしようと
するときの名前がnamepng.cgi.pngという名前になってしまいます。
# 手で書き換えればいいのだけれど。
makepng.cgi?foo=1&bar=x のときにはダウンロードするときの名前を
giko01x.png のようにCGI側で調整してやる方法ってありますか?
ブラウザはIEのみと考えてもいいです。
0076nobodyさん03/01/17 21:57ID:UZGmf3mg
>>75
直接ブラウザに画像データを送ったらファイル名はつけられない。
いったんサーバ側に画像ファイルとして保存してからならなんとかなるでしょう。
0077nobodyさん03/01/17 23:02ID:???
なるほど、了解しました。
0078nobodyさん03/01/18 00:23ID:O9FxKTGG
来客者は書き込めるが、他の来客者が書いたものは見られないようなcgiってありますか?
00797803/01/18 00:24ID:O9FxKTGG
追記

当然管理人は見られます。
管理人以外が過去の書き込みが見られないようなゲストブックみたいなやつがほしいんです。
0080nobodyさん03/01/18 00:37ID:???
>>78
メールじゃダメなのか?
0081nobodyさん03/01/18 22:36ID:vrB72zE5
http://www.ruby-lang.org/ja/man-1.6/?cmd=view;name=%A4%CF%A4%B8%A4%E1%A4%CB
↑このサイトですけど、URLが hoge.cgi?〜 見たいになってなくて、
スラッシュの次にいきなり?になってます。
これってどうなってるの?
0082nobodyさん03/01/18 23:28ID:???
掲示板CGIの中に別プログラムのCGIを挿入したいのですが、
掲示板CGIのHTMLスペース内にSSIを入れて実行しても
そのままタグが表示されてしまいます。

どのようしたらよいのか教えてください。
0083超シロウト03/01/18 23:47ID:ovwKqnQ9
ほんと申し訳ないのですが、
public_htmlと同じ断層にフォルダを作った時、そのパスは
どのように書いたら良いんですか?
.../.../.../フォルダ/
これでいいのかな?
0084nobodyさん03/01/18 23:53ID:???
>>83
相対パスで良いなら./
0085nobodyさん03/01/18 23:54ID:vrB72zE5
>>83
public_htmlを基準にするなら、
../フォルダ
じゃない?
0086nobodyさん03/01/18 23:55ID:???
>>83
相対パスなら./public_htmlまでのパス/../フォルダ/
だと思うけど
0087nobodyさん03/01/18 23:57ID:???
>>86
お帰り下さい。
0088nobodyさん03/01/19 00:02ID:ZcFFkCZZ
おまけ:

. =>ディレクトリ自身へのリンク
.. =>親ディレクトリへのリンク

先頭が/でなければ、それはカレントディレクトリからの相対パスとみなされる。
0089nobodyさん03/01/19 00:04ID:???
>>88
DOS6なら...とか..........とかも可能だったりする。
0090nobodyさん03/01/19 00:06ID:???
ほぉ・・知らんだ。あ。リンクっていうのは、正確には、ハードリンク。
0091nobodyさん03/01/19 00:07ID:???
>>90
つぅことは..を削除したりなんかしたら親御さんがいなくなってしまうのか。
0092nobodyさん03/01/19 00:19ID:???
ディレクトリ、というファイルの実体が削除されるときは、リンクカウンタが0になった時。
なので、..を消しただけでは消えないはず。

だけど、rmとかの普通のコマンドは、消すことを許可しない、から、普通には消せない
0093nobodyさん03/01/19 00:47ID:???
>>82
print `betu.cgi`;
0094nobodyさん03/01/19 01:17ID:???
>>81
index.cgi
0095nobodyさん03/01/19 06:53ID:???
>82
SSIではなく、ちゃんとスクリプト内に組み込みなさい。
普通SSIの使える拡張子は限られてるだろ。
0096nobodyさん03/01/22 22:36ID:/vlxGamR
webpowerのディレクトリゲイト、下記(サポ板)の質問にもあるように
携帯(J-PHONE)からアクセスすると認証後に飛べないようなんですが
どうしたら良いのでしょうか。
ttp://rank.nu/~wpis/bbs/support/bbs.cgi?mode=view;Code=154
上記で丁度同様の質問が出ていたのですが12月から回答がついてないみたいで…
0097nobodyさん03/01/23 05:02ID:???
ブラウザの履歴を調べる方法はないですか?
window.historyで「進む」「戻る」の実行はできますが、ページを移動せずに
そのURLが知りたいんです。
0098nobodyさん03/01/23 11:11ID:???
>>97
ブラウザがその情報を渡してくれなければどうしようもないだろ。
0099nobodyさん03/01/25 01:03ID:???
質問なのであげます。

apeboard+ で何行も改行するにはどうしたらいいのでしょうか。








こんなふうに。

スキン内のスタイルシートの制限は外したのですが…。
0100nobodyさん03/01/25 10:17ID:???
>>99
曽根。
0101nobodyさん03/01/25 10:32ID:A7yEoEyG
ファイルを書き込み中に、そのファイルを読み込むプロセスが発生したとしても、
ファイルの読み込みの成否はともかくとして、ファイルの書き込みは成功して、ファイル自体が壊れることはないのでしょうか?
0102nobodyさん03/01/25 10:38ID:???
>>101
データ書き込み中に読み込みなら書き込みは成功するはずです。

どっちにしろflockは必須と考えた方が幸せです。
010310103/01/25 10:51ID:A7yEoEyG
ありがとうございます。
ファイルの読み込みが、次に行うかもしれない書き込みに影響しないのであれば、
ファイルの読み込み自体はflockの手順を介さなくても平気なんですね
0104nobodyさん03/01/25 10:52ID:???
>>103
必須の意味を考えながら腕立て200回。
010510103/01/25 11:05ID:A7yEoEyG
わっ、そうですね‥
102の末尾に
そうでなければ、介すべき、仕様が明確に決まってなければ、介すべきといった感じなのでしょうか??
という具合ですかね
010610103/01/25 11:19ID:A7yEoEyG
じゃなっくっっーーてェーー
103だ103。
0107ここは?03/01/25 12:01ID:P9onD8CE
http://homepage3.nifty.com/digikei/ten.html
(*~ー゜)ノ ・・・・・心温まるの〜
0108nobodyさん03/01/25 12:29ID:???
書き込みが成功したとしても、後から読み込んだプロセスが(中途半端な)上書きをして
データがごっそり抜けることになる。
図入りで説明してるページも多いから調べてみそ。
0109nobodyさん03/01/25 12:59ID:2kNMQnUp
今PealでBBS作ってるんですが、
ログを保存するのに、1件につき1ファイルが良いのか
1つのファイルに詰め込んでいく方が良いのか・・・。
後者だとすれば何件くらいを目安にすれば良いのやら。。
と、悩んでます。

一体皆さんはどういう感じでつくっているのでしょう?
お奨めなやり方などがあれば教えていただけると嬉しいのですが。
おながいします。
0110nobodyさん03/01/25 13:01ID:???
>>109
>1件につき1ファイル
追加、編集、削除が容易だがどうやって検索するかが問題になってくる。まぁ、簡単と言えば簡単。

>1つのファイルに詰め込んでいく
ファイルをだだ読みすればいいので検索性は良い。しかし追加、編集、削除が面倒。まぁ、簡単と言えば簡単。

どっちにもメリットデメリットがあるのでお好きな方を。と。
011110903/01/25 13:10ID:???
>>110
了解しました。
しばらくは両方使ってみて
自分の好みの方にしてみます。
ありがとでした!
0112nobodyさん03/01/25 16:14ID:???
flockなんか使ってる香具師いるの?
0113nobodyさん03/01/25 16:15ID:???
>>112
(・Д・)?
0114nobodyさん03/01/25 17:20ID:J+PAIJA/
1ファイル1000個くらい詰めた方が効率がよろしい。ので

1ファイルに詰め込むんじゃなくて、1000個づつに分割したらどうかね
0115nobodyさん03/01/25 17:51ID:???
>>114
検索はしやすそうだけど
編集、削除はやっぱり面倒じゃないか?
追加は>>で追記してけば問題なさげ。

1ファイル1投稿だと排他あまり考えなくていいし
最悪トンでも1メッセージだけ。
検索しないなら1ファイルに1投稿が確実。(検索もできなくはない
編集、削除しないなら1ファイルへ数件詰め込めば検索楽。
0116nobodyさん03/01/25 18:02ID:???
>>112
しょっちゅう使っていますがなにか?
0117nobodyさん03/01/25 18:51ID:???
>>116
flockってファイルを開いてからロックするから同時に開けちゃうでしょ?
それでもイィ!!の?
0118nobodyさん03/01/25 18:54ID:???
>>117
無いよりは激しくまし。

と、言うかロックの時点でロックに成功したプロセス以外は待ち状態になるんでは?
ほら、スレッドみたいに。
011911603/01/25 20:13ID:???
>>117
>>118の言うとおり後からflockを呼んだプロセスはロックが解除されるまで待ち状態になる(排他ロックの場合)。
俺はCで使っているけど、Perlもこのシステムコールを呼んでいるだろうから同じでしょ。
0120nobodyさん03/01/25 20:17ID:???
>>118
無いよりはマシなのは当たり前だけど、ロックにflock使うのはどうかと思う。
ファイルを開いてからflockするまでの間に、別プロセスによって開かれる場合が(十分に)あるから。
プロセスIDとtempfile使ってうまくやるべき。
012111603/01/25 20:18ID:???
>>120
そのファイルが様々なプログラム(flockを呼ばないものもということ)から書き込まれるものでなければ問題ないと思うけど。
0122nobodyさん03/01/25 20:19ID:???
実際flock使ったロック方法では負荷テストすると同時書き込みが起こるよ。
0123nobodyさん03/01/25 20:20ID:???
>>121
いやいや、「思う」ではダメよん。こっちは実験してるんだから。
flockを呼ぶプログラムを複数同時起動すると>>122が起こる。これマジ
0124nobodyさん03/01/25 20:20ID:???
>>122
追加書き込みの際、きちんとファイルポインタをファイルの末尾にもってゆく処理をしている?ロックを解除する前にバッファをフラッシュしている?
0125nobodyさん03/01/25 20:21ID:???
>>123
俺もテストしたけど。
何回やっても成功したよ。
環境はLinux(2.4.18)
0126nobodyさん03/01/25 20:22ID:???
つーかそんな信用できないものをシステムコールとして実装するだろうか・・・
0127nobodyさん03/01/25 20:29ID:???
うーん。ということはflockで特に問題ないのか。
追加の時はともかく上書きの時にflockは使えないと思っていたのですが。。
認識違いのようですね。たぶん実験の時は他の部分がバグっていたのでしょう。
すいませんでした。
0128nobodyさん03/01/25 20:30ID:???
>>127
ただしNFS上では使えない。。。
0129nobodyさん03/01/25 20:57ID:???
>>123
OSも書かずに調子乗ってるバカ。

>>125
正常な技術者。
0130nobodyさん03/01/25 21:48ID:Qs+kaqdw
CGIの勉強をしたいのですけど、やっぱりサーバー建てる必要ありますか?
0131nobodyさん03/01/25 21:52ID:???
>>130
ローカルで小さなhttpサーバ立てれば十分です。
0132nobodyさん03/01/25 22:24ID:Qs+kaqdw
実際に使うとしたらやっぱり立てる必要はありますか?
お金を使わないで使う方法はどんなものがありますか?
0133nobodyさん03/01/25 22:26ID:???
>>132
戦う前から負けている。
0134nobodyさん03/01/25 22:29ID:Qs+kaqdw
できればCでCGIしたいんですけど
無料レンタルサーバで、使えるところないですかね?
0135nobodyさん03/01/25 22:29ID:???
>>134
そのレベルを語るにはまだ早い。
0136nobodyさん03/01/25 22:30ID:???
>>132
フリーのウェブサーバーソフトを使えば?

>>134
板違いな質問・・・・
トクトクならgccが使える。
0137nobodyさん03/01/25 22:32ID:Qs+kaqdw
とくとくまじですか?
ちょっと検索してみます。
サンクス
0138nobodyさん03/01/25 22:35ID:???
>>137
自分のマシンにSunOSが入ってないと無意味だぞ。
0139nobodyさん03/01/25 22:36ID:???
>>138
なんでだよ(笑)
telnet使ってサーバー上でコンパイルすればいいじゃない。
それとトクトクはLinux

iswebと勘違いしたとか?
0140nobodyさん03/01/25 22:42ID:Qs+kaqdw
iswebでもgccつかえるのですか?
0141nobodyさん03/01/25 22:43ID:2edfK8fF
IISで画像掲示板(cgi)を表示させるとDLLHOST.EXEがCPU100%
になる”こと”がある。
プロセスはその時2個あるので殺すと普通になる。何で?
0142nobodyさん03/01/25 22:44ID:???





























g
0143nobodyさん03/01/25 22:46ID:???
>>140
ローカルでコンパイルしてアップロードしろってことでしょ
0144nobodyさん03/01/26 06:26ID:Hn+ukPj1
テキストファイルを読み込んでHTMLを吐き出すcgiの場合、
テキストファイルの中身を一行づつHTMLに吐き出すのと、
テキストファイルの中身を一旦配列変数に入れてから
まとめてHTMLにして吐き出すのとではどちらがいいんでしょう。
0145nobodyさん03/01/26 06:46ID:hfzgm8Bu
★http://jbbs.shitaraba.com/travel/832/★
    ◆みんなの情報局◆
0146nobodyさん03/01/26 09:25ID:???
>144
ケースバイケース。
0147nobodyさん03/01/26 09:29ID:???
>>144
「どちらがいいか」って漠然と言われても……
使うメモリが少なくてすむ前者のほうがいいんでない?
0148w-inds慶太03/01/26 09:58ID:8J93RXm8
>>144
w-indsの慶太どぇす。
147のいうように、前者のほうがメモリへの負担が少ないでしょう。
ただ、後者のほうがメンテナンスしやすそう。
0149nobodyさん03/01/26 10:02ID:???
while (read(IN, my $buf, 8192)) {
 print $buf;
}
0150nobodyさん03/01/26 10:38ID:???
print while (<IN>); # 1行ずつ

@hoge = <IN>; # 配列経由
print @hoge;

コード自体は大差なし
読み込みから表示までの間にどんな処理をするかで使い分けれ
0151nobodyさん03/01/26 15:45ID:???
シーケンシャルな処理なら前者
ランダムアクセスな処理なら後者
0152nobodyさん03/01/27 00:36ID:zeV2mDZO
WinXP、Perl/CGI環境でgzip圧縮転送の動作テストをしたいんですが
Winにgzipを導入してPerlで動かすってことは可能なのでしょうか。
また、可能だとすれば、どのようにすればいいのでしょうか。
参考サイトでも構いませんので、教えてください。
0153nobodyさん03/01/27 00:47ID:???
>>152
「Winにgzipを導入して」の意味がさっぱり分からんのだが、
system・パイプではダメ?
0154nobodyさん03/01/27 00:49ID:???
>>152
ほい。
ttp://www.gzip.org/
0155nobodyさん03/01/27 00:50ID:???
>>152
参照元
ttp://najo.cc.sakura.ne.jp/~alimika/satomican/doc/natsumican.html
015614403/01/27 15:35ID:???
>>147 >>148
言葉足らずですみません。
はじめ後者でやって、メモリの負担のことを配慮にいれて
前者の方法に切り替えたんですが、HTMLが表示されるのが
遅くなったようなので、どうなってるんだろうと思った
のです。
メモリ重視なら前者、速度重視なら後者ということですね。
015714403/01/27 15:40ID:???
>>149-151
すみません。お礼言い忘れました。
ありがとうございます。
0158nobodyさん03/01/28 09:31ID:ysKV21Dy
初参加です。質問させてください。よろしくお願いします。
今チャット作ってるんですが、チャットマスターの発言は参加者には見えるけど
参加者の発言は発言者本人とチャットマスターにしか見えないようにするには
どうすればいいのでしょうか。
もうだいぶ探していますがどーしても分かりません。
ご存知の方、教えてあげてください。よろしくお願いします。
0159nobodyさん03/01/28 09:51ID:???
参加者ごとにログファイルをつくるとか・・・・
ログファイルをひとつにする場合は読み出すときにIPアドレスなどから出力してよいものを選択するとか・・・・

CGIではやらない方がよいと思うけど。
0160nobodyさん03/01/28 13:42ID:aPuGCgnw
>>159さんありがとうございます!
まだまだ分からないことだらけな当方ですが、
ログファイルを使用してのチャット作りに挑戦してみます。

ところでみなさんどうやって勉強してはるのですか?
とても詳しいですけど。これからの参考にさせて頂ければと思います。
0161nobodyさん03/01/28 14:11ID:???
>>160
> ログファイルを使用してのチャット作りに

使用しないでどうやってCGIチャットを作るの?(^_^;)
0162!16103/01/28 18:29ID:???
>>161
mod_perl環境でグローバル変数にログをためとくとか。
0163nobodyさん03/01/28 20:48ID:???
あるHPにアクセスした時、
403Forbidden
You don't have permission to access /○○○/ on this server.
って、出たんだけどー
これって、そのHPに入ることを拒否されてるって事?

どうやったら、入れるの?
0164nobodyさん03/01/28 21:26ID:???
>>163
どういうレベルで拒否されたかはわからないけど、とりあえずアクセスできない。
0165nobodyさん03/01/28 23:03ID:???
>>163
それは指定したURLへのアクセスが禁止されてるってことだから、
そのサイトのちゃんとした入り口から入れば大丈夫なはず。
(このエラーはGoogleの検索結果やブックマークなどの飛び先が
消滅することで出るパターンが多い)
0166nobodyさん03/01/29 20:07ID:AuAKLt9R
CGIにてFORMにて入力したファイルを表示するCGIをPerlで作っています。
ローカルにあるファイルだと、無事open()できるのですが、
外にあるファイル(http:// で始まるhtmlなど)をうまく扱えません。
公開されているHTMLやTXTなどをCGIにて表示させたいのですが、
どうすればいいのでしょうか?

教えてください
0167nobodyさん03/01/29 20:16ID:???
>>166
open()の説明によると、外にあるファイルは扱えないことになっている。
自分でソケット張って取りにいくのが普通かな。fsockopenとかLWPとか。
0168nobodyさん03/01/29 21:58ID:???
>>166
外部なら自分で取りに行かなくてもブラウザに送ったHTMLの中で
開かせればいいんじゃないの?
0169nobodyさん03/01/29 21:59ID:???
>>166
そんな君にはPHP
fopenでローカルファイルを開くように外部ファイルを開ける。
0170nobodyさん03/01/29 22:07ID:???
>>169
それようのオプション付けてコンパイルしてないと無効だけどな。
0171nobodyさん03/01/30 15:07ID:7OFGIowB
age
0172nobodyさん03/01/31 10:53ID:lEAaXrUa
http://www.kent-web.com/bbs/joyful.html?

↑この掲示板を使っているのですが、
掲示板の一時停止はどのようにすればいいですか?
cgiを上書きUPしても書き込みされたものには影響がないですか?
0173nobodyさん03/01/31 10:54ID:???
>>172
まぁ死ね。
0174nobodyさん03/01/31 10:55ID:lEAaXrUa
>>173
そんなこといわないで、教えてください。
0175nobodyさん03/01/31 11:55ID:lEAaXrUa
お願いします。。。
0176nobodyさん03/01/31 17:30ID:???
>>172
まぁパーミッションを変更しる。
0177nobodyさん03/01/31 17:41ID:lEAaXrUa
>>176
ありがとう(TT)
0178nobodyさん03/01/31 17:41ID:54d1aEzb






http://dx1.kakiko.com/sonota/335/3352/index.html




0179nobodyさん03/01/31 19:29ID:Ee0DVLll
メールアドレスを晒すのが嫌なのでformmailを設置したところ、
学校のunix鯖ではCGI上からsendmailとqmailが使えないみたいなので、
にゃぁぁぁぁぁぁぁ?さんのsendmail.cgiなるものを設置しました。
SOCKETでsmtpと通信するスクリプトらしいのですが、これも動く気配が無い。
動かないと分かれば諦めがつきます。鯖上でSOCKET関数が使えるかどうかは、どこでわかるのでしょうか?
0180nobodyさん03/01/31 19:33ID:???
>>179
適当なところにコネクション張ってみ?
018117903/01/31 20:14ID:Ee0DVLll
>>180
ttp://ash.jp/perl/socket_http.htm
ここのページ見てhttp.plで $host = 'yahoo.com';として
%perl http.pl http://yahoo.com/
とかやったらyahooのソースが見れたのですが、ブラウザ上からhttp.plを呼び出すと。
Error500 malformed header from script. Bad header=HTTP/1.1 200 となります。
0182nobodyさん03/01/31 20:17ID:???
>>181
そら、リモートの80番にアクセスしようとする奴拒否するサーバは少ないわさ。

後、ヘッダが変とか出てるので通信以前に死んでる予感も。
018317903/01/31 20:30ID:Ee0DVLll
%perl http.pl ms.hc.cc.**.ac.jp:25
220 earth.hc.cc.**.ac.jp ESMTP
502 unimplemented (#5.5.1)
シェルだとこんな感じ。ってかシェルでうごいてもしょうがないか。
0184nobodyさん03/01/31 20:33ID:???
>>183
いや、大きな情報な気がする。

ESMTPに対応してないんじゃないの?サーバが。
018517903/01/31 20:43ID:Ee0DVLll
>>184
ESMTPってのが分からないんですけど。。
でも上のはhttp.plが print SOCKET "GET $url HTTP/1.1\n";
ってのを送ってるから502が帰ってくるのであって、print SOCKET "HELO domain\r\n"
ってやればちゃんと 250 earth.hc.cc.**.ac.jpってのが帰ってきます。
でもこれをブラウザ上で呼び出すと、Error500になってしまいます。
0186nobodyさん03/01/31 20:47ID:???
>>185
つぅかなぜsmtpにhttpリクエストを送る・・・
018717903/01/31 20:50ID:Ee0DVLll
>>186
。。いや急遽スクリプト書き直したもんで、見落としてました。
0188nobodyさん03/01/31 20:52ID:???
>>182
はぁ、、わからんのなら答えなくてよろしい。

この場合、CGIが変なヘッダーを出しとるわい。って怒ってる。
で、おそらくHTTP/1.1 200はyahoo.comが出したもの。(http.plを見ればわかる)
つまり、通信は成功してる。ということ。

それから、>>183で出てきたものは、SMTPでーもんの出力だけ。HTTPでしゃべられても
困るっていうことを言ってる。全然大きな情報じゃない。

>>181
そもそも、そんな変なことで悩む前に、「使えないみたい」「動く気配がない」
って言われて原因が分かる超人に期待するのは無謀だと気づけ。
0189nobodyさん03/01/31 20:54ID:???
>>188
>この場合、CGIが変なヘッダーを出しとるわい。って怒ってる。
彼2行目でそう言ってる。
0190nobodyさん03/01/31 20:54ID:???
>>188
>この場合、CGIが変なヘッダーを出しとるわい。って怒ってる。

>>182もその可能性を示唆してると思われ。
0191nobodyさん03/01/31 20:55ID:???
ケコーン
019217903/01/31 21:04ID:Ee0DVLll
鯖にはSOCKETモジュールがインストールされていて、シェルからSOKCET関数も使えるが、
cgi上ではError500 を吐くの場合 1.cgi上では実行権限が与えられていない
2.それともSOCKET関数とは別の問題 なのか知りたいんです。

# html書き出し部分はここです。
while (chomp($buf=<SOCKET>)) {
print "Content-type: text/html\n\n";
print "$buf\n";
exit;

この場合もシェルだと
Content-type: text/html
220 earth.hc.cc.**.ac.jp ESMTPとなります。
0193nobodyさん03/01/31 21:05ID:???
chomp($buf=<SOCKET>)
0194nobodyさん03/01/31 21:08ID:???
とりあえず無バッファリングにしてみる。
019518803/01/31 21:16ID:???
>>189-190
>>182は、通信"以前"って書いてあったからー
通信以後に発生したエラーだし、つっこんでもOKだと思って。。
019617903/01/31 21:28ID:Ee0DVLll
シェルから呼び出した時しかファイルに書き込まれません。log属性は666です。
(chomp($buf=<SOCKET>));
open(OUT,">> http.log");
print OUT "$buf\n";
close(OUT);
0197nobodyさん03/01/31 21:30ID:???
>>196
ディレクトリのパーミッションは?
019817903/01/31 21:32ID:Ee0DVLll
cgi-binディレクトリは755になってます。
0199nobodyさん03/01/31 21:36ID:???
ネタか。
020017903/01/31 21:42ID:Ee0DVLll
cgiスクリプトとlogが同一ディレクトリにある場合って、755でも動きませんか?
ちなみに777で試してみても結果は同じでした。
020119903/01/31 21:46ID:???
>>198について言ったわけじゃない
0202nobodyさん03/01/31 23:06ID:???
suExecだったしな。
020317903/02/01 01:24ID:???
他の所でソケット通信の話題OKという所があったので、移住します。有り難うございました。
0204nobodyさん03/02/01 17:41ID:Cax25w+6
BiglobeでHP作ってて、CGI使って日記作ろうと思ったんですが、
パスワード入れて管理モードに行こうとすると、
『CGI専用サーバなのでできるか』と言われます。
biglobeだとCGI専用サーバとかになっちゃうらしいんですけど、cgiのほうのどっか設定変えたらできるんですかね。

当方、初心者です。
0205nobodyさん03/02/01 17:42ID:???
>>204
わかってます。帰れ。
0206nobodyさん03/02/01 17:44ID:???
CGIは安全、mod_phpは危険ってどういうこと?
0207nobodyさん03/02/01 17:44ID:???
>>206
幻想です。CGIが安全ってまた訳がわからんけれど。
0208の03/02/01 17:45ID:/eR4kJXs
>>196
ファイル名の指定を絶対パスにしてみ
0209nobodyさん03/02/01 17:46ID:???
>>207
ちなみにhttp://pc2.2ch.net/test/read.cgi/php/1036915437/864なんですけど。
PHPだとsetUIDとかでしょうかねぇ?PHP知らないけど。
021020903/02/01 17:47ID:???
s/setUIDとか/setUIDできないとか/
0211nobodyさん03/02/01 17:48ID:???
>>209
一つのモジュールに負荷が集中するって事じゃないの?
021220903/02/01 17:50ID:???
>>211
といいますと??
スマソ まじでわからんです。
021321203/02/01 20:19ID:???
放置されとる・・・・
答える価値もないと判断されたか(鬱
0214の03/02/02 02:12ID:eQAjYeC3
CGI は別プロセスでロジックが動く。
モジュールは、httpd のプロセス内(同じメモリ空間)で動く。
したがって、動作上で OS のメモリ保護が期待できるか否かと言った違いは
ある。まあ、クラック耐性が多少高い程度だがな。
0215nobodyさん03/02/02 02:13ID:VwKQrujS
CGIで、ブラウザにコンテンツをキャッシュさせるには
プログラム側でどのようなヘッダを吐けばいいのですか?

ちなみにContent-Typeしか吐いてない場合、
IEはキャッシュしてくれないようです。

やりたいことは、コンテンツをキャッシュさせて、ブラウザから送られてくる
リクエストヘッダを調べて、コンテンツを吐くか吐かないか制御したいのです。
0216nobodyさん03/02/02 03:31ID:???
>>215
If-Modified-Since と Last-modified あたりかな。
まぁでもCGI側でブラウザのキャッシュのことを気にしなくていいような気もするが・・・
021721503/02/02 04:04ID:???
>>216
Last-Modified付けてもIf-Modified-Since送ってきませんでした。IE5

もしキャッシュできれば、余分なI/Oが減って2chのread.cgiが軽くなるかなー
なんて考えていましたが、無理かな。。
0218nobodyさん03/02/02 15:06ID:???
phpでperlのlocal宣言ってあるの?
0219nobodyさん03/02/02 15:27ID:???
>>218
phpはperlなんかと違って変数のスコープは関数内に限定されます。
0220nobodyさん03/02/02 23:13ID:???
>>215
nph- にして自前でヘッダを全部出力しないと、
サーバソフトが勝手にレスポンスヘッダに 'Cache-Control: no-cache' とか
付けて吐き出してくれてしまったりします。

nph- にすればキャッシュだけでなくかなり自由度の高いシステムを作れるけど、
いかんせん面倒くさいのが何とも。
HTTPの仕様書とにらめっこをしながらプログラムを書く羽目に。
0221nobodyさん03/02/03 08:11ID:FFrB/oLu
ここ( ttp://www.area-s.com/ )で配布されている、
NarrationBBSというのがものすごく気に入って自分のサイトに
設置しようと思い、CGIについて理解しようとネットを駆け巡り
5時間が過ぎました。CGIについては全くの初心者ですが、
一通りの設置の流れや、やらなければならないことは理解した
つもりです。で、いまだにCGIをちゃんと使えるようになって
いないのですが、どなたか助けていただけませんでしょうか。

現在の進行状態としては、プロバイダー(地域のCATVでCGI利用可確認済み)確認、
目的のCGIのダウンロード、プロバイダーに指定された内容の「.htaccess.txt」
ファイルの転送、パスの変更後CGIファイルの転送とパーミッションの設定、
ホームページのトップからCGIへのリンクを作成。

と、こんな感じなんですが、リンクをクリックすると、ダウンロードしますか?の
確認メッセージがでてきてしまい、CGIを動作させられません。
0222nobodyさん03/02/03 08:12ID:???
>>221
shine
0223nobodyさん03/02/03 09:26ID:8N4vyrOL
http://www.agemasukudasai.com/bloom/
0224nobodyさん03/02/03 09:55ID:???
CGIを使って、特定のディレクトリ以下をアクセス禁止にするような事できますか?
htaccessが使えないような場合のことです。
0225nobodyさん03/02/03 10:17ID:???
>>221
.htaccessの中身をここにうpしてみよう。
あとパーミッションはいくつに設定したの?
0226nobodyさん03/02/03 15:58ID:QjlL5TK8
>>225さん すみません。朝方までがんばってやっていて今まで寝てました
,htaccessの中身は以下のとおりです

# .htaccess
AddHandler cgi-script .cgi

このファイルのパーミッションは、プロバイダの指示が

>テキストファイルの内容は以下のように記述して下さい。
># .htaccess
>AddHandler cgi-script .cgi
>
>転送するときにパーミッションを「644」にして下さい。

とあったので644、その他のものについては cgi 755 dat 666 pl 644
との指示がCGI配布サイトにありましたのでその通りに。また、『※全ての
ファイルを格納するディレクトリ(フォルダ)は777にしてください。』と
あったのでcgiファイルのあるフォルダは777にしました。

ディレクトリ構造は以下のとおりなんですがこれでいいのでしょうか?
public_html ┬ index.html
└ cgi-bin ─ nb ┬ nbs.cgi
├ nbe.cgi
├ cnt.cgi
├ img ─ 画像ファイル(アイコン含む)
├ bbs.dat
├ nar.dat
├ num.dat
├ rjc.dat
├ usr.dat
├ jcode.pl
└ index.html ダミー用
0227nobodyさん03/02/03 16:00ID:QjlL5TK8
すみません、変な風になっちゃいましたね
public_html ┬ index.html
       └ cgi-bin ─ nb ┬ nbs.cgi
├ nbe.cgi
├ cnt.cgi
├ img ─ 画像ファイル(アイコン含む)
├ bbs.dat
├ nar.dat
├ num.dat
├ rjc.dat
├ usr.dat
├ jcode.pl
└ index.html ダミー用
こんな感じです
0228nobodyさん03/02/03 16:45ID:TJH3fomo
>>227
.htaccess.txt
じゃなくて
.htaccess
022930203/02/03 16:49ID:???
>>228さん レスありがとうございます。

FTPソフトを用いてtxt拡張子を消しましたがうまくいきません。
リンクをクリックすると、ダウンロードしますか?の確認メッセージが
やっぱりでてきてしまい、CGIを動作させられません。
023022103/02/03 16:51ID:QjlL5TK8
すいません、229は302じゃなくて221です・・・。
023122103/02/03 17:05ID:QjlL5TK8
いまパスの設定を見直して、リンクを書き直したら
ダウンロードしますか?はでてこなくなりましたが、
Internal Server Error になってしまいました。
この場合、ほとんどはパスの設定ミスということらしい(?)ですが、
htaccessのパーミッションはプロバイダの指定どおり、他のcgiファイルなどは
cgi配布サイトの指示どおりにしています。

ひとつ疑問が残るとすれば、cgiファイルを格納しているディレクトリの
パーミッション設定なんですが、cgi配布元によると、cgi格納ディレクトリは
777にせよとのことなのですが、これは>>227の階層構造でいうと、cgi-binと
nbsフォルダのパーミッションを777にすればいいんですよね?

・・・なんでInternal Server Errorになるんだろう(T-T)
0232nobodyさん03/02/03 17:18ID:???
殆どの場合#!/usr/local/bin/perl
もしくは#!/usr/bin/perl です。

両方試してみた?
0233nobodyさん03/02/03 17:19ID:800eNsZd
>>231
777でだめなら755にしる。
023422103/02/03 17:21ID:QjlL5TK8
>>233
755にしたらちゃんと表示されました!
皆さん本当にありがとうございました〜
なんだかんだいって、やっぱり2chは頼りになります
0235nobodyさん03/02/03 18:50ID:???
>>234
頼りにするのは困る。最終手段として使え。自分で調べられないと生きていけないぞ。

今回の問題は、suEXECのセキュリティーチェックに引っかかってる。点。
worldから書き込み可能なファイルは、所有者以外に書き換えられた可能性がある
から、実行させてくれない。ということ。
023617903/02/03 21:00ID:???
203の中間報告。結果は学校の鯖ではSocket.pm、IO::Socket.pm、FileHandleなどの
モジュールが呼び出せないためSocket通信できませんでした。
push(@INC, "/hoge"); とかも駄目でした。
0237nobodyさん03/02/03 21:15ID:???
システムコール呼び出しとかで何とかならんかのう。
0238sub()03/02/04 00:03ID:rUOqBsxa
ファイルの任意の行だけ上書きする処理ってどうやるんでしょう?
一行づつループかけてマッチした行以外をTMPファイルに吐き出して
それをログファイルに上書き(>)した後、書き換えたい行を(>>)で書けば
よいんでしょうか?3日悩んでます。。。
0239nobodyさん03/02/04 00:36ID:???
>>238
死ねクソマルチ。
024017903/02/04 01:52ID:???
動いたので最終報告しようとしたら、既に答え書いてあるし。うーん
>237
の言う通り、システムコールで動きました。
0241nobodyさん03/02/04 09:32ID:???
なんだマルチか。
0242nobodyさん03/02/04 16:44ID:???
ファイルを、while (<IN>) {〜}といった記述をしないで、
一行ずつ読み込んでいく方法はないものでしょうか。

@file = <IN> といったメモリにファイル全部読み込む方法は使わず、
一行ずつ読み込んで、一行ごとに違う処理をしていきたいのです。

while の中でループ回数カウントしてifで判定しろ、なんていうのはなしで。

ファイルを一行読み込む場合、
open(IN,"$logfile");
$line = <IN>;
と、やれば出きるのはどこにでも書いてあるのですが、
2度目以降 $line = <IN> としても空でした…。

Perl は一行ごとに分けるデータ構造が身についてしまってるのがダメなのかなぁ…。
seek と read 使えばよさそうなのは解ってはいるのですが、
ベースから書き換えなくてはならず、このままの構造でなんとかできないものかと。
024324203/02/04 17:30ID:???
あ、Perl初心者スレと間違えました・・・。
あちらにいってきます。
024417903/02/04 18:53ID:???
>238 = 242 ?
まあいいや。seekとread使わないと駄目じゃない?
それなら方法が下のページの"ファイルをブロック化する" に書いてあるけど。
ttp://homepage2.nifty.com/S_HIASA/kotohazime/perlpro.htm
0245nobodyさん03/02/05 00:47ID:Rqrb27N+
CGIと言うのは、一つで思い処理をさせるのと、
分散して、複数のCGIを設置するのとどちらが良いのでしょうか?

例えば、カテゴリ別の掲示板だった場合…
bbs.cgiで10のカテゴリの掲示板を運営できるものと、
bbs1.cgiと、bbs2.cgiで5のカテゴリずつ運営する場合です。

この場合、下記の場合の方が、負荷を軽減できると感じてしまいますが
実際の所はどちらがよいのでしょうか?
0246nobodyさん03/02/05 00:48ID:k4P35St7
>>245 訂正
思い > 重い
0247nobodyさん03/02/05 00:53ID:???
>>245
そのCGIが、インタプリタによって実行されるものだと勝手に仮定すると、

普通に考えて、一度に解析されるコードの量が少ないと、負荷は減る。はず。
でも、>>245の場合、実際に解析されるもの自体は同じだと思うから、効果は無い。と思う。

分割するとしたら、読み込み用、書き込み用、メンテナンス用とか、機能別に分割する
方が、よろしい
024824503/02/05 01:03ID:Rqrb27N+
>>245です。

CGIの内容は、スレッド掲示板をいくつでも作れてしまうというものです。
書き込み、読み込み、メンテ用などは、各CGIで動作します。
このCGIシステム一つで、掲示板を50個を運営するのと、
CGIシステムを5個設置して、10個の掲示板を運営するのと…という場合です。

読み込み用のCGIがbbs.cgiだとすると、
50の掲示板それぞれ、1分間に10人がアクセスすると、
bbs.cgiを500回動作させる事になります。
0249nobodyさん03/02/05 03:24ID:CZbUch9c
Your script produced this error: chmod trapped by operation mask at ./upload.cgi line 199.

chmod 0604, "$storedir$prefix$id.$type";
0250nobodyさん03/02/05 08:29ID:???
>>248
名前変えただけで中身が同じなら負荷は変わらないでしょ。
0251nobodyさん03/02/05 10:47ID:OGgWzvAl
教えて下さい。
PHPとか、PEALとか、 JAVAとか、 ASPとかあるけど、
大きなデータベースを使ったWEBアプリケーションを作る場合、
どれが性能がいいですか?
今ASPしかやってませんが、次になにを勉強しようか
考えてます。
0252nobodyさん03/02/05 10:57ID:???
>>251
全部軽く覚えてSQL投げ比べてみるとか。

C系の言語習得してるならどれも習得に大した時間はいらないわけで。
0253nobodyさん03/02/05 11:04ID:???
>>252
といってもCじゃだめだけどな
0254nobodyさん03/02/05 11:17ID:OGgWzvAl
>>252
それもそうなのですが、当方Win2000Serverしかなく
他を試すのがたいへんなので広く知ってる方に教えて
頂けないかという少々怠慢なお願いでした...。
ちなみに同僚はPHPにすれ、と言ってました。
0255nobodyさん03/02/05 11:48ID:hzviKg6+
$race2 = 'C2十';
というデータでInternal Server Errorになりました。
とりあえず、$race2 = 'C2';
で対応しましたが、

これって、エディタの設定(sjis)が悪いんでしょうか。
それともコードでしょうか。
0256nobodyさん03/02/05 11:50ID:???
>>255
結局なんにもわかってないって事か。
025725503/02/05 12:02ID:???
わかってないといわれれば、そうなんですけど。
文字化けする文字が悪さをした、としか分かっていません。
0258nobodyさん03/02/05 12:37ID:???
何をおっしゃる兎さん
$race2 = 'C2十\';
0259nobodyさん03/02/05 12:40ID:???
>>258
'の中で\は評価されたっけか。
0260nobodyさん03/02/05 12:49ID:???
>>258
それだけじゃ何なんで、説明するわ。

シングルクォート内であっても、末尾が '\' で終わる文字は書けない。
(閉じるための ' がエスケープされてしまい、
Can't find string terminator "'" anywhere before EOF
というエラーになる)
'十' という文字は2バイト目が思いっきり '\' なので、エラーになる。

他にダメな文字は以下のとおり。

―ソЫ�\噂浬欺圭構蚕十申曾箪貼能表暴予禄兔喀媾彌拿杤歃濬
畚秉綵臀藹觸軆鐔饅鷭�x�x


ちなみにエラーを書くときは、このPerlの出すエラーを書くようにね。
Internal Server Error なんて、ヘッダの吐き忘れでも出るから意味なし。
0261nobodyさん03/02/05 12:58ID:???
まあPerlは使うなってことですな。
0262nobodyさん03/02/05 13:00ID:???
>>261
愉快な結論だな。
0263nobodyさん03/02/05 13:01ID:???
>>261
その言い方はおかしい。こう言うべき。

「まあ馬鹿はPerlを使うなってことですな。」
026425503/02/05 13:01ID:???
サンクス、皆様
026525503/02/05 13:20ID:???
馬鹿だけど、使わせてください。
おながいしますmm
026625503/02/05 13:23ID:???
でもやっぱり馬鹿だし、phpかrudyにしようかな(w
0267nobodyさん03/02/05 13:24ID:???
>>266
何使っても結局はまると思うぞ。
0268nobodyさん 03/02/05 13:32ID:/TzrVcwr
if ( length ($FORM{"number$count"}) == 0){
$num{"$str"} = 0;
}
else{
$num{"$str"} = $FORM{"number$count"};
}

とは何をやっているのですか?
初心者で厨な質問で申し訳ないです

お願いいたします
0269nobodyさん03/02/05 13:33ID:???
>>268
データがあるなら代入して無いなら取りあえず0
0270_03/02/05 14:35ID:KqDONkoE
>>268
if文の意味なしと思われ。
$num{"$str"} = $FORM{"number$count"};
0271nobodyさん03/02/05 15:30ID:???
>>270
$num{"$str"} がぬるぽになることを恐れたんだろう。
0272nobodyさん03/02/05 15:45ID:???
コンナトコロデ アブラヲウッテルトハ
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/  
 (_フ彡        /  ←>>271
0273nobodyさん03/02/05 21:06ID:tr4FI/E+
質問です。

Perlで、use IO::Socketを使って、
2chを読んで加工して表示するCGIを作っているのですが、

板自体
http://pc2.2ch.net/php/
は読めるのですが、
http://pc2.2ch.net/test/read.cgi/php/1041530204/l50
などのCGIが出力するスレが読めません。

Found
The document has moved here.

が帰ってきます。どうすれば読めるようになりますでしょうか?
ヒントでも構いませんので、よろしくお願いします。
0274nobodyさん03/02/05 21:15ID:???
Locationヘッダーが指すファイルを読む。
0275nobodyさん03/02/05 21:32ID:gt7kwXPU
激しく厨房な発言ですので注意してください

@niftyでmethod=POSTが使用できるのでしょか?
いろいろ見てはいるのですが解らなかったので
おしえてくほしいです
0276nobodyさん03/02/05 21:36ID:???
@niftyにあるサイトの掲示板の書き込みボタンでも押してみればいいじゃん・・・
027727503/02/05 21:53ID:gt7kwXPU
押しましたけど・・・わからないですよ??
0278nobodyさん03/02/05 21:58ID:???
>>277
すぐさまこの板から出てゆけ。
027927503/02/05 22:00ID:gt7kwXPU
そんなこといわないでくだされ・・・・
BBS設置できなくてこまってるんでつよ・・・
0280nobodyさん03/02/05 22:02ID:???
>>279
エラーがでないなら使えるってことだろうが。
それにCGIを許可しておいてPOSTを禁じるやつがどこにいる。
0281nobodyさん03/02/05 22:02ID:???
>>279
ニフならプロバイダ謹製のがあるんじゃないか?
POSTも分からんのならそういうの使え。
028228003/02/05 22:03ID:???
ところで、CGI専用ディレクトリにおいている?専用のURLでアクセスしている?
確か@niftyはそういう制限があったはず。
028327503/02/05 22:11ID:gt7kwXPU
281
二つひつようなもんで
専用の場所に置いて専用のURLでアクセス
してるんですが、えらーになるんですよ
028427303/02/05 23:15ID:tr4FI/E+
>>274さんありがとうございます。

2chを取得する>>273の件ですが、
Headerを取得してみたところ、

head pc2.2ch.net /test/read.cgi/php/1041530204/l50 80
HTTP/1.1 302 Found
Date: Wed, 05 Feb 2003 14:11:00 GMT
Server: Apache/2.0.44 (Unix) mod_perl/1.99_07-dev Perl/v5.8.0 mod_ssl/2.0.43 OpenSSL/0.9.6g DAV/2 FrontPage/5.0.2.2624 PHP/4.3.0RC3 mod_gzip/2.0.26.1a
Location: http://binbo8.he.net/cgi-bin/error500
Connection: close
Content-Type: text/html; charset=iso-8859-1

となってLocationに期待のものが入ってません。
GETはhostだけ渡してますが、なにかやり方がマズイのでしょうか。

0285nobodyさん03/02/05 23:29ID:???
>>284
$ telnet pc2.2ch.net 80
HEAD /php/ HTTP/1.0
Host: pc2.2ch.net

うしし。
0286nobodyさん03/02/05 23:48ID:???
素直にmonazillaに誘導した方が良くない?
028727303/02/05 23:55ID:tr4FI/E+
>>286さんありがとー
monazillaってとこに言ってきたら、read.cgiの仕様が解説してあって

print $SOCKET "GET $path HTTP/1.0\r\n";
print $SOCKET "Host: $host\r\n";
print $SOCKET "Connection: close\r\n";
print $SOCKET "User-Agent: dummy\r\n";
print $SOCKET "Accept: */*\r\n";
print $SOCKET "Accept-Language: ja\r\n";
print $SOCKET "\r\n";

したら見事読みました! 
0288nobodyさん03/02/06 06:20ID:???
質問です。よろしくお願いします。
ttp://homepage2.nifty.com/yoshi-m/makehp/free_cgi/CGI/counter/now_counter.html
↑上記のサイトにある閲覧者カウンター(現在の訪問者数を数えるCGI)の設置を
試みています。無事、設置できたのですが、同一IPアドレスをチェックする機能が
ついていないので、GOOGLEなどで検索して調べて同一IPのカウントを制限するような
改造を試みたのですが、どうにもうまくいきません。
バカな質問かもしれませんが、どなたか、どうしたら上手くいくかご教授お願いでき
ないでしょうか?
0289nobodyさん03/02/06 07:04ID:???
>>288
具体的にどうやって、どううまくいかないのかを書いてくれないと。
1から10まで手取り足取り教えてもらえると思ったら大間違いだよ。
0290nobodyさん03/02/06 08:54ID:???
>>288
1から10まで手取り足取り教えてほしければこちらへ

【 スクリプト改造工房 PART 5 】
http://pc2.2ch.net/test/read.cgi/php/1028193595/







やってくれる人がいるかどうかはしらんが。
0291nobodyさん03/02/06 12:48ID:???
perlで掲示板組んでます。
いまいちわからないんですが、例えばフォームのvalueで指定した文字(変数?)は
$変数名にそのまま反映するんでしょうか?

初歩的なことを聞いてスマソです。
誰か教えて下さい〜。。もう一人じゃだめぽ。。
0292nobodyさん03/02/06 13:02ID:???
>>291
されない。
0293nobodyさん03/02/06 13:10ID:???
>>291
君にはPHPをすすめる。
0294nobodyさん03/02/06 13:58ID:???
最近はされんけどなw
029529103/02/06 14:09ID:???
>>292
>>293
>>294
されないんでつか。。(・ω・;)
返答ありがとうございました。
0296nobodyさん03/02/06 17:08ID:???
CGI.pmで、こういうのがあったぞ。

IMPORTING ALL PARAMETERS INTO A NAMESPACE:
$query->import_names('R');

This creates a series of variables in the 'R' namespace.
For example, $R::foo, @R:foo. For keyword lists, a vari-
able @R::keywords will appear. If no namespace is given,
this method will assume 'Q'. WARNING: don't import any-
thing into 'main'; this is a major security risk!!!!

最後の1行は、つい最近までPHPのデフォルトの動作だった。
PHPはそんなもんなんだよ。
0297nobodyさん03/02/06 21:19ID:s4S7/zxS
常日頃からパソコン(またはサーバー)で短い時間ごとにメールを受信させ、
そのメールの中身を解析して適切な答えを返す&HTML生成してくれるものは
ありますか?
0298(=`ェ´=) ◆9rperl5mn2 03/02/06 21:28ID:???
>>297 AI搭載?
0299nobodyさん03/02/06 21:36ID:s4S7/zxS
いえいえ、初歩的にOutlookExpressとかで「○分おきに送受信」でもいいです。
0300(=`ェ´=) ◆9rperl5mn2 03/02/06 21:47ID:???
>>299
単に定期的にメールを受信させるだけ?
CGIと関係あるのかな・・・
0301nobodyさん03/02/06 21:49ID:???
>>300
ないと思われ
ブラウザで出力→CGI、という短絡的な考えなんでしょ

ところで300おめこ
0302nobodyさん03/02/06 21:55ID:s4S7/zxS
受信させる方法については>>299でもいいが、
肝心なのはその後で、自動に受信したメールの本文を自動に解析し、
適切な答えを返信する&HTML生成してくれるものを探しています。
0303nobodyさん03/02/06 22:06ID:???
「適当な」っていうのが、フレーム問題が発生しそうな課題ですな。
0304nobodyさん03/02/06 22:07ID:???
>>302
探しています……って、そういう目的ならスレ違いだよ。
0305nobodyさん03/02/06 22:23ID:s4S7/zxS
ご指摘どおり、スレを変えました。
アドバイスありがとうございます。

http://pc2.2ch.net/test/read.cgi/php/1041564353/266-
0306nobodyさん03/02/08 14:13ID:P3EB+0+g
CGIというか、場合によってはHTMLやブラウザの問題なんですが、
以下のような仕様は有名なものなのでしょうか?

あるページAではフレームを切って、
Bという、CGIで作られたサイトを(Aの一部に)表示している。
この時、Bに渡される環境変数HTTP_REFERERは、Perl式で書くと
Win IE6では$ENV{'HTTP_REFERER'}はAのURL。
Mac IE5では$ENV{'HTTP_REFERER'}はundefined。

なぜWinとMacで違うんでしょう。RFCとかでは既定されてないのかな。
0307nobodyさん03/02/08 14:28ID:n3LLA3DF
http://bbs.1oku.com/bbs/bbs.phtml?id=yasuko
★もうすぐ春ですよ★
0308nobodyさん03/02/08 21:48ID:???
>>306
そんなのブラウザに実装によるだろう。諦めろ。

つうかフレームを使うページは(略
0309nobodyさん03/02/09 00:27ID:???
@t = split(/ /, join(/ /, ("1","2","3")));
print $#t;

とすると2ではなくて0と表示されるのは普通?
漏れの環境がオカシイの?
半角スペースでjoinすると、ぴっちり繋がるもんなん?
031030903/02/09 00:39ID:???
スマソ、joinの第一引数は""で囲む、普通の文字列ですた。
0311nobodyさん03/02/09 00:41ID:???
>>309
@t = split(/ /, join(' ', ("1","2","3")));
print $#t;
0312nobodyさん03/02/09 03:56ID:???
ローカル環境のperl.exeが勝手に消滅してるみたいなんだけどなんでかな?
削除した覚えはないのだが??

今までCGIのチェックに使ってきて何の問題もなかったんだけど、不思議。

つい2,3日前までanhttpd使ってて、今日PHPをapacheのモジュールで
動かしてみようとwindows用のapache(以前入れて放置してあった物)を
いじってたらperl/CGIが動かない。
PHPは正常に動くのになんでかな?と思いつつ、パス関係かなとperl.exeを
探したら??無い。あれ?って思ってanhttpdを起動したら昨日まで異常なかった
Perl/CGIがエラーに・・・。
なんでじゃ〜?不思議でしょうがない。こんな事ってあるんだろうか?
0313nobodyさん03/02/09 04:01ID:???
私もPHP入れたらPerlがおかしくなった事あったけど
私の場合は削除はされてなかったんで、パスの指定し直したら直った。
まぁ、Perl再インストールすれば大丈夫じゃないの?
ついでに最新版確認してきてね。
0314nobodyさん03/02/09 04:55ID:???
うちはAN HTTPDで使ってるけど、PHP入れても別におかしくはなってないよ。
ちなみに他ディレクトリで解凍してから、C:\php にコピーして設定という方法で
インスコした。
0315nobodyさん03/02/09 05:32ID:???
>>314
同様の環境。
ただし、perlとphpは同じドライブに入ってないけどw
0316nobodyさん03/02/09 23:57ID:Xc8YBGxY
質問です。
今までPerlでCGIやってたんですが、C言語でCGIを動かそうと思ってます。
色々サイト巡ってとりあえずCygwinをインストールしました。
しかし、Apacheの設定がどうしても分かりません。
Windows+ApacheでC言語のCGIを動かすための説明があるサイト等、
紹介してもらえないでしょうか。
0317nobodyさん03/02/09 23:59ID:???
>>316
拡張子無しを実行条件にしたらどうだい?
0318nobodyさん03/02/10 00:05ID:???
>>316
Perlで書いたものが動けば問題なく動くはずだけど。

コンパイラはcygwin上のgccよりもVC++やBCCの方がいいと思う・・・
0319nobodyさん03/02/10 00:18ID:VClzLIdP
レス多謝です。

>>317
すみません、不勉強なもので意味が分かりませんでした;
差し支えなければ、もう少し具体的に教えて頂けないでしょうか。

>>318
あ、そうだったんですか・・・(恥
BCCはC言語の勉強に前から使ってたんですが、
どうやってCGIとして動くようにすればいいのかが分からず・・・
gccだと gcc -o test.cgi test.c みたいに実行するようなこと書いてあったんですが
BCCの場合はどうすればいいんでしょうか。
0320nobodyさん03/02/10 00:23ID:???
>>318
bcc32のオプションが分からないから答えられないけど、できあがった実行ファイルの拡張子を.cgiにすればよいのでは?
0321nobodyさん03/02/10 00:27ID:VClzLIdP
>>320
printf("Content-type: text/plain\n\n");
printf("Hello, World!");
をBCCでコンパイルし、.cgiにリネームしてウェブ鯖で実行したところ、
ダウンロードダイアログが開いて、
落としたのは「Hello, World!」と書かれたテキストファイル.cgiでした・・・
何故ブラウザで開かれないんでしょうか・・・
0322nobodyさん03/02/10 00:28ID:???
>>321
>printf("Content-type: text/plain\n\n");
原因。
0323nobodyさん03/02/10 00:28ID:???
>>321
Perlで同じようなものを作ったときは問題なく表示されるの?
0324nobodyさん03/02/10 00:32ID:???
ああぁぁぁぁぁああっ
すみません、書き込み直後気付いてtext/htmlにしたらちゃんと出来ました。。
皆さんどうもありがとうございました!
0325nobodyさん03/02/10 00:34ID:???
>>323
はい、Perlだとtext/plainでも表示されたんで、すぐに思い付けませんでした。。。
0326nobodyさん03/02/10 00:34ID:???
text/plainなら大抵の環境でプレーンテキストとして開かれると思うけど^_^;
0327nobodyさん03/02/10 00:35ID:???
>>325
そういう部分は言語によらないはずだよ。
打ち間違わなかった?
032832503/02/10 00:44ID:???
打ち間違いは多分無いと思いますけど・・・
手持ちの「Per;/CGI入門教室」とか言う本も、
最初のとこはtext/plainでやってます。。。
0329nobodyさん03/02/10 03:21ID:???
>>328
ブラウザの仕様だと思われ。
IEではダウンロード、NN7,OPERA,Lynxだと表示。
0330nobodyさん03/02/10 04:33ID:???
>>329
でもPerlではならないって言っているよ。
打ち間違いとしか思えない・・
0331nobodyさん03/02/10 11:46ID:???
MIMEタイプをプレーンテキストにすると、ダウソになることあるよ、perlでも。
0332nobodyさん03/02/10 18:34ID:???
2つのperlファイルがあるんですけど
両方とも1つのcgiを改造して作成しました。

それをローカルでテストすると上手く動くのに
サーバーにアップしたら片方はエラーで動かないんです。

もちろん1行目やパーミッションも同じように設定してます。
何が原因なんでしょうか・・・。
0333nobodyさん03/02/10 19:06ID:???
>>332
それだけで分かれというほうが無理だろ……
0334nobodyさん03/02/10 23:02ID:???
>>332
>もちろん1行目やパーミッションも同じように設定してます。

むしろそれが原因ではないのかと。
033531203/02/11 01:19ID:???
>>312でperl.exeが消滅した件ですが、理由がわかりました。
消滅する前にとあるソフトをインストールしたんですが、そのとき
インストールする前にインストーラーの
「インストールが完了していません。続けますか、やめますか?」
のエラーダイアログが出てそのメッセージをキャンセルしたんですよ。
それがactive perlをインストールした時のものだったわけです。
つまり、前のactive perlが完全にインストールされてなくて、
(インストール時にPCが固まったか何かで)半端なまま使ってたって事です。
それでインストールをキャンセルしたために、使ってたperl.exeが削除
されてしまったって事ですな。
033631203/02/11 01:24ID:???
と言う訳でactive perlを再インストールして解決しました。

>>313
バージョンは5.6.1 build 633 と5.8.0 build 804 ってのが
あったんですが、違いがよく分かんないのでどっちでもいいやって
事で5.8.0 build 804 の方をインストールしてみました。
http://www.activestate.com/Products/Download/Download.plex?id=ActivePerl
0337nobodyさん03/02/11 22:44ID:VNfk5QCU
DBと連携するCGIがあるんですけど、
今度セキュリティレベルを高める、という話になりました。
で、やりだまに上がったのがCGIのファイル中に記述してあるDBユーザ/パスワード。
これを別ファイルにするとか言ってるんですけど、意味あるんでしょうか??
皆さんは、こういう場合どうやってますか?
教えてくださいませ。
0338nobodyさん03/02/11 22:50ID:???
>>337
別ファイルにして、それを外部から参照できない場所(ドキュメントルートより上位)に
置けばいいんでない?
0339nobodyさん03/02/11 23:07ID:VNfk5QCU
ようわからんのですが、cgi-binの中なんて普通参照できないですよね。
それともできちゃうもんなんですかね?
0340nobodyさん03/02/11 23:17ID:???
>337
たとえば、SuEXECを導入しているとすると意味がある。
実行ファイル *.cgi のパーミッションは701にして、
それ以外の *。pl などは600にする。DBに渡すパスワードとかはこの*.plの方に記述しておけば、
ゲストユーザーからは*.plを実行したり読み出したりする権限はないので、
セキュリティは保たれる。
034133703/02/11 23:50ID:VNfk5QCU
なるほど。
よく理解できました。ありが�d
0342さ迷える子羊03/02/12 02:22ID:???
地域サイトを作成して、そこのメール会員を募集し
毎週メールを送ることになりました。
サーバは専用cobaltRAQ4でWEBと併用、言語はPerlなのですが、
下記のように考えております。
自分のいくつかあるメールアドレスに計2000通とか送って実験したのですが
結構時間がかかります。
効率のよい方法はありませんでしょうか?
qmail,Postfixにするとかではなく、あくまでもperl内で。

for(@member){
会員の情報をげっと = split();
$mail = ヘッダと内容を作る;
&jcode::convert(\$mail,"jis","sjis");
if( !open(MAIL,"|$sendmail -t") ){ &error('sendmail'); }
print(MAIL $mail);
close(MAIL);
}
0343nobodyさん03/02/12 03:58ID:???
perl内で出来ることなんて無いんじゃないかな。
できても微々たるものかと。
大きそうなのはconvertくらい?

qmailやpostfixが嫌ってことは、sendmailでやりたいってことでいいのかな?
smtpfeedとかいうのがあるから調べてみるといいかも。
0344さ迷える子羊03/02/12 13:23ID:???
>>343 さんレスありがとうございます。
qmail、postfix、smtpfeed等ですが嫌いなわけではないのです。
専用サーバなのにsuを頂けない状態なので、
インストールは「お金を払って頼む」しか手段がありません。
以前ImageMagick入れてもらうだけで10万近くかかりました。
ですので、ソフトのインスト−ルは見合わせております。
個人のお金ではないのですが、ちょっと高すぎて躊躇します。
0345nobodyさん03/02/12 15:43ID:???
>>342
> if( !open(MAIL,"|$sendmail -t") ){ &error('sendmail'); }

自力で SMTP 喋るようにすれば、少なくとも sendmail を
立ち上げる負荷は無くなる。
Socket.pm (Perl の標準モジュール) くらいはサーバにも
入ってるだろ?
0346さ迷える子羊03/02/12 16:03ID:???
>>345
ご教授ありがとうございます。早速調べて見たいとおもいます。
0347nobodyさん03/02/12 22:50ID:???
>>345
絶対Socket=SMTPライブラリ・・・いや、メール送信ライブラリと勘違いしてるぞ。
0348nobodyさん03/02/13 00:10ID:???
>>347
?
0349nobodyさん03/02/13 05:10ID:???
>>347
Socket使って自力(sendmailに頼らずに)でやれという意味だと思うけど。
0350nobodyさん03/02/13 08:45ID:???
>>349
わかってる。それを>>346は>>347だと勘違いして今頃失望している頃だろうと言っている。
035134603/02/13 13:58ID:???
use Socket使ってやるのではないのですか?
PORT番号を取得してソケット生成して・・・・・
って、あまりまだ調べてないのですが。
0352nobodyさん03/02/13 15:26ID:???
>>351
その方向で合ってるよ。
ちなみに SMTP のポート番号は通常 25。
詳しくは RFC 2821 な。
ttp://www.puni.net/~mimori/rfc/menu.html
0353nobodyさん03/02/13 16:42ID:???
>>350
ならば「誰が」を省略するなよ。紛らわしい。
0354nobodyさん03/02/13 17:41ID:???
読み手の読解力が無いだけでしょ
0355nobodyさん03/02/13 20:59ID:???
>>353
禿同
>>354
どっちにもとれるだろ。読解力ないの?
0356nobodyさん03/02/13 21:20ID:???
>>355の中の人も大変だな。
0357nobodyさん03/02/13 21:25ID:???
>>355
文脈から推測する力も無いのか・・・
哀れだ
0358nobodyさん03/02/13 21:32ID:???
プログラムの前にまず国語からはじめような。
0359nobodyさん03/02/14 03:36ID:???
>>357
文脈から推測してもどちらとも取れるが。
0360nobodyさん03/02/14 03:36ID:???
>>346
IO::Socket便利だよ。

でもPerlの方が重い予感。
専鯖ならともかく、共有鯖だったらやんないでね。
0361nobodyさん03/02/14 03:37ID:???
「勘違いしてるぞ。」が「勘違いするぞ。」ならば分かるが。
0362344=34603/02/15 04:08ID:???
>>360
さらなる情報ありがとうです。後日調べたいと思います。

>専鯖ならともかく、共有鯖だったらやんないでね。
明記の通り専用サーバですのでガンガンメール送ってみたいと思います。
ってほど会員増えないと思いますけど。
ちなみに戦闘力調べたら、1分で250通前後でした。
しかしながら4種類のメールに対して複数送っているので、
実際はそれ以下か・・・・・(´・ω・`)ショボーン
0363nobodyさん03/02/15 07:53ID:???
>>359,>>361
代弁ありがとう。
0364nobodyさん03/02/15 09:31ID:???
下らない論争で随分消費してますね(´ё`)
0365nobodyさん03/02/15 11:10ID:???
>>364-365
その筆頭。
0366nobodyさん03/02/15 13:04ID:WKdky/xD
read.cgiって何ですか?
0367nobodyさん03/02/15 14:20ID:PUb1GMYC
掲示板を作っています。
書き込みをユーザーが削除できる機能を作っていますが上手く行きません。
sub delete{
local($no,$name,$email,$dai,$comment,$date,$ip,$host,$pw);
if($in{'no'} eq '' || $in{'pwd'} eq ''){&error("パスワードまたは削除Noが記入漏れです");}

open(IN,"$logfile")||&error("ファイルを開けませんでした");
flock(IN,2);
@data = <IN>;
close(IN);
$flag=0;
@new=();
foreach(@data){
($no,$name,$email,$dai,$comment,$date,$ip,$host,$pwd) = split(/<>/);
if($in{'no'} == $no){$flag=1; $PWD=$pwd;}
else{push(@new,$_);}
}
if($flag == 0){&error("該当する記事がありません");}
if($PWD eq ''){&error("その記事にはパスワードが設定されていません");}
$match = ("$in{'pwd'} = $PWD");
if($match ne 'yes'){&error("パスワードが違います");}
open(OUT,">$logfile")||&error("削除に失敗しました");
flock(OUT,2);
print OUT @new;
close(OUT);
}
何処が悪いかご指摘をお願いします…
0368nobodyさん03/02/15 14:24ID:???
>>367
正直、読めというのか。そのインデントも減った暮れもないコードを。

どこがうまく行ってないかくらい自分でもわかるだろ。その辺を分析してエッセンスだけを提示してくれよ。
0369nobodyさん03/02/15 15:47ID:???
$match = ("$in{'pwd'} = $PWD");
if($match ne 'yes'){&error("パスワードが違います");}


if ( $in{'pwd'} ne $PWD ) { &error( "パスワードが違います" ); }
0370nobodyさん03/02/15 21:49ID:???
まあまあ。インデントはHTMLの都合上、省略されたりしてうまく表示できないわけだから
しょうがないよ。
でも「上手くいきません」は勘弁な。どう上手くいかないのかを必ず書くこと。
こういう動作を期待していたが、いざ実行してみるとこんな動作をしてしまった、みたいに
書ければとてもいい。
0371nobodyさん03/02/15 22:02ID:???
いやもう、必ず「パスワードが違います」と言われちゃうんだろ?
>>369を参考にな。
0372nobodyさん03/02/15 22:23ID:???
おまえら優しすぎ。
0373nobodyさん03/02/15 22:46ID:bgMyjtsw
CGI(perl)が動かん。OS Win2000。DOS窓なら動くってのにブラウザではびくともしない。けっ
ActivePerlをインストールしてHttpdを入れた。Httpdはドキュメントルートと実行プログラムの位置とかなら設定したけど、他のごちゃごちゃしたところとかはいじってない。
プロパイダはYahoo!BBを使ってる

heloo World!っていうのを表示する簡単なcgiで、ソースは、
#!/usr/local/bin/perl

print "Content-type: text/html\n\n";
print "<HTML><BODY>\n";
print "<H2>Hello! WORLD</H2>\n";
print "</BODY></HTML>\n";
なんだが。これをブラウザでローカルテストするとHTTP 500 - 内部サーバー エラー になるんですが(´ー`)? 一体原因はどこよ?
0374nobodyさん03/02/15 22:49ID:/6YfHvht
/usr/local/bin/perlにPerlが置いてないとか
"Content-Type"とか
0375nobodyさん03/02/15 23:07ID:???
その"Httpd"の名前を具体的に書けよ
0376nobodyさん03/02/15 23:09ID:???
500か
じゃあウェブサーバーの問題ではなさそうだな。

多分>>374のどれか。たとえばActivePerlは標準では\usr\local\binにはインストールされない。
0377nobodyさん03/02/15 23:24ID:???
>>374
「Content-Type」の大文字小文字は問われません。

>>373
CGIでPerlを呼ぶ設定にしてある?
037837303/02/15 23:41ID:bgMyjtsw
>>374
perlの位置はC:\Perl\bin\perl.exe から C:\usr\local\bin\perl.exe に直した。
それと同時にHttpdの設定も変更したけど意味無し

>>375
AN HTTPD Daemon Version 1.42

>>377
>>373以外にやることありますかね(´ー`)?
0379nobodyさん03/02/15 23:55ID:???
>>373

拡張子CGIファイルでPerlを実行するように設定しておけば
一行目に関係なく動く(かもしれない。)

そうしていないなら一行目の
#!/usr/local/bin/perl

を#!C:\usr\local\bin\perl

にすればうごく(かもしれない)
0380飛石3連休 ◆8772606082 03/02/16 00:00ID:???
ANHTTPDの設定でPerlへのパスがあってれば、
スクリプト内部の #!/usr/local/bin/perl
をチェックしない設定がないかい?
CGIファイルの拡張子は?
0381飛石3連休 ◆8772606082 03/02/16 00:02ID:???
追記
CGIをチェックする
という設定を使えばエラーがどこで出てるかわかると記憶があるが。
0382nobodyさん03/02/16 00:10ID:???
もちろん一般パスで使う設定にしてあるよね?
038337303/02/16 00:49ID:51g/G1ig
>>379
動かん

>>380
設定の位置はなんとなく分かった・・でも動かん。
拡張子は.cgi
.plにしても動かんよ?

>>381
検査結果:
Error 500
CGI エラー - CGIを実行できません : だそうだ

>>382
してあるよ?

自分としては、いろいろやってみてできなかったし、YahooBB関係じゃないかと思うのだが・・
それともやっぱりソースとか設定とかが原因ですか(´ー`)?
0384nobodyさん03/02/16 00:54ID:???
バージョンは正確にいうと何だ?
最後のアルファベットも含めて。
0385nobodyさん03/02/16 00:56ID:???
そういえば最近AnHTTPdってCGIがうまく動かないというバグがあったね
0386nobodyさん03/02/16 00:56ID:???
>>373
ローカルで動かそうとしてんじゃないの?なんでYahooBBが。

AN HTTPD と ActivePerl の組み合わせなら kent のとこでも参考に
ttp://www.kent-web.com/www/index.html
0387nobodyさん03/02/16 01:00ID:???
kentだって、プ
0388nobodyさん03/02/16 01:13ID:51g/G1ig
>>384
1.42g

>>386
知り合いが何かそう言ってたんだよ!知るか。

とりあえず今から386のサイトに飛んできます
0389nobodyさん03/02/16 01:29ID:51g/G1ig
逝ってきた。が、やはり動かん
細かいとことかでもいいんで何かあれば言ってください。お願いします
0390nobodyさん03/02/16 01:35ID:???
386のサイト
http://homepage1.nifty.com/monden/cpu/386.html

ちなみに、ActivePerl+httpdを設定無しで
例のhelioWorldを動作させたがきちんと表示されたよ。
両方とも再インストールでどう?
0391nobodyさん03/02/16 01:47ID:51g/G1ig
今日はもう気力が無いのでまた明日で
0392モモコ03/02/16 03:35ID:???
英語用のアンケートCGI探してます。
レンタルCGIでお願いします。
どなたかご存知ですか?

0393nobodyさん03/02/16 06:28ID:???
>>392
スレ違い。
0394nobodyさん03/02/16 10:01ID:0jPHodHR
byte表示を�`バイト表示にしたいんですがどうすればいいでつか?
たぶん$size / 1024を使うとは思うんですが書き方がわかりません
0395nobodyさん03/02/16 10:12ID:???
>>394
>たぶん$size / 1024を使うとは思うんですが書き方がわかりません

答えでてるじゃん。
0396nobodyさん03/02/16 10:30ID:0jPHodHR
$kzyte=ってかくんでしょうが細かいとこがよくわかりません。。。
0397nobodyさん03/02/16 14:39ID:???
>>396
Perlだとして、

print ($size/1024), "イ�`バイト";
039837303/02/16 15:30ID:51g/G1ig
win2000の再インストールをしてき増
0399nobodyさん03/02/16 15:45ID:???
>>398
まだ出来ないのか。がんがれよ

AN HTTPD でどうしてもできないなら Apache のほう使うのもいいかもね
設定のしかたが難しい印象があるかもしれんが、解説ページを1つ紹介しとく
ttp://www2j.biglobe.ne.jp/~apollo/server/server.html
0400nobodyさん03/02/16 15:49ID:PVMDa3kD
あふぇ
0401nobodyさん03/02/16 15:54ID:HkwUW3eX
http://f-cc.com/~momonga/
040237303/02/16 17:16ID:51g/G1ig
さて、再インストールも終わったところで399の解説ページでも見てくるかな
040337303/02/16 17:44ID:51g/G1ig
まあその前にもう一度ActivePearlを入れなおしてみようとしているわけなんだが、
インストールする位置はどこがいい?
標準ではc:\perl\になってるわけだが、これでもいいのか(´ー`)?
0404nobodyさん03/02/16 17:44ID:???
>>403
どこでもいいよ。
0405nobodyさん03/02/16 17:54ID:???
>>403
貴様漏れの紹介したページ読んでないですか?
たしかに>>404の言うとおりどこでもいいんだけど、ローカルでテストしたあとは
サーバーにアップロードするんでしょ?そのときいちいちスクリプトの一行目の
Perlのパスを書き換えないでいいように、サーバーの設定とそろえておくほうがいい。
そのへんのフォローも書いてるから>>399のサイトを読みながらインストールしてみ
040637303/02/16 18:08ID:51g/G1ig
成功した!皆さんほんとにありがとう!
再インストールして良かったよ。疲れたけど

>>405
どもどもすみませぬ。399のとこにはお世話になりますた。
非常に感謝しておりますです。はい。

これからたくさんやりたいことがあるので、
いろいろと勉強してがんばりたいです。それじゃ。
0407nobodyさん03/02/16 19:12ID:y0NHKpEd
>>1なんで最後に〜.cgiってつけなくちゃ駄目なんですか?
0408nobodyさん03/02/16 19:42ID:???
>>407
拡張子がcgiなら取りあえず実行してくれ。

って言う設定になってるからですよ。httpサーバが。
0409nobodyさん03/02/16 20:44ID:???
>>407
サーバの設定をいじれば.unkoでも.chinkoでもできる
0410nobodyさん03/02/18 00:15ID:FF7juywa
ageとく。
0411nobodyさん03/02/19 03:48ID:???
>>407
httpd.conf の中にありまふ
.cgi で検索してると出てくるよ
AddHandler cgi-script .cgi
て具合に
0412nobodyさん03/02/19 04:11ID:vr421/dJ
メールフォームで、SSLページから受信した内容を、
PGPなんかで暗号化してメールを受信出来るようなCGIとか
ありませんかねぇ。。

SSLからそのまま平文メールだと意味無いんで・・・・・

フリー&シェアウェア&市販、どれでもいいんですが、
自鯖で使えるやつを探してます。


0413nobodyさん03/02/19 04:32ID:oWKZ/weY
>>412
他のスレと勘違いしてねぇか?

こんなCGI探してますスレッド Ver8
http://pc2.2ch.net/test/read.cgi/php/1041564353/
0414nobodyさん03/02/19 04:42ID:???
Webサーバ=Apacheと決めつけている厨房がいるスレはここですか?
0415 ◆s/jp/vus/g 03/02/19 04:44ID:???
SSL mailform
↓暗号
SMTP
↓非暗号=マズー
POP3

ここで聞く
http://www.kikakuya.com/service/eEgg79/option_pgp.html
0416 ◆9Vl0N4X/ag 03/02/19 04:51ID:???
俺ってやさしすぎ・・・かな
http://www.gnupg.org/
http://hp.vector.co.jp/authors/VA019487/
0417 ◆nBdXIOeCFk 03/02/19 15:55ID:iFOkWU9W
とりあいずCGIファイル(カウンタ)を作ってみたんですが、
そのファイルを開くと、
「ファイルを開くアプリケーションを選んでください」
になってしまいます、どのアプリケーションで開けば良いのでしょうか?

0418nobodyさん03/02/19 16:14ID:???
>>417
向こうのスレの質問を取り消してきなさいな。
マルチと言われますよ。
0419nobodyさん03/02/19 17:10ID:???
>>418
どっちにしろどこに行っても結果は同じ機がする。
0420nobodyさん03/02/19 19:14ID:???
>>413
スマソ。スレ間違いでした。逝ってきます!
0421nobodyさん03/02/19 19:45ID:???
「ずるぽんあぷろだ」の
formの部分を他のwebページに貼って
そこから投稿しようとしたんですけどできませんでした。
おそらく外部からの投稿を禁止してるんだと思います。
どの辺を弄ればよいのかご教授いただけないでしょうか?
0422nobodyさん03/02/19 19:46ID:dIKdV7ST
あげ忘れましたすいません。
0423 ◆s/jp/vus/g 03/02/19 19:48ID:???
そのcgi知らないけど、$ENV{'HTTP_REFERER'} 辺りを削る。
0424nobodyさん03/02/19 19:56ID:???
>>423
ありがとうございます。
$ENV{'HTTP_REFERER'}
↑これを探してなかったんで質問させていただいたんですが、
今、もう一度検索しなおしてみたところ似たような部分がありましたので
解決できそうです。
ありがとうございました。
0425417 ◆nBdXIOeCFk 03/02/19 22:05ID:qxP6cynE
http://tohoho.wakusei.ne.jp/wwwcgi6.htm

このHP見ましたが英語でわかりません、

住民の方詳しくお願いします。

WIN98です
0426nobodyさん03/02/19 22:08ID:???
>>425
出て行け。迷惑だ。
0427nobodyさん03/02/19 22:12ID:???
>>425
中学校に入ると、英語を習うので、そうしたら読んでみるといいでしょう。
今すぐ読みたいなら、お母さんに英語教室に通わせてもらうと良いでしょう。
0428常時sage ◆s/jp/vus/g 03/02/19 22:20ID:???
>>425 にオススメ => http://www.eccjr.co.jp/
0429nobodyさん03/02/19 22:39ID:???
ハードディスクにあるjpgやpngの画像ファイルの縦と横の長さをサーバーサイドで取得するにはどうすればいいのでしょうか?
0430nobodyさん03/02/19 22:47ID:???
>>429
GDとか使うか自分で解析するか。
画像サイズって大抵ヘッダにあるから簡単なファイル操作で取得出来るよ。
043143003/02/19 23:03ID:???
>>430
GDとかヘッダで検索してみてわからなかったらまたお願いします。
0432まちがえました42903/02/19 23:04ID:???
でした。
0433nobodyさん03/02/20 00:02ID:???
>>430
おい、>>429は、
鯖から接続してきたクライアントのハードディスクの中身を抜こうとしてるんじゃないのか?
それができる前提で質問をしてないか?
0434nobodyさん03/02/20 00:17ID:???
>>433
そうなの?サーバのHDDもしくはファイルアップロードで画像をアップロードさせる前提だと思ったよ。

まぁ、いずれにしても俺のアドバイスがクラッキングに役立つとも思えんけど。
0435417 ◆nBdXIOeCFk 03/02/20 00:58ID:ESnUqnD0
結局みんな詳しくは判らないのね、、、

0436nobodyさん03/02/20 01:03ID:???
>>435
うん。だから、きみが、がんばって、ほんやくして、ぼくたちに おしえてよ。
0437nobodyさん03/02/20 01:15ID:???
>>435
これ買って勉強してください。
http://www.amazon.co.jp/exec/obidos/ASIN/4839904308/ref%3Dbr%5Flf%5Fb%5F7/250-8992305-8523460
0438nobodyさん03/02/21 02:57ID:+apCT8OA
「$msgが半角スペースと全角スペースじゃなかったら$msgをprint」というのを

print "$comment\n\n" if($comment ne (" " || " "));

と書いたんですが、
どうやら、ここが原因で動かないようになってしまいました。
真夜中ですがどなたかいらっしゃいましたら、ご教授して頂けないでしょうか?
0439nobodyさん03/02/21 02:59ID:???
× $msg
○ $comment

ですた。
0440nobodyさん03/02/21 03:06ID:???
寝る前なんで適当に。
(' ' || ' ') が先に評価されて、それと$commentが比較されるからじゃないかな。
$commentと' '、$commentと' 'のそれぞれを比較して || しましょう。
0441nobodyさん03/02/21 03:07ID:p5R52YmN
>>438
これだと、if文で最初に評価されるのは、(" " || " ") この部分になるのでは?

if ($comment ne " " && $comment ne " ")

これでどうよ?
・・・間違ってるかもしれんけど。
044244103/02/21 03:08ID:???
>>440
あら・・・かぶった・・・
スマソ
044343803/02/21 03:19ID:???
直しまりました。ありが�dですた。
寝る前にこんな単純すぎるミスの質問で申し訳ないです。
おやすみなさい。
0444nobodyさん03/02/21 17:39ID:???
ちょいと教えてください。
CGIから他のサーバにあるhtmlをゲットしようとしているんですけど、
例えば ttp://pc.watch.impress.co.jp/docs/2003/0221/kaigai01.htm ならば
pc.watch.impress.co.jpにソケット繋いで GET /docs/2003/0221/kaigai01.htm HTTP/1.0 で
取得できるんですが、同じようにしても取得できないサーバがあるんです。

その取得できないサーバはDDNSを使っているのですけど、これが原因でしょうか?
0445nobodyさん03/02/21 20:18ID:???
>>444
例えば2ちゃんねるってHost:ヘッダ要素がないと取得出来なかったりするけど。
HTTP1.1で必須なんだっけか?忘れたけど。
044644403/02/21 20:41ID:???
>>445
おかげさまで取得できるようになりました。
404が返ってきていたので原因は別にあると思っていたんですけど、
試しにHTTP/1.1にしてみたらできました。
0447nobodyさん03/02/23 22:39ID:BpzQ/pnE
Windowsで、メールを送信するプログラムのローカルテスト環境を作ることってできますか?
0448nobodyさん03/02/23 22:53ID:???
すみませんが、調べてもどうしても判らなかったので教えて下さい。

全角のアルファベットを全て半角に置き換える場合、どのようにしたら
よいのでしょうか。

$zenkaku =~ s/A/A/g;

とやれば一文字だけはできますが、これを複数に適用する記述が
判らないのです。素人質問だとは思いますが、どなたかご回答を
お願いします。
0449nobodyさん03/02/23 22:55ID:???
>>447
http://www.google.com/search?q=Windows+%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB+%E3%83%A1%E3%83%BC%E3%83%AB+%E9%80%81%E4%BF%A1+&hl=ja&lr=lang_ja
0450nobodyさん03/02/23 22:59ID:???
>>448
Perlでの話なら
http://www.din.or.jp/~ohzaki/perl.htm#JP_Z2H
045144803/02/24 00:03ID:???
>>450
どうもです!お陰さまであっさり解決できました。
045264503/02/25 08:55ID:???
先日掲示板を発動させたのですが、、
書き込みをすると↓下記のような文字が
掲示板の書き込みフォームの上に勝手に掲載されちゃうんです(ToT)
いろいろ調べて試してみたのですが、自分ぢゃ解決できませんでした。。
なにか思い当たる節や、解決方判る方いらっしゃいましたら宜しくお願いします

Content-Length: 3314 Set-Cookie: kemokemo00=UserID:1046126357219106173157,
Name:キョドっち,Email:,Url:; expires=Friday, 25-Apr-2003 22:39:17 GMT; path= Location:
ttp://members.tsukaeru.net/jenny/chabo.cgi?p=1&v=5&n=%83L%83%87%83h%82%C1%82%BF

0453nobodyさん03/02/25 10:37ID:1K3y7TR8
>>452
フォーム付近を読んでみれば?
そもそも、それだけの説明で分かるとでも思っているのか?
0454nobodyさん03/02/25 11:54ID:Py/Ha9JO
http://genesis.vis.ne.jp/cgi/bbs/topics_board/
ここのFAQcgiを設置しようとしてるんですけど、長い文を投稿すると書き込めないんです。
文字数無制限に投稿できるようにしたいんですけど、
どこを変えればできますか?
よろしくお願いします。
0455nobodyさん03/02/25 13:10ID:???
>>452
思い当たる節 = つかえないNETだからだよ。
解決方 = ヘッダーはContent-typeを最後に出力するように。
0456nobodyさん03/02/25 17:24ID:???
>>454
エラーが出るのか否か?
エラーが出るならばエラーコードを書いてみよ。
0457nobodyさん03/02/25 17:40ID:Ep506vrC
>>454
それ昔設置してみたことあるけど、
文字数制限なんてなかったような気がするぞ?
0458マリモーマ ◆r6PDGT6Xd2 03/02/25 18:03ID:JgDR1Phl
>>252
ヘッダーを 2回表示してると 思われ
0459マリモーマ ◆r6PDGT6Xd2 03/02/25 18:04ID:JgDR1Phl
間違い >>452 だった
0460nobodyさん03/02/25 19:19ID:???
CGI使う環境って小規模だよね?
だれかWEBアプリ使ってる香具師いる?
046145403/02/25 23:28ID:ohvUuxZB
>>456
エラーはでません。長文だと反応がありません。
文字数を減らすと書き込めます。

>>457
そうなんですか。
なんでだろ〜
0462nobodyさん03/02/25 23:49ID:???
>>461
もしかして method を GET にしてるとかじゃないですよね?
046345403/02/26 00:15ID:???
>>462
ふがっ!そんなバカな…と思ってみてみるとGETにしてました!
なんでだろ〜

ありがとうございました。
ここがなければ新たなCGI探しに旅立つところでした。
0464マリモーマ ◆r6PDGT6Xd2 03/02/26 06:46ID:O7FL4tD3
>>460
ここへ どうぞ http://pc2.2ch.net/test/read.cgi/php/1046170460
0465マリモーマ ◆r6PDGT6Xd2 03/02/26 06:50ID:O7FL4tD3
こっちの方が よかった
http://pc2.2ch.net/test/read.cgi/php/997967112/
0466nobodyさん03/02/27 12:48ID:hjlRXuUv
レスキューCGIのショッピングバスケット拾ってうpしたのですがエラーはでないでメールは送信できるのですが、受信できないというか送られてきません。
サバはsendmailとCGIに対応してます。
原因として何がかんがえられますか? 
0467nobodyさん03/02/27 13:25ID:???
>>466
メアドの間違い
CGIの設定ミス
sendmailのパスの違い
0468nobodyさん03/02/27 18:29ID:YAYUiWhm
Web上で、表形式にデータを表示しているのですが、1列目の項目は
チェックボックス、2列目以降は、項目値にリンクを張っています。
この状態でチェックボックスやリンクをクリックしたときにCGIを使用して
ログを出力したいと思います。
そのとき、どのチェックボックスやリンクをクリックしたかを引数で
渡すにはどうすればいいのでしょうか?


0469nobodyさん03/02/27 20:45ID:???
>>468
意味わかんねー。
CGIの基本的な仕組み理解してる?

試しにその画面がどんなHTMLなのか貼ってみ。
0470nobodyさん03/02/28 12:42ID:oJJV0L53
レスキューのwebformつかってるんだけど、カゴシステムで
受注者にも同じ内容のメールを送るにはどーすればいいの?
0471nobodyさん03/02/28 13:22ID:OqudrRUT
クライアントのクッキーがオンになっているかいないかって
CGI側で判断できますか?
0472nobodyさん03/02/28 13:39ID:z8TnOjQ7
「データー調査」の信用情報機関
電話番号から住所 年収 財産 結婚暦
暗証番号 旧住所〜新住所 ブラックリスト
生存 行方 本名 などなど
初恋の人 思い出の人に逢えるかも・・・・?
http://www.tyousa.com
0473nobodyさん03/02/28 13:47ID:???
>>470
中身はよー知らんが、to:にそのアドレスを追加すればいんでないの?
to:発注者メアド,受注者メアド
そもそもレスキューに頼っているようじゃ、(ry

>>471
一旦クッキー喰わせてから、リロードを促して、2度目のアクセス時に$ENV{'HTTP_COOKIE'}の有無を確かめてみては?

>>472
仄暗い過去は思い出したくない(泪)
0474nobodyさん03/02/28 19:44ID:5OavBBuq
こ
こ
は
お
も
し ろ い イ ソ タ ー
ネ
ッ
ト で す ね
0475nobodyさん03/02/28 20:54ID:583oYx0/
CGI.pmとCGI::Lite.pmの違いって何?

CGIでできてCGI::Liteでできないこと
0476nobodyさん03/02/28 21:15ID:???
CGI.pm -> CGIとしてやりたいことは何でもできる。HTMLさえメソッドで生成できる。重い。
CGI::Lite -> だいたい下のページに書かれたことしかできない。軽い。
ttp://yaino.com/gzudoc2/0001/000004.html
047747303/02/28 21:40ID:???
> 仄暗い過去は思い出したくない(泪)
今日20年ぶりに同級生に出くわした。ちとびびった(汗)
0478nobodyさん?03/02/28 21:57ID:L/lBXc66
環境変数はHTTPヘッダ内に無いみたいですがどのレイヤで付加されるのですか?
0479nobodyさん03/02/28 22:45ID:???
>>478
HTTP_*の環境変数は、CGIっていう規格に入ってる。と思う。
つまり、HTTPDがつけてる。
REMOTE_*、SCRIPT_*もその辺りでつけてる。

環境変数っていう仕掛けは、UNIXにもともとある仕組みで、あるプロセスから
新しいプロセスを作ったら、もとのプロセスから継承される。というものだから、
それ以外の変なものは、そんな風にどこかで付いたもの。かと。
0480nobodyさん?03/02/28 23:38ID:???
HTTP_USER_AGENTはUA側で変更可能でREMOTE_HOST等は変更不可能なのは
HTTP_USER_AGENTはHTTPDがUAから送られてくるものを信じて設定するが、
REMOTE_HOSTはUA側ではどうすることもできないからってことでしょうか?
0481nobodyさん03/03/01 00:04ID:???
>>480
>REMOTE_HOSTはUA側ではどうすることもできないからってことでしょうか?

と、言うかこっちで取得できる以上、こっちで設定すればいいジャント。
0482nobodyさん03/03/01 00:22ID:???
中国のCGIなんですけど、
http://www.cgier.com/cgi-bin/leoboard.cgi
こんなんの日本語のやつある?
0483nobodyさん03/03/01 00:55ID:???
HTTP_*は、HTTPDがクライアントからの情報を適当に変換して付けた。
REMOTE_*は、HTTPDがクライアントを見て考えてつけた。
(絶対に設定できないっていうわけではないけど・・IPだから)
0484nobodyさん03/03/01 01:00ID:???
>(絶対に設定できないっていうわけではないけど・・IPだから)

ん?
048547803/03/01 04:22ID:DetgchOg
レスありがとうございます。

もひとつ質問。
2chに書き込みするとき8080,80番ポートが空いてると串規制で
書き込めないことがありますが、
http://www15.big.or.jp/~take3/proxy/proxy.cgi
↑のCGI串だと書き込めます。
なんでかわかりますか?
0486ハッカ飴03/03/01 05:13ID:???
きちっと文字コード変換をした上で、
シフトJISの半角カナを正しく扱う方法ってありませんか?

2chなどの半角カナ対応板はどれも文字コード変換ができていません。
というか、文字化けの原因になっているjcode.plを捨てています。

そこで完璧な方法が欲しいのですが・・・。
0487nobodyさん03/03/01 06:51ID:???
>>480
変更不可能というわけじゃないけどな。
まあ変更(というか偽装)したら接続を確立できなくなるけど。
0488nobodyさん03/03/01 06:57ID:zvvmjqfD
趣味でエロサンプルムービー専門のサイトはじめました。
http://homepage3.nifty.com/digikei/sample/sample.html
気合入れてどんどん更新していきます
0489nobodyさん03/03/01 11:19ID:???
>>486
getcodeが失敗していたら、優先的にShift_JISにする。
0490nobodyさん?03/03/01 11:41ID:???
>>486
意味がわからん
0491nobodyさん03/03/01 12:33ID:???
>>486
EUCとシフトJISのコードがかぶる問題?
・漢字をhiddenで渡し、返ってきた値で判別
・submitボタンのvalueに漢字を設定、返ってきた値で判別
0492nobodyさん03/03/01 13:52ID:???
>>486
普通は文字コードの変換なんていらないよ。
シフトJISのページにEUCを送りつけるブラウザなんていまどき存在しないだろ。
(ネスケの2.xとかがそんな感じだった)

でも、最近困っているのがrefererの文字コード。
これはサーチエンジンの文字コードに依存するから統一されてない。
しかも、googleがUTF-8なんていうこじゃれた物を使うから参った。
URL確認してgoogleの場合だけ処理分けるかな…
0493nobodyさん03/03/01 15:54ID:fsy3TEBy
perlでネットワークプログラミングを勉強したいです。
FTPクライアントぐらいは作れます。
もっとスキルアップするための役立つサイトなどは無いでしょうか?
生パケットを弄るような・・・
0494nobodyさん03/03/01 20:25ID:???
>>492
Jcode.pm使えよ
0495ハッカ飴03/03/01 21:12ID:???
>>491のおかげで解決しました。
みんなもありがとう。
0496nobodyさん03/03/01 21:13ID:???
>>494
アクセス解析はC++で書いてるんでな。
ログ表示はPerlだから、表示するときに変換すりゃいいか。
0497真剣 ◆DvLQ1Mvmkc 03/03/02 02:36ID:???
皆さんはじめまして。独自ドメインを所得しまして、
真剣にCGIに取り組もうと色々と勉強していますが、
解らない事が多々ありまして、質問に参りました。

私などは独自でPERLなどを理解していないものですから
フリーの配布サイト様に頼るしかできません。
しかし、私が探している「検索系」のCGIがどうしても
見つかりません。

できれば、http://www.yadoplaza.com/の左フレームにある
検索をおすと該当する条件がこのようなテーブルで
抽出されるような物がベストです。
このようなシステムに近い事は配布サイト様のCGIを
少しいじるだけで可能でしょうか?

また、このような配布CGIは存在するのでしょうか?

WEBレスキュー様に簡易データベースというのを発見しましたが
これをいじくれば、できるのか・・・・

本当に皆さんのようなプロにはあほみたいな質問だとは思いますが
どうか教えていただければ幸いです。
0498nobodyさん03/03/02 04:51ID:???
>>497
そのサイトはJava-Servletじゃないかと予想してみる。・・・やっぱりそうみたい(ApacheJServ/1.1.2)

貴方じゃ一生かかっても作れないから、それこそプロに相談した方がいいよ。
0499真剣 ◆DvLQ1Mvmkc 03/03/02 07:48ID:???
>>498
丁寧に調べてまで下さり有難うございます。
Java なんたらですか。お言葉どうり一生無理ですね。(´・ω・`)ショボーン
資金豊富ではないので簡易データベースをちょちょっといじって
頑張ってCGIでがむばるしかないのでつか?

うーん。がんばるか。。それにしてもデータベースの元に
なるCSVを編集するだけでもしんどいですね。
0500nobodyさん03/03/02 08:53ID:???
servlet、考えようによっては下手なCGIより書きやすいけど。
0501nobodyさん03/03/02 16:50ID:???
gd ライブラリを使って、CでCGI作成し実行したのですが、
apache で、Internal Server Error が!

以下のページのソースをpngを吐くように変更し、コンパイルを掛け
cgi-binに置いたのですが、上手くいきません。
http://www2k.biglobe.ne.jp/~motoi/cdecgi03.html

Premature end of script headers: /cgi-bin/gdtest.cgi

httpd.conf をいじる必要があるのでしょうか?
 一応、類似の配賦されているperlで書かれたソフトを試したら
PNGが読み込まれているので、原因がつかめません。
 
0502nobodyさん03/03/02 17:04ID:???
>>501
取りあえずローカルのコマンドラインで動かせば?

command > a.png

で出力内容をファイルに出来る。
0503nobodyさん03/03/02 17:28ID:???
>>502
gdtest.cgi>&my.png
ソース内のprintf("Content-type"......)を消しreコンパイルし
リダイレクトさせて、ブラウザから見たのだが、
表示されない。
 apache以前の問題と判明。

0504nobodyさん03/03/02 17:50ID:???
>>503
な、原因の切り出しくらいは自分の手で出来るんだよと。
0505nobodyさん03/03/02 20:58ID:???
今度は、PNGをちゃんと吐くソースを書いたのだが、
やっぱり無理です〜。(;;)
 環境依存っぽいんですけど・・・・。

#include "gd.h"
#include <stdio.h>
int main() {
gdImagePtr im;
FILE *pngout, *jpegout;
int black;
int white;
im = gdImageCreate(64, 64);
black = gdImageColorAllocate(im, 0, 0, 0);
white = gdImageColorAllocate(im, 255, 255, 255);
gdImageLine(im, 0, 0, 63, 63, white);
pngout = fopen("test.png", "wb");
jpegout = fopen("test.jpg", "wb");
gdImagePng(im, pngout);
printf("Content-type: image/png\n\n");
gdImageJpeg(im, jpegout, -1);
fclose(pngout);
fclose(jpegout);
gdImageDestroy(im);

}



0506nobodyさん03/03/02 21:21ID:???
>>505
いつSTDOUTにデータ吐いてるの?
0507nobodyさん03/03/02 21:24ID:???
>>505
ttp://www.nihon-sys.com/runruncgi/cgi-bin/srcview.cgi?imgcnt.cc
0508nobodyさん03/03/02 23:07ID:???
>>506
 すいません、Tera Termからエディタに移した後なので、
 コピペミスです。
以下、正しいソースです。
#include "gd.h"
#include <stdio.h>
int main() {
gdImagePtr im;
FILE *pngout, *jpegout;
int black;
int white;
im = gdImageCreate(64, 64);
black = gdImageColorAllocate(im, 0, 0, 0);
white = gdImageColorAllocate(im, 255, 255, 255);
gdImageLine(im, 0, 0, 63, 63, white);
pngout = fopen("test.png", "wb");
jpegout = fopen("test.jpg", "wb");
gdImagePng(im, pngout);
printf("Content-type: image/png\n\n");
gdImagePng(im,stdout);
gdImageJpeg(im, jpegout,-1);
fclose(pngout);
fclose(jpegout);
gdImageDestroy(im);
}
0509nobodyさん03/03/02 23:07ID:???
>>507
 それも一応試したのですが、Internel Server Erorrが
 帰ってきます。
 
0510nobodyさん03/03/02 23:15ID:???
>>508
\r\n\r\n
0511nobodyさん03/03/02 23:23ID:???
>>510
すいません、環境書いていませんでした。
apache + linux です。
一応今試しましたが、Internrel Server Errorが帰ってきます。
error_log には、Premature end of script headers:
です。
なお、httpd.conf には、TypesConfig /etc/mime.types
となっていて、png は入っています。

0512nobodyさん03/03/03 00:16ID:???
>>511
ヘッダー吐く前に死んでるってあるから、
少なくともバグはprintfよりも上にあるってことがわかるな。

ファイル名は*.cgiなんだから……http:d.confは.cgiがどんな扱いになってるのかを確認した方がいい。
0513nobodyさん03/03/03 00:18ID:???
実行権限無かったり・・・まさかな。
0514nobodyさん03/03/03 01:05ID:???
>>513
アリ ※-(・∀・)/※ エール
0515nobodyさん03/03/03 12:11ID:???
>>512
>>513
 cgi は、実行できます。printenv.cgi で試しました。
>>514
 まさかの事態のため、$ chmod 777 test.cgi と
 実行権限は設定してありますので。

 なお、cgiのコンパイルは、以下のように通しています。
gcc -o ./test.cgi ./test.c -static -lgd -lpng -ljpeg
-lm -lz -Wall -O2
  実際、上記のソースで動くんでしょうか?
 環境が問題なのか、切り分けしたいので・・・。
0516nobodyさん03/03/03 12:44ID:???
>>512
>>513
>>514
 ごめんなさい、 ごめんなさい、 ごめんなさい、 
 ごめんなさい、 ごめんなさい、 ごめんなさい、

 chmod 755 or chmod 700 で動かしたら動作しました。

   ∧_∧
  ( ´∀`)<ねー。許してね。
  (    )
  / / /
 (_)_)
0517nobodyさん03/03/03 13:03ID:???
>>516
許してーあ・げ・な・いっ♥♪
許してーあ・げ・な・いっ♥♪
0518nobodyさん03/03/03 13:47ID:???
>>515
もしもどこかでpopenを使っていたら、popen前(というよりパイプに書き出す前)にstdoutをフラッシュしておいた方がいい。
以前これで小一時間悩んだことが・・・
051951803/03/03 13:58ID:???
探すのが面倒な場合は、とりあえずmainの先頭にsetvbuf(stdout,NULL,_IONBF,0L);(要stdio.h)を追加してstdoutをバッファリング無しにしてみる。
0520nobodyさん03/03/03 15:36ID:???
>>518
>>519
fflush(stdout)ですね。
とりあえず、gdライブラリを使っているので、大丈夫です。
popen ということは、ppmtogif 等のコマンドに対して、
パイプを使って書き込むパターンですね。
 試したことはないので、試す際には参考にさせてもらいます。
0521nobodyさん03/03/03 16:18ID:0801sff0
↓↓↓↓↓★ピンクエンジェル★↓↓↓↓↓
http://www.pink-angel.jp/betu/linkvp/linkvp.html
0522nobodyさん03/03/03 18:40ID:CiYwJP6e
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

http://www5b.biglobe.ne.jp/~ryo-kyo/osukon.html

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
0523poor03/03/04 05:12ID:pSR3aMdf
質問です
0524poor03/03/04 05:17ID:pSR3aMdf
PERLに詳しい方お願いします。
2箇所機能的に動かないところがあります。
直していただけれましたら5000円お支払いします。
0525nobodyさん03/03/04 05:43ID:???
安過ぎだろ・・・まじで。
0526nobodyさん03/03/04 06:32ID:???
>>524
#!/usr/local/bin/perl
      ↓
#!/usr/bin/perl

2500円でいいや。
0527poor03/03/04 11:28ID:pSR3aMdf
まじめに!!
もう少し支払ってもいいです。
メールアドレスを下さい。
添付でファイルを送ります、
0528nobodyさん03/03/04 11:57ID:???
ネタ確定。
↓その後の言い訳。
0529poor03/03/04 12:34ID:pSR3aMdf

# AND OR 判断
if ($method eq 'AND' && $flag == $queryNum){
for ($j = 0; $j < 38; $j++){
$hits[$hitCounts][$j] = $clients[$i][$j];
}
$hits[$hitCounts][38] = $flag;
$hitCounts++;
}elsif ($method eq 'OR' && $flag > 0){
for ($j = 0; $j < 38; $j++){
$hits[$hitCounts][$j] = $clients[$i][$j];
}
$hits[$hitCounts][38] = $flag;
$hitCounts++;
}
}
return $hitCounts;
}
0530nobodyさん03/03/04 13:23ID:???
>>529
{ } の対応が合っていないから
当たりですか?
0531nobodyさん03/03/04 13:45ID:???
>>529
冗談はおいといて、何をしたいんだ?
ifもelifもやってること同じじぇねーか
しかもループ外で++してるだけならreturnは最初より1増えて
戻るだけだろ

やっぱりネタか
↓↓↓次の方どうぞ↓↓↓
0532poor03/03/04 14:06ID:pSR3aMdf
メーアドレス教えて下さい。振込先口座も。
業者に頼むと3万円と言われました。
0533poor03/03/04 14:41ID:b5xaOKg7
2万までなら払います。
0534nobodyさん03/03/04 14:48ID:???
>>529が本物のソースなら他にも突っ込みどころ満載だろうよ。
ソース全部晒して何をどうしたいか言え。
それで大勢に見てもらったほうがよっぽどよくなるだろう。
0535nobodyさん03/03/04 14:48ID:xylsMcYb
パーミッションについての質問です。
おそらくこの板の皆さんにとっては馬鹿らしい内容かとは思うのですが真剣に悩んでおりますのでどうか教えてください。

掲示板のパーミッション設定ですが、使用者が
(1)管理者 (2)グループ (3)その他
の3つに別れてますよね。
で、権限が
(a)呼び出し (b)書き込み (c)実行
の3つと。
パーミッション設定する場合、(1)である自分自身は(a)(b)(c)すbラて有効でないbニいけないと思b、んですが、
(2)(3)については、それぞれ(a)〜(c)のどの部分を有効にすべきなのかを教えていただきたいのですが。
0536nobodyさん03/03/04 15:07ID:???
>>535
setuid実行環境なら、プログラムの置かれているディレクトリにはその他への実行権限が必用。
他は所有者にのみ権限を与えればよい。

そうでない場合は、プログラム本体には読みとりと実行を、ログファイルには読みとりと書き込みの権限を与える。
もしも実行時にファイルを作成することがあるのならば、その他へ書き込み権限を与えた専用のディレクトリを作成する。間違ってもそれを他の用途に使ってはならない。
0537nobodyさん03/03/04 15:22ID:???
>poor

こいつマルチポストしてるから答えなくていいよ
0538nobodyさん03/03/04 15:38ID:xylsMcYb
>>536さん
とてもよくわかりました!
ありがとうございました!
0539Name_Not_Found03/03/04 18:07ID:I14iMBLm
ねえねえ、今動いてる、なんの変哲もないCGIチャット。

これを SSL サーバで動かそうと思ったら、
SSL 対応のための修正がいるんですかね?

一般に、SSLサーバで動くCGIには、通常に比べて
制限などはありますか?
0540nobodyさん03/03/04 19:42ID:???
>>539
特に何もすることはないですよ。
0541nobodyさん03/03/04 20:23ID:Yab0v18z
配布されている掲示板を使っていて、ふとログを見てみると
日付に関するところが"1046714534"のような
数字になっているんですがこれは何を表しているんでしょうか?
また、どのように展開するのでしょうか?
0542nobodyさん03/03/04 20:38ID:???
>>541
1970年1月1日0時0分0秒からの経過時間(秒)
0543nobodyさん03/03/04 20:57ID:???
>>541
> どのように展開するのでしょうか?
localtime(3)
0544nobodyさん03/03/04 21:41ID:v+m1rapO
C=C=C=┌(;・_・)┘トコトコ
http://hkwr.com/
http://hkwr.com/bbs
0545nobodyさん03/03/06 00:23ID:DsuR7EV5
あるグループで、データベースをホームページで閲覧・管理するための
CGIを探してます。商品名・価格・販売個数などの欄を、掲示板感覚で
手軽に書き換えられるようなCGIを無料配布してるとこないでしょうか?
WebDBを管理するもので管理者以外でも書き込めるもの、です。

イメージ的には、Webオークションとかをやるようなサイトが使っている
CGIなんですが、無料配布されているところはないでしょうか。。。

普通の掲示板だとレスが長々とついていってしまい、管理も、閲覧するときも
みづらくなってしまいますので・・

販売個数や売上げなどのいくつかの項目を随時手軽に更新させられるような
ものがあれば教えていただけませんでしょうか
0546nobodyさん03/03/06 00:49ID:???
>>545
こんなCGI探してますスレッド Ver8
http://pc2.2ch.net/test/read.cgi/php/1041564353/
0547nobodyさん03/03/06 04:15ID:???
IPアドレスを偽装すれば、何か犯罪になるのでしょうか?
0548nobodyさん03/03/06 04:19ID:???
   ______________
 /:\.____\
 |: ̄\(∩´∀`) \  <先生!こんなのがありました!
 |:在  |: ̄ ̄ U ̄:|
http://saitama.gasuki.com/mona/
0549nobodyさん03/03/06 05:11ID:???
>>547
セキュリティ板へどうぞ
0550nobodyさん03/03/06 08:01ID:???
フリーのアクセス解析CGIを利用しているのですが、
IE6.0を使っている人から403エラーで中に入れないと指摘がありました。
念のためエラーページにも解析を入れたところ、
IE6.0でもエラーの出る人と出ない人がいるようです。
当方マカーのためIE6.0のことはよくわかりません。

原因のわかるかたがいらっしゃいましたら、是非教えてください。
宜しくお願い致します。
0551nobodyさん03/03/06 08:08ID:???
>>550
パーミッションは?
055255003/03/06 08:23ID:k3C4MM6+
>>551
パーミッションは、cgiは755、datは666です。
0553nobodyさん03/03/06 18:30ID:???
ここのずるぽんあぷろだ改造版
http://www.geocities.co.jp/SiliconValley-Bay/4472/script/zurubon.html
をアップしてCGIにアクセスすると

open error!

fileのopenが出来ません。


Return

と出てくるのですが何が悪いのでしょうか?
readmeがないので設定がよくわからないのですが・・・
0554nobodyさん03/03/06 19:14ID:???
>>553
>本家を自分一人で設置できるぐらいのスキルが最低限必要です。

って書いてある。
トラブルを自己解決できないような香具師は使うなってことだね。
0555nobodyさん03/03/06 19:23ID:???
>>554
http://cgi2.html.ne.jp/~around/bbs/bbs.cgi?book=script_support
ここで解決した。
普通は707なんてパーミッション滅多に使わないので
解らなくて当然では?
と自分で自分を擁護してもしょうがないので、
ではさらば
0556nobodyさん03/03/06 19:55ID:???
滅多に使わないの?
俺良く使うけど。
0557nobodyさん03/03/06 20:34ID:???
>>556
だいたいは755じゃない?
CGIの場合。
0558nobodyさん03/03/06 21:55ID:???
>>557
何故グループにアクセス権あげるの?
0559nobodyさん03/03/06 22:15ID:???
>>557
今時suEXEC知らん奴なんているのか?
0560nobodyさん03/03/07 20:30ID:???
滅多に使わないとか、良く使う、とかって何か不思議な争いだなぁ
目的にあったパーミッションを考えたら当然だと思うんだが。
0561nobodyさん03/03/07 20:56ID:???
>>560
000。恥ずかしい過去。
0562nobodyさん03/03/08 03:43ID:???
>>557
グループにアクセス権与えるのは愚の骨頂だよ。
CGIの中に管理用パスワードとか書いてあれば抜き放題。
0563nobodyさん03/03/08 11:36ID:IsIbiOhH
まじっすか!Σ(゜�凵K)
CGIの中に管理用パスワード置いてました
0564nobodyさん03/03/08 11:39ID:???
>>562
その他に与えるのは大丈夫なの?
0565nobodyさん03/03/08 12:10ID:???
>>564
与えないとnobodyさんが読み書きできません。

まぁ、suExecの場合は与えちゃダメですが。
0566nobodyさん03/03/08 13:13ID:???
1ユーザ=1グループか全ユーザ=1グループなど、
サーバ側がグループをどう扱っているかによるけど、
与えないほうが無難だな。
0567nobodyさん03/03/08 13:14ID:???
UNIX板の人にぜひ読ませたいスレだな(w

不必要なアクセス権を設定しちゃいけません。
間借りしてるなら規定されているはずだし、
自分で立ててるならちゃんと管理してねってことで。
0568nobodyさん03/03/08 13:23ID:???
だいたい共有鯖を使ってる時点で(以下略
0569nobodyさん03/03/08 13:28ID:???
>>568
telnetが思いっきり口を開けてる自宅鯖も十分怖いけどな。
0570nobodyさん03/03/08 13:44ID:???
(;´○`)
0571nobodyさん03/03/08 15:45ID:???
スクリプトが、ファイルを作らなければいけない場合の
安全なディレクトリのパーミッションについて。

1.suEXEC ON
 0700

2.OFF
 0777 =>常に危険
 0707 =>一般ユーザーが隔離グループに入ってる場合は有効。

でも基本的にsuEXECじゃない共有鯖は安全じゃない
0572nobodyさん03/03/08 18:17ID:???
どんな設定にしようと管理者には丸見えなんだよな(;´○`)
0573nobodyさん03/03/08 19:40ID:???
>>572
何か問題あるか?
0574nobodyさん03/03/08 22:00ID:???
>>572
あーんな物とかこーんな物とか?(;´Д`)ハァハァ
0575nobodyさん03/03/08 23:09ID:???
>>573
会社のメールアカウントを私的利用したらばれちゃう。
0576nobodyさん03/03/09 19:30ID:zYZaV2tZ
とあるCGIにファイルをダウンロードするフォームがあるんだけど、
ダウンロードボタンを押すとそのままブラウザにそのファイルが表
示されてしまう。TXTであれHTMLであれCGIであれそうだ。
これって何がいけないのかな?原因わかる?
ほかのサーバーにおんなじCGIを置いてボタンを押すとちゃんとDL
ダイアログが出てDLできるんだが・・・。
0577nobodyさん03/03/09 19:31ID:???
>>576
>とあるCGIにファイルをダウンロードするフォームがあるんだけど、

この辞典で訳がわからなくなった。
0578nobodyさん03/03/09 19:34ID:048q+sGA
http://bbs.1oku.com/bbs/bbs.phtml?id=rantyan
★その目で確認すべし!!★超おすすめ★
057957603/03/09 19:37ID:zYZaV2tZ
>>577
ダウンローダーとかファイル管理CGIとか、そんなようなやつ。
------
| DL |
------
↑ボタンを押すと選んだファイルがDLされるっていう動作になるはずが
ならないんだよ・・・。
0580nobodyさん03/03/09 19:51ID:???
>>579
Content-Typeがおかしいのでは?
0581nobodyさん03/03/09 20:36ID:???
>>579
>>580だと思う。application/octet-streamになっている?
0582nobodyさん03/03/09 20:37ID:???
さすが通信分野だよな。バイトストリームじゃなくてオクテットストリームか。
0583nobodyさん03/03/09 20:38ID:???
>>582
MIMEを通信と言い切ってしまうにはちょっと抵抗あるけどな。
0584nobodyさん03/03/09 20:41ID:???
>>583
MIMEって通信以外でも使われているの?
0585nobodyさん03/03/09 20:43ID:???
>>584
どっちかというとワイヤプロトコルだからちょっと違和感って感じ。
0586nobodyさん03/03/09 20:46ID:???
>>585
言いたいことが分かったような分からないような・・
まあちょっと違和感と言っているから全く筋違いというわけでもなさそうだな。
0587nobodyさん03/03/10 00:12ID:p/bgqDIW
cgiでmp3のID3タグの内容を取得できないでしょうか?
0588nobodyさん03/03/10 00:21ID:???
>>587
ファイルをバイナリとして分解してID3部分を取り出せばできますが
0589nobodyさん03/03/10 00:35ID:???
ID3v2のCOM使えば瞬間芸の予感
059058703/03/10 00:47ID:???
すんなせん、もうちょっとヒント下さい。
0591nobodyさん03/03/10 01:17ID:???
>>590
>>589をミロ
059258703/03/10 01:32ID:???
すんません、ID3v2のCOMがわからないです・・・

バイナリで取得するって事ではない、んですよね?
0593nobodyさん03/03/10 01:37ID:???
>>592
検索の仕方も知らないのか?プログラム書くのはこれっきりやめろ。
http://216.239.39.101/search?hl=ja&ie=UTF-8&oe=UTF-8&q=ID3v2+%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
普通のライブラリもPerlモジュールもどっちも1分で見つかったぞ。
059458703/03/10 01:51ID:???
すいませんCOMの意味を知らなかったんで・・・、

検索行ってきます。

ヒントありがとう。
0595nobodyさん03/03/10 15:33ID:waQu7wS1
はじめてCGIでカウンタを付けようとしている初心者です。
相談にのっていただけませんか。

借りているサーバーがパーミッションの設定・変更はできないと書いてあり、
FTPソフトでいじることができませんでした。
CGIの実行やCGIによるファイルの読み書きにつきましては、
パーミッションの設定・変更なしに利用できると書いてあったので
実際CGIをアップしてみたのですがエラーになって表示されませんでした。

CGIが間違っているせいなのか、パーミッション変更不可のため動かないのか、悩んでいます。
0596nobodyさん03/03/10 16:05ID:???
age
0597nobodyさん03/03/10 16:24ID:y6h+x0ia
>>595
説明不足でよくわかりません。
どこのサーバーとか、
そのサーバーの設定等がWEB上で見れれば何とかなるんだが・・・。
(たまに説明をWEBでしてるところあるよね)

とマジレスしてみるテスト。
059859503/03/10 16:24ID:???
いろいろ検索してみたのですが、パーミッションの変更ができないということは
そもそもCGIの設置は無理なのかもしれません。
念のため、使っているサーバーのCGIについてのページを貼ります。
やっぱ無理でしょうか?
↓
ttp://www.onamae.com/help/18-5.shtml
0599nobodyさん03/03/10 16:28ID:???
>>598
/*
プレミアサーバーの仕様は?
仕様は以下の通りとなっております。
・Microsoft Windows2000 Server
・Microsoft Internet Infomation Server(IIS)5.0
・Microsoft Exchange2000
なお、Perlはバージョン5.6.1を使用しております。
*/

よって、UNIX特有のパーミッションという概念はありません。
0600nobodyさん03/03/10 16:30ID:???
>>599
Winじゃん。
ローカルで動作確認できるんじゃないの?
060159503/03/10 16:33ID:???
>>599 ありがとうございます。

パーミッションという概念がない場合、
どんなCGIも自動で機能するのでしょうか?
それとも、それ用のCGIを選択して使用するべきなのでしょうか?
先ほど試みたのはKENTWEBのeカウンタというものです。
(いちばん簡単そうに見えたので)
ttp://www.kent-web.com/count/ecount.html?
0602nobodyさん03/03/10 16:34ID:M2RJhlYt
http://www.pink-angel.jp/betu/linkvp2/linkvp.html
★その目で確認すべし!!★超おすすめ★
060359503/03/10 16:35ID:???
>>600
ローカルで動作確認ですか?
意味すらわからないレベルなので、ちょっと検索して調べてきます。
ほんとに知識不足で申し訳ありません。
0604nobodyさん03/03/10 16:44ID:???
>>603
先に >>598 と >>601 みたいな情報を出すようにしてくれ。

で、暇だったので試してみたけど、中身まったくいじらなくても置くだけで
http://(略)/ecount.cgi?check は動作したよ。
こちらは Apache + ActivePerl で IIS じゃないけど、まあ変わらんでしょ。
060559503/03/10 17:05ID:???
>>604
今、中身をいじらずにアップしてみましたが
ログファイルのパスが不正です:./ecount.dat
ログファイルのパーミッションが不正です
と表示されてしまいました。やっぱり駄目みたいです。ああ。。。

ローカルで動かすにはソフトをダウンロードしなくてはならないようなので
また後で来させていただきます。
どうもありがとうございました。
0606576=57903/03/10 17:13ID:AgGCKLX9
>>580
>>581
回答ありがと。
チェックしてみたらこうなってました。
print qq(Content-type: application/octet-stream\nContent-Disposition:attachment;filename=$1\n\n);
これでいいんですよね?
というか、他のサーバーではできたから問題はここじゃないような気がするんですけど・・・
#octet-streamなんて初めて見た・・・(汗)
0607nobodyさん03/03/10 17:17ID:y6h+x0ia
>>605
ならば、ttp://www.onamae.com/help/18-5.shtml
の「Perlでパスの指定がうまくゆかない。」の項目をよく見よ。
このサーバーの厄介なところじゃないかな。
060857603/03/10 17:33ID:AgGCKLX9
>>595
>CGIの実行やCGIによるファイルの読み書きにつきましては、
>パーミッションの設定・変更なしに利用できる
これって、パーミッションが「何でも動く」んじゃなくて、
パーミッションをサーバーが自動で変えてくれる、って意味じゃない?
・・・私が前いたサーバーはそうだった。
だからパーミッションの問題じゃないと思う。
で、同じ問題にぶつかった事があるんだ。詳しい人に聞いたらこういう事だったよ。
:アップしたCGIが動かないのはCGIスクリプトに問題があるのではないか。
:サーバーで使ってはいけないってなってる命令語が含まれていないか。
:含まれていればUPしても使えない(こともあるかも)。
#ここでいう問題ってのは、「スクリプトがまちがっとる!」ということ
#じゃないぞ。そのサーバーで使うのに問題があるってこと。

たとえばセキュリティの問題で、カウンタに使われることのあるSSIは禁止
だとかさ。ファイルを作る命令語はダメだとかさ。
あなたのサーバーって、そういう制限を設けてるサーバーじゃないの?
もっとも・・・「制限がある」ってなっても、初心者だったらスクリプト見て
「これは制限されてるのがある・ない」ってわかんないと思うから、
ヘタの鉄砲数うちゃ当たるってなもんで、入れてみて動くものを使うようにす
ればよいと思う。
#んで、ローカルでのテストは意味ないんじゃないかな。こういう時って。
060957603/03/10 17:38ID:???
>>607
ほうほう・・・そういうところもあるんだね・・・。
絶対パスか。
0610nobodyさん03/03/10 17:53ID:???
>>605
それは「動作してる」よ。意図通りに動いてはいないけれどね。
次からは、1.サーバエラーが発生したのか、2.意図通りに動かないのか、
を明記するようにして欲しい。

>>609
>#んで、ローカルでのテストは意味ないんじゃないかな。こういう時って。
問題の切り分けがきちんとできており、最初から、問題は
サーバの仕様にあると限定できるのであれば、おっしゃる通りです。
でも今回の場合は(ry

061159503/03/10 18:02ID:???
>>607
うわーーーーー!出来た!出来たよぅ!
もう涙が出そうにうれしい。。。
ほんとうにありがとうございました。感謝!
0612nobodyさん03/03/10 18:05ID:???
>>606
そのCGIにtelnetでHEADリクエストしてもちゃんとoctet-stream返って来るかい?
061359503/03/10 18:09ID:???
>>608-610
どうもありがとうございました。
608さんのおっしゃるとおり、
サーバーはパーミッションを自動で変更してくれたようです。
それで607さんの絶対パスについてのところを参照にCGIのパスをいじったところ、
DATファイルが反応するようになり、
GIFファイルも直したら反応するようになり、
サーバー上でカウンタが動くようになりました。

610さん、申し訳ありません。
サーバーエラーなのか、意図どおりに動かないのかすら判断できなかったのです。

みなさん、ほんとうにありがとうございました。
061460603/03/10 18:27ID:AgGCKLX9
612>>
telnetできないっす。
こりゃCGIの問題じゃなくって、サーバーの仕様とかかな?
・・・そういう仕様って、アリ?
061560803/03/10 18:30ID:AgGCKLX9
>>595
治りましたか。よかったよかった(^^)

サーバーエラー>紛らわしいよね(笑)
061660603/03/10 18:32ID:AgGCKLX9
>>614
言葉がたりんかった。
Telnetできないのは、Telnet開放されてないから(^^;
0617nobodyさん03/03/10 18:33ID:???
>>616
Port:80 に telnet せよ、という意味じゃないの?
0618nobodyさん03/03/10 18:49ID:???
Win2000のtelnetなら23以外にもアクセスできるよな。
0619nobodyさん?03/03/10 20:23ID:???
>>485はなんで?
0620nobodyさん03/03/10 20:53ID:???
管理サイドの人間しかわからんのでわ?
0621nobodyさん03/03/10 20:58ID:???
>>619
規制されないリモートホストとポートをCGI串が吐いているからだろう
062260703/03/10 21:38ID:y6h+x0ia
>>595
おめでとう。(カメレススマソ)
0623nobodyさん?03/03/10 21:59ID:???
>>621
リモホはwww15.big.or.jpだし、80番ポートは空いてるよ
062461203/03/10 22:26ID:???
>>616
>>617です。

telnet www.hogehigehage.com 80

HEAD /unko.cgi HTTP/1.x
0625nobodyさん03/03/10 23:22ID:F/vwue5x
yukiwikiを実験で設置してみたのですが、いまいちだったので
FTPから丸ごと削除しようとしました。そうしたら、/diff/, /info/, /wiki/
というディレクトリ及びその中身のファイルが、Permission Deniedと言われ、
削除できずに残りました。どのようにすれば削除できるのでしょう?
0626nobodyさん?03/03/10 23:25ID:???
FTPクライアントが何かわからんけど
ディレクトリに書き込み権限がないんじゃないの?
062762503/03/11 06:17ID:???
自己解決しました。nobody権限のファイルがcgiによって作成されていたみたいです。
cgiによって作られたファイルはcgiからでないと削除できないと分かり、
ファイルをunlinkして回るcgiを作って走らせたところ、無事消えました。
0628nobodyさん03/03/11 09:12ID:???
>>627
otherに権限持たせれば出来ると思われ。
0629nobodyさん03/03/11 16:29ID:mYfv1t4y
本当に初歩的な質問だと思うんですが、
どれだけ調べてもヒントすら見つからないので、
全く見当違いなことを考えてるんだと思い質問させていただきます。

ディレクトリを作るのはmkdirですよね。
ならファイルを生成するのはどうしたらいいんでしょうか?

たとえばtestというディレクトリを作り、
その中にtest.datというファイルを作る
なんてことはどうすればできるんでしょうか?
0630nobodyさん03/03/11 16:35ID:???
取り敢えず下記でできる。
open(FILE,">>ふぁいる名");
print(FILE "でーた\n");
close(FILE);
0631nobodyさん03/03/11 16:39ID:???
>>629
Perlですか?
言語(or環境or状況)を書くように
0632nobodyさん03/03/11 17:41ID:04f/wl45
CGI配布サイトなんかに行くと、「軽い掲示板」「重い掲示板」っていう
表現がありますよね。処理が軽いとか。
この「軽い」「重い」って・・・?

設定項目(=変数)が多いと重い?
サブルーチンが多いと重い?
それとも行数が多いと重い?
コメントが含まれていると重い?

どんなんでしょ?(ちなみにPerlCGIで。)
0633nobodyさん03/03/11 17:47ID:???
>>632
レスポンスタイムが遅い。ターンアラウンドタイムが遅い。
0634nobodyさん03/03/11 18:06ID:???
>>632
>設定項目(=変数)が多いと重い?
>サブルーチンが多いと重い?
>それとも行数が多いと重い?
>コメントが含まれていると重い?

すべてNO
厳密に測定すれば差は出るだろうけど
0635nobodyさん03/03/11 19:32ID:???
>>632
プリントアウトした時の紙の重さじゃないの?
0636nobodyさん03/03/11 19:51ID:???
>>635
それを言うなら、仕様書の
0637nobodyさん03/03/11 19:56ID:???
作者の愛情の重みだよ。
0638nobodyさん03/03/11 20:03ID:???
無限ループは愛情があふれているんだね・・・・・・
0639nobodyさん03/03/11 20:08ID:???
>>638
藁
0640nobodyさん03/03/12 06:35ID:???
>>638
溺愛しすぎも良くないよね。
0641nobodyさん03/03/12 10:34ID:???
なごんだ
0642nobodyさん03/03/12 19:04ID:???
色んな所でKENT氏のlogを配列に入れてforeach()するのは悪いとあるんだけど、
どうしたら良いの?
while使っても大差ないと思うんだけど。
0643nobodyさん03/03/12 19:14ID:???
>>642
そう言うレベルの話じゃないと思う。
0644nobodyさん03/03/12 22:04ID:???
>>642
違いがわかるようになってから出直してください。
0645nobodyさん03/03/12 23:22ID:???
何で悪いかは理解してるのか?
もう春なんだなあ・・・
0646nobodyさん03/03/12 23:47ID:???
>>643-645
質問スレに馬鹿なレス返すな。
もう春なんだなぁ・・・
0647nobodyさん03/03/13 00:09ID:???
>>646
手本で納得できるレス返してみれ
0648nobodyさん03/03/13 00:15ID:???
cgiから別のcgiを起動して値を取得して処理する
ということをやりたいのですが、可能ですか?
0649nobodyさん03/03/13 00:16ID:???
>648
Perlならrequireで検索。
0650nobodyさん03/03/13 00:55ID:???
質問です
config.plに$test = test;を入れといて、
print.cgiにprint "$test";って入れて表示させる方法ってどうやるんですか?
よろしくお願いします(plの1;やcgiのヘッダーはできているとする)
0651nobodyさん03/03/13 01:08ID:???
>>650
普通にrequireすればいいんでないの?
0652nobodyさん03/03/13 06:33ID:???
>>651
なんかだめです
065364803/03/13 08:31ID:9FkJfCBr
>>649
ごめんなさい
もう少し詳しく書きます
別のcgiは別のサーバにあります。
で、POSTでそのcgiに値を渡し
そのcgiが(ブラウザに)出力する結果を元に
処理を行う、それをいくつか繰り返す

以上の事をcgiで行うことは可能でしょうか

0654nobodyさん03/03/13 08:59ID:???
>>653
可能
ただし、これ以上の質問は使っている言語専用スレで

> cgiで行うことは可能でしょうか
cgi の部分を、PerlなりPHPなり自分が使っている言語に
置き換えて読み返してみれば、すぐ解ることでしょが
0655nobodyさん03/03/13 09:09ID:Lbm4LPV1
見て
http://homepage3.nifty.com/digikei/
0656bloom03/03/13 09:18ID:+b8Vztun
http://www.agemasukudasai.com/bloom/
065763203/03/13 15:56ID:rD3WUou4
>>633
ちょっと質問悪かったかも。

重い・軽い・っていうのは、どういう作りによっておきるのか?
と、聞きたかったのです。
それで、設定項目が・・・なんてことを言ったのですが。

>>634
うーん、そっか。
んじゃあとりあえず、40KBとかあるスクリプトが必ずしも
重いとは限らないわけね。
0658nobodyさん03/03/13 15:58ID:???
>>657
>>634って結構眉唾。
0659nobodyさん03/03/13 16:38ID:xb4yxiHK
futomi's cgi cafe、のprofessional版を使用とすると
アクセス解析するページを見ると、×印が表示されます。
FAQの
http://www.futomi.com/library/faq/acc_faq.html#1
は見ました。
standard版だと上記の方法で×印が表示されないようには出来たんですが
professional版だと駄目でした。
サーバーはxreaの無料鯖を使ってます。
×を表示しないようにする方法を知ってる方がいたらぜひとも!
教えてください。
0660nobodyさん03/03/13 16:41ID:???
>>659
私は、このウェブサービスが、初心者向けサービスでないことを知っています。最低限必要な情報しか提供していないことを知っています。

私は、問題を自分で解決する努力をします。わからないことはまず自分で調べます。


(XREA 規約より)
0661nobodyさん03/03/13 16:45ID:???
>>659
ちゃんと設置できているなら広告のせいだろう
066265903/03/13 16:47ID:???
出来る限り調べたのですがどうしても分からなかった為。
やった事を書くのを忘れていたので書かせて頂きます。
自動広告表示が原因だと思うのですが
自動広告をやめてhtmlに直接タグを書いて広告を表示しても
×印が消えなかったです。
futomi's CGI Cafe のFAQではこれで×は消えると書いていたのですが
駄目でした。
検索エンジンでも調べてみましたが駄目で、
自分で言うのもあれですが努力はかなりしました。
出来れば解決方法が分かれば教えてください。
宜しくお願いします。
0663nobodyさん03/03/13 16:47ID:???
>>657
重い = 処理時間が長い
つまり効率的な処理ができていないものと言える。
(処理そのものが複雑な場合もあるが、それはとりあえず置いておく)

効率的な処理というのは、>>632で挙げられたことと全く関係がない
わけではないが、そこに大きな関係を見出すことは難しい。
また処理の方法というのは、ほとんどの場合幾通りものアプローチが
あるもので、どれが効率良いかは試験と経験でしかわからない。

というわけで、ネット上で配布されているようなものに関して言えば、
使ってみるかソースを読んで解析するかしないとわからないよ。
既ユーザに使用感を聞いてみるのが一番簡単な方法かもね。
0664nobodyさん03/03/13 19:07ID:ajLCHyyn
保守あげ
0665nobodyさん03/03/13 19:47ID:???
>657
>設定項目(=変数)が多いと重い?
設定項目が多くても、処理が少なければ軽い。

>サブルーチンが多いと重い?
サブルーチンが少なくても、全体の処理が多ければ重い。

>それとも行数が多いと重い?
たった1行でも無限ループになっていたらそっちの方が重い。

>コメントが含まれていると重い?
誤差の内。

結局は、計算機が計算を行なう回数と、ファイルアクセスなどを行なう回数及び時間に関わる。
結果として、>663さんの言うのが正しいわけだが。
どういう作りで、というなら、シンプルな方が軽い。
もちろん、下手な奴が作ればシンプルでも重くなるが。
あとはベンチマークでもやって自分で計るのが一番。
いうまでもないがローカルでな。
0666nobodyさん03/03/13 20:32ID:???
6666666666
0667nobodyさん03/03/13 21:37ID:???
しかし、4、50kbもあるソースなんて書く方が辛くない?
出来る範囲で分割させた方が管理しやすいと思うんだけど。
書き込みと表示を分けるとか。
0668nobodyさん03/03/13 21:40ID:???
>>667
関数作らずに平気で2000行とか書く人なんですよ。きっと。
0669nobodyさん03/03/13 21:49ID:0oN+bQDd
普通、1関数何行ぐらい?
0670nobodyさん03/03/13 21:57ID:???
平均10行未満 最長でも80行
一画面に収まらない関数を作った場合は再検討する。
0671nobodyさん03/03/13 22:26ID:???
インデントが4つ以上の深さになったら他のいい書き方がないか考えてみよう。

これについては、C-BOARDは強烈。画面をまたぐifのブロック。
0672nobodyさん03/03/13 23:58ID:???
私も、大体10〜20行ぐらいかな。
1ファイルは大体20kb以内。500行ぐらいが己の限界です。
2000行なんて書いてたら、思いついた所を探す時には、泣いちゃうよ〜。
0673nobodyさん03/03/14 00:05ID:???
>>672
>これについては、C-BOARDは強烈。画面をまたぐifのブロック。
あなたが挙げているインデントの増加という面ではこれはむしろその抑止に働いていると思う。


kbだから大体2KBってとこか。平均10文字で200行。微妙かも。
0674nobodyさん03/03/14 00:14ID:???
childシリーズってレンタル鯖で禁止されるほど禿負荷なんだよね。
0675nobodyさん03/03/14 15:39ID:d7q/oEUS
皆さん、コメントとかつけないのですか?
ちゃんとコメントつけると、私は数十行などすぐ逝ってしまいます。
0676nobodyさん03/03/14 15:46ID:???
>>675
君のソースを読んでみたい
0677nobodyさん03/03/14 15:53ID:???
>>675
コメントはルーチンの行数には数えないだろ
0678nobodyさん03/03/14 17:06ID:???
何行コメント書いてるの?
0679nobodyさん03/03/14 17:07ID:???
本文よりコメントの方が長かったら、それはそれですごいと思う。
0680nobodyさん03/03/14 17:15ID:???
やたらとコメントをつけないとわからなくなるようじゃ、
変数などの命名がヘタなんだろう。
068165703/03/14 17:29ID:Qg58BTXT
40KBのスクリプト・・・ウェブ管理CGIだから(笑)
ちなみに私がつくったんじゃないっす。そこまで技術力は(以下略)

>>663,665
あ、なあんだ・・・そういうことだったのか。

なんとなく、変数があるとそれを記憶するのにメモリを使う=重い
なんてこと思ってた・・・。
コメントは極力ないほうがいいのか、っていうのも、Perlが「上から」
見ていく言語だから、飛ばすものは無いほうが、なんてことを考えてた・・。
#行が増えると検索に時間がかかる、のと同じレベルで考えてました。

そっか。これで安心してコード書けそう。

>>675
私はせいぜい設定項目にコメントつけて、サブルーチンに
これは何をするヤツって書くぐらい。
シンプルな掲示板なら数十行まではいかない。
配布するつもりないから使用条件とか書かなくていいし。
0682nobodyさん03/03/14 18:02ID:???
>681
まだ勘違いしているようだが。
重いのとメモリ食うのははまた別。
0683nobodyさん03/03/14 20:29ID:i5QyaZbU
ソースを表示させるにはどうしたらいいのでしょうか?
以下のようなイメージで「ソース」をクリックすると、ページの
ソースが見えるようにしたいのですが、このままですと
当然CGIそのものが実行されてしまいます。

print '<a href="http://11.11.111.111/cgi-bin/hogehoge">ソース</a>';

教えていただけませんか。
0684 ◆dq7M./4Uw. 03/03/14 20:32ID:???
>683
ソースを.txtにして別途アップロードへれ。。。
0685nobodyさん03/03/14 20:32ID:???
>>683
拡張子をtxtとかにしろ
0686どーでもいい話だけど03/03/14 20:45ID:???
MIMEをtxtにしてもIEの馬鹿はHTMLと勘違いする時ある。ネスケは命令を忠実に守る。
なんなのIEは。
068768303/03/14 20:57ID:???
回答いろいろありがとうございます。

そうなんです。拡張子を.txtにしてもなぜかcgiが実行されてしまい
ます。ただし別ディレクトリに保存したら正しくソースが表示
されますが...できれば*.txtのファイルは別途作成せずに
やりたいです。
0688nobodyさん03/03/14 21:15ID:???
cgi-bin以下にあるファイルを全てCGIとして実行するように設定することがある。
cgi-binの中に画像ファイルを置いても表示されないことがあるのはそのタイプ。
apacheならScriptAliasってやつだね。

で問題のソースの表示だけど、
別ディレクトリにtxtで置くか、ファイルの中身だけを表示するCGIを別に作成する。
後者は下手なプログラムだと知らない人に遊ばれちゃうので注意が必要。
0689nobodyさん03/03/14 21:46ID:???
パスワードまで覗かれないでね。
069068303/03/14 21:53ID:0q8cRWlr
ありがとうございます。httpd.confにScriptAliasの指定がして
ありました。別ディレクトリに.txtをおくことにします。
0691nobodyさん03/03/15 02:42ID:Ch+qUXLE
ケントさんのデータ処理系スクリプトとかで、
ログを更新する際、
open(IN,"hoge.log");
@lines = <IN>;
close(IN);
push (@lines,"$d0<>$d1<>$d2<>$d3<>$d4\n");
open(OUT,">hoge.log");
@lines = <OUT>;
close(OUT);
って感じに一度全て配列に代入し、
配列に新しい値を加えた後、
ログファイルに書き込んでるんですが、

open(OUT,">>hoge.log");
print OUT "$d0<>$d1<>$d2<>$d3<>$d4\n";
close(OUT);
↑これじゃあだめなんでしょうか?
だめな理由とかあれば教えていただけないでしょうか?
0692nobodyさん03/03/15 02:48ID:???
>>691
配列に新しい値が加わっていないじゃないか
0693nobodyさん03/03/15 02:53ID:???
>>692
あ、そうですね。
でももう、その配列を利用しないのなら下のでもいいんですかね?

#即レスありが�dです。
0694nobodyさん03/03/15 02:59ID:???
>>693
ケントのは読み込んでからデータを追加してファイル丸ごと上書きだろ。

別に追加でも構わないけど、下のじゃロックもかけてないからダメだ。
0695nobodyさん03/03/15 03:08ID:???
>>694
追加でもかまわないんですね。
どうもありがとうございました。
あと、ロックですが、
前後に&lock;と&unlock;
してあるんで大丈夫と思います。
0696nobodyさん03/03/15 03:15ID:???
ケントのソースはあまり参考にしないほうがいいぞ
0697nobodyさん03/03/15 03:38ID:5hlN9xGB
初歩的な質問かもしれませんが、個人等で公開している
ドメイン検索エンジンは、通常どういった仕組みで作られて
いるのでしょうか。

検索してもこれといったものが見つからなかったため、
質問させていただきました。
すみませんが、どうか宜しくお願いします。
0698nobodyさん03/03/15 03:42ID:???
何を聞きたいのかよく分からんが、ネームサーバに問い合わせればいいんでないの?
0699nobodyさん03/03/15 04:08ID:???
それしかないよね
何を知りたいのだろう?
0700nobodyさん03/03/15 04:21ID:5hlN9xGB
>>698-699
説明不足ですみません。
お名前.comのような、.com等のドメインが空いているか
サーチするプログラムを自前で作りたいということです。
0701nobodyさん03/03/15 04:22ID:???
$xxがMD5のハッシュ値なら〜
見たいな事をしたいんですが、どのように書けばいいでしょうか?
0702nobodyさん03/03/15 04:26ID:???
>>700
ドメイン名を正引きすればいいだけ
0703nobodyさん03/03/15 04:27ID:???
正引きじゃねぇや、whoisだ
0704nobodyさん03/03/15 13:37ID:???
>>701
言語書いてないから適当に

/[0-9a-zA-Z+\/]*=*/
0705nobodyさん03/03/15 15:20ID:???
>>704
すいませんperlなんですけど、
/[a-fA-F\d]{32}/
↑これじゃあ見当違いですか?
0706nobodyさん03/03/15 18:05ID:sA3oWGif
この板が適切かどうか分からないんですけど、、、掲示板cgiに関する
質問です。
よく吐きだしたhtmlを直接表示させる掲示板cgiがありますけど、その吐きだした
htmlをいったんファイルとして保存して、そのhtmlを掲示板として表示させるように
するにはどうしたらいいんでしょ?
0707nobodyさん03/03/15 19:04ID:???
>htmlをいったんファイルとして保存して、そのhtmlを掲示板として表示させるように
そのまんま。
答え出てるじゃない。
0708nobodyさん03/03/15 19:16ID:???
ここでよいですよ。

> 吐きだしたhtmlをいったんファイルとして保存して、
> そのhtmlを掲示板として表示させるようにするにはどうしたらいいんでしょ?

htmlファイルを作る処理を終えたら、そのhtmlファイルに飛んだらいい話かと。
Perlなら print "location: URL\n\n";
070970603/03/15 19:57ID:1k1hrfmM
>>707
したいことの論理が正しいことは分かりましたが(w、具体的なやり方が
分からないのでし。

>>708
>htmlファイルを作る処理を終えたら、そのhtmlファイルに飛んだらいい話かと。
>Perlなら print "location: URL\n\n";
この行はどこに挿入したらいいんでしょうかぁ? フッター作成の後?
それともcgiの最終行ですか?
0710nobodyさん03/03/15 20:08ID:???
>>709
printで画面に表示する部分をファイルに出力に改造して、
その処理が終ったらLocationで飛ばす
071170603/03/15 20:10ID:1k1hrfmM
>>710
すみません
>printで画面に表示する部分をファイルに出力に改造して、
これの具体的な書き方を教えてください。
それから受け手のhtmlファイルですけど、何か準備は要りますか?
0712nobodyさん03/03/15 20:16ID:???
なんでわざわざhtmlのファイルを作りたいの?
0713nobodyさん03/03/15 20:18ID:???
>>711
自分でスクリプト書くスキルないのならKent-Webとか
CGIスクリプト配布サイトにあるの使っては?
下のが記事部分をHTMLファイルで出力してるタイプ。
http://www.kent-web.com/bbs/sunbbs.html?
071470603/03/15 20:20ID:1k1hrfmM
>>712
本来の目的は、掲示板cgiが生成して表示した掲示板のhtmlでは検索エンジンが
拾って来れないようなので、それを拾ってこれるようにするためです。
0715nobodyさん03/03/15 20:25ID:???
>>714
>拾って来れないようなので、

例えばgoogleとか拾ってくれます。
071670603/03/15 20:27ID:1k1hrfmM
>>715
いや、URLの末尾がxxx.cgiになっているものは拾ってきてくれないようですが。
0717nobodyさん03/03/15 21:26ID:???
ログファイルへの書き込みの後に画面表示のために
print "文字"; てのがあるはずだが、その部分を
open(FH,">$htmlfile"); print FH "文字"; close(FH) て感じにする。
そのままだと画面表示されないので、Locationで作成したHTMLにジャンプするって感じだな。
index.htmなどからリンクをはる時には $htmlfileにリンクをはれば良い。
ファイルロックするとかLocationを使いたくない時は自分で考えれ。

上からの流れをまとめるとこういう感じだ。
自分でできないと思ったら、あきらめるか>>713のところのを使うとよい。
0718nobodyさん03/03/15 22:26ID:???
>714
ロボット避けのMETAタグとかの勉強をした方が早いと思う。
0719nobodyさん03/03/15 22:28ID:5hlN9xGB
>>703
どうもありがとうございます。
おかげさまで前進することができました。
072070603/03/15 23:44ID:1k1hrfmM
>>717
うがー
>print "文字"; てのがあるはずだが、その部分を
>open(FH,">$htmlfile"); print FH "文字"; close(FH) て感じにする。
毎行こうするわけですか。かなりめんどい・・・

当分、諦めるかな・・・ 気が向いたら>>713も検討してみます。

>>718
ロボット避けのMETAタグは使用していないでし。
0721nobodyさん03/03/16 00:22ID:???
select FH;
0722nobodyさん03/03/16 00:25ID:???
open FH, '| tee filename';
select FH;
072370603/03/16 01:04ID:???
どうもお騒がせしましたが、とりあえず所期の目的を達成しました。
単にフレームのhtmlファイルをこしらえて、そこにcgiを流し込んだの
です。htmlファイルにはキーワードをしっかりと仕込みました、はい。

いろいろとお教えいただきありがとうございました。
0724nobodyさん03/03/16 02:01ID:0/UJ/9KJ
Perlで
+-2003
+-03
| +-16
| | +-0.dat
| | +-1.dat
| +-18
| +-0.dat
| +-1.dat
+-05
+-04
+-0.dat
とかなっているディレクトリ構成で、CurrentDirが今2003にいたと
して ./2003/03/ 配下の全データ(サブディレクトリ、ファイル)を
削除しようとした場合、みなさんどんなソース書きます?

やっぱ一番下までディレクトリ見に行って、ファイルを全部消して
からぽちぽちとディレクトリを消していかねばならんのですか?

なんか おぉ〜 っていうソースないですか?
0725nobodyさん03/03/16 02:04ID:0/UJ/9KJ
すまそ。ずれちった。
+-2003
  +-03
  | +-16
  | | +-0.dat
  | | +-1.dat
  | +-18
  |   +-0.dat
  |   +-1.dat
  +-05
    +-04
     +-0.dat
ね。
0726nobodyさん03/03/16 02:12ID:???
unlink '03';
0727nobodyさん03/03/16 02:13ID:???
UNIXコマンドを使う手もあるが、つかえない鯖も多いから、再起呼び出しで削除用のサブルーチン作った方がいい。

ちなみに>1はちゃんと読んだか?
0728nobodyさん03/03/16 05:44ID:zuyh3uNE
チャットで、同じ文字が続くと文字を小さくしたいんですが、どうすればいいんでしょうか。

こんにちは!!!!!!!!!!!!!!!  だとか
あいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえお だとか。
0729nobodyさん03/03/16 06:25ID:???
>>728
言語すら書かずに質問ですか。
みなさん、こんなのにマジ回答しても徒労に終わりますよ。
0730nobodyさん03/03/16 06:30ID:???
>>728
if($string/hoge*{2}){print"small$text";}
0731nobodyさん03/03/16 11:12ID:???
Perlなんですけど

<input type="radio" name="test1" value="$c_data1">

<input type="text" name="test2" value="$c_data2" size=6 maxlengh="6">

↑みたいな感じでラジオとテキストボックスでデータの入力を
選択できる状態にして・・・。

もしも、テキストボックスに文字列が入っていたら
ラジオボックスのデータを無効にしてテキストボックスに入力された
データを保存しる。ってものをやってるんですけど・・・。
テキストボックスに特定の文字列が入っていたら。の処理はわかりますが
その文字列が予測できないんで、不特定多数になっちゃって特定できず
ifのカッコ内でどう処理すりゃいいかワカンネーんです・・。
こんな説明で判ってくれる人がいたらヨロヨロでつ・・。
0732nobodyさん03/03/16 11:31ID:???
つーわけで
0733nobodyさん03/03/16 13:08ID:bu9vx7r5
>>727
ありがとです。やっぱそうなっちゃうかな。

んで板の注意ありがと。
やっちまいました。逝ってきます(T-T)
073473103/03/16 13:15ID:???
解決しますた。
0735nobodyさん03/03/16 13:18ID:0oFKfJrd
女
http://homepage3.nifty.com/digikei/sample/sample.html
0736nobodyさん03/03/16 14:33ID:vu3Qqexl
perlで

if ($testが「TEST>>」から始まっていれば) {
 print "$testから「TEST>>」を抜いたもの";
}

ということをしたいんですが、正規表現がよくわからず、
思ったように動いてくれません。
どのように書けばよいのでしょうか?
0737nobodyさん03/03/16 14:58ID:???
if($test =~ /^TEST>>(.*)/){
  print $1;
}
0738nobodyさん03/03/16 15:50ID:???
>>737
何故同じ事をしてるのに無理なんだろうと思ったら、
>を>にデコードしてたからでした。
すいませんでした。
0739nobodyさん03/03/16 15:51ID:???
>>738
&>です
0740nobodyさん03/03/16 15:53ID:???
書き方忘れた・・・
&&gt;ってことです・・・
0741nobodyさん03/03/16 16:00ID:F4DlRSun
掲示板への最終書き込み時間をHPのトップページに表示したいのですが
教えていただけないですか?
0742nobodyさん03/03/16 16:17ID:???
>>741
やればできそう。
0743nobodyさん03/03/16 16:27ID:???
>>741
できるけど、お前には無理だからやめとけ。
そんな漠然とした質問じゃ、掲示板のログの最新時間を
書き出せとしか言いようがない。
0744nobodyさん03/03/16 16:36ID:KSrtergb
>>742>>741
教えてください
0745nobodyさん03/03/16 17:10ID:zuyh3uNE
Perlでフォームの内容を判断させるにはどういう命令を使ったらいいんでしょうか。
あほ が含まれてるだとか、判断したいんです。
0746nobodyさん03/03/16 17:11ID:???
正規表現
0747nobodyさん03/03/16 17:12ID:???
パターンマッチ
0748nobodyさん03/03/16 17:22ID:zuyh3uNE
正規表現?パターンマッチ?
0749nobodyさん03/03/16 18:15ID:???
以下のスレッドで。
【Perl】初心者コーナー Part19
http://pc2.2ch.net/test/read.cgi/php/1044717887/
0750nobodyさん03/03/17 02:07ID:???
メメント観た。
これは凄い。しかし難しい。
記憶などがテーマになってる映画だが、
観ている側も気を抜かず、正確に記憶しないと、
話がわからなくなる。
そんな気がした映画でした。

しかし、今まで観た映画の中で一番疲れたかも。
0751nobodyさん03/03/17 02:08ID:???
思いっきり誤爆スマソ
0752nobodyさん03/03/17 02:09ID:???
メメントのCGI化キボンヌ
0753nobodyさん03/03/17 02:12ID:???
w
0754nobodyさん03/03/17 05:50ID:???
■ 新しいサーバで read.cgi が正しく動かない問題。
http://qb.2ch.net/test/read.cgi/accuse/1047840578/l50

誰か詳しい方、分かりますでしょうか?
0755nobodyさん03/03/17 12:28ID:DmD+ibnT
「既に配布されていないCGI」を集めてるスレを探してるんだけど、
誰かどこにあるか知らない?
どこかのスレの関連スレで見かけたんだけどどこだかわかんない。スレタイを
覚えてないもんで・・。
0756nobodyさん03/03/17 12:45ID:???
>>755
dat落ちしますた
075775503/03/17 12:57ID:???
>>756
あちゃー。検索しても出ないワケだね。
Thanx。
0758nobodyさん03/03/17 15:02ID:???
>>757
ちなみにダウソ板にあったんだよ。
あやすぃCGI関連だったけどね。
0759nobodyさん03/03/17 17:30ID:6C47WdHm
質問します。
SELECTタグのMULITIPLEで選択したやつを、一定件数表示させ、
前頁、次頁で送るのがうまくいきません。
ちなみに
a href=\"$script?mode=serch&page=next&SELECTDATA=$SELECT"
を、次頁に貼り付けてます。
ページ送りをはずすと問題ないんですが?
どうも、SELECTDATAの区切りの判断に原因があるみたいとは思うんですが、
そこから先が(?_?)です。
おだづげを。
0760nobodyさん03/03/17 17:59ID:???
>>759
そもそも言わんとしてることがさっぱりわからん。

> うまくいきません。
どう、うまくいかないのさ?

> ページ送りをはずすと問題ないんですが?
はずしたら、「前頁、次頁で送る」という用件を満たさないんじゃねーの?
0761bloom03/03/17 18:05ID:A0XLzQcG
http://www.agemasukudasai.com/bloom/
0762nobodyさん03/03/17 18:23ID:6C47WdHm
>>760
すんません。
FROMで条件を選択させる簡易データーベースなんですが、
単数選択だと問題なく表示されます。前頁、次頁の送りも問題ありません。
ところが、複数選択すると1件も表示されなくなります。

>はずしたら、「前頁、次頁で送る」という用件を満たさないんじゃねーの?
そのとおりです。選択自体は問題ないといいたかったので。
0763nobodyさん03/03/17 18:31ID:???
結局、コードがおかしいだけじゃねーか
0764nobodyさん03/03/17 18:31ID:???
>>762
$SELECT にどんな文字列になってるのかも示さずに
>どうも、SELECTDATAの区切りの判断に原因があるみたいとは思うんですが、
>そこから先が(?_?)です。
なんて書かれても答えれないですー。
0765nobodyさん03/03/17 18:40ID:???
>>762
普通にprintデバッグしろや。まずは原因を突き止めろ。
0766nobodyさん03/03/17 18:53ID:???
つーか痛すぎだろこいつ
そんな説明で満足いく解答が返ってくると思うか普通?
それすらも判らないんだから、まず無理。
0767nobodyさん03/03/17 18:59ID:???
>>766
まぁ、とりあえずは >>764 や >>765 に対する回答を待つとしましょうや。
0768nobodyさん03/03/17 19:43ID:6C47WdHm
無茶苦茶言われてる、759です。
なんせ、CGIはじめた馬ツ鹿なもんで・・。
sub search {
・・・
&repeate;
#ここで、P1をPRINTさせると、(AとBで検索した場合)AB と表示される
#「次頁」をクリックすると、ここで終了してしまう。
if ($i == 0) {
print "<P><LI>該当する内容がありません\n";
} else {
・・・
if ($next < $i) {
print "<a href=\"$script?mode=search&page=$next&P1=$P1\> 次頁 </a>\n";
・・・}

}


#改行が多すぎるとしかられたので、その1
0769nobodyさん03/03/17 19:44ID:6C47WdHm
その2 759です。

#------------------
sub repeate {
$start = $page + 1;
$end = $page + 12;
$P1 = $in{'P1'};
・・・
@P1M = split(/\0/,$P1);
$flag = 1;
foreach (@P1M){
if ($_ ne "指定なし" && $_ ne $p1){
$flag = 0;
}else{
$flag = 1;
last;
}
}
if (!$flag) { next; }
・・・
こんなんで、いいでしょうか?自分としたら(AとBで検索した場合)AB の区切り文字が認識されずにABで検索されてしまっているんでは?
と思ってんですが。じゃぁSPLITは?
と、こんがらがっているんですが。
やっぱ、説明になってないですか?
0770nobodyさん03/03/17 19:53ID:???
さっぱり分からんが、ひとつ気になった。
$P1と$p1は違う変数。もし分かってやってるとしても、紛らわしくてバグの原因になるので
こういう命名法はやめたほうがいい。
アドバイスできなくてすまん。
0771nobodyさん03/03/17 20:02ID:???
>>768
>なんせ、CGIはじめた馬ツ鹿なもんで・・。
お前無茶苦茶言われてる理由がわかんねぇのか?
CGI初心者は歓迎だよ。お前がコミュニケーション初心者だからだよ。
例えお前がCGIのプロだったとしてもそんな質問の仕方したら同じように叩かれる。
0772nobodyさん03/03/17 20:10ID:YHcQyyod
perlでファイルをアップロードするプログラムを組んでいます。
ファイルと、その他の入力項目も同時にPOSTしており、
サーバー側で、入力のエラーチェックもやっています。

入力エラーを判断すると、エラーのHTMLを出力します。
ユーザーには、ブラウザの戻るボタンで、入力画面に戻らせようと
考えているのですが、IE6では「ページの有効期限切れ」が表示されてしまい、
入力画面に戻ることができません。

IEの仕様ということは解っているのですが、何とか回避する方法はないのでしょうか?

やはり、入力値を保存しといて、それを元に再表示するしかないんすかねぇ・・・
0773nobodyさん03/03/17 20:27ID:???
戻ってデータが消えているよりはよっぽどマシでしょう。
0774nobodyさん03/03/17 20:28ID:???
>>768-769
こんなのだけじゃわからんわ
0775nobodyさん03/03/17 20:32ID:6C47WdHm
>>770
有難うございました。
0776nobodyさん03/03/17 21:07ID:???
>>759
送られてきたデータをどうやって変数に入れてるかわからないからこんな回答でがまんしる。

@P1M = split(/\0/,$P1);
$flag = 1;$SELECT_DATA = "";
foreach (@P1M){
$SELECT_DATA .= "P1=$_&";
if ($_ ne "指定なし" && $_ ne $p1){
$flag = 0;

送られてきたときの P1=aaa&P1=bbb&P1=ccc& の形に戻して$SELECT_DATA に入れて
次のページへのリンクには
print "<a href=\"$script?mode=search&page=$next&$SELECT_DATA\"> 次頁 </a>\n";

(multipleの\0区切りはcgi-libかな?)
0777nobodyさん03/03/17 21:17ID:???
>>768
> #ここで、P1をPRINTさせると、(AとBで検索した場合)AB と表示される
質問するときは、文章で説明するんじゃなくて、
ソース「そのもの」と結果「そのもの」を明示してよ。
AとBが選択されていたなら、追加した print 文による結果は
...&SELECTDATA=A&SELECTDATA=B&...
みたいな感じになったはず。これを「このまま」書いて質問して欲しいの。

質問ではこれがいきなり AB になってるから、途中で何をやっているやら
回答する側だってサパーリなの。。。
0778nobodyさん03/03/17 21:57ID:???
「質問内容を校正するスレ」があるといいんだがな。
質問する前にそこでちゃんとした質問文にする、と。
#しかしアフォな質問の仕方しかできないやつは↑のスレを利用するなんて考えもしないだろうな。
0779nobodyさん03/03/17 22:30ID:???
なんか幼稚園児の教育みたいだなw
0780nobodyさん03/03/17 22:33ID:???
むしろ全ソース上げて仕様を示せ
0781nobodyさん03/03/17 22:34ID:???
>>772
Expires: ヘッダを付けるか、mod_exipres 組み込んで、いろいろといぢってみるとか?
やったこと無いのでこれ以上はマニュアル参照キボンヌ。
0782nobodyさん03/03/17 22:38ID:???
いや、質問者からいかにして質問の要点を引き出すか、というのも
このスレの楽しみかたの一つなのですテヘテヘ。
0783nobodyさん03/03/17 22:38ID:???
>>772
わざわざ別ページにしないで、入力画面の上にでも
エラーメッセージ出せばいいじゃないの
エラー項目に印でもつけてどこがエラーか教えれば十分でしょ
0784nobodyさん03/03/17 22:46ID:6pGOeCWh
これ買おうと思ってんだけど、どうよ?
「インターネットショップのためのCGI&受注管理」
http://www.amazon.co.jp/exec/obidos/ASIN/4871938883/ref=pd_bxgy_img_2/250-2312092-8829042
0785772 [解決]03/03/17 23:25ID:???
回答感謝でっす。

>>781
その辺、いろいろやってみました・・・が、だめでした。

>>783
あ。その手があったか・・・
でも、たった今、再表示するロジック書き終わったとこです・・・
明日書きゃよかった・・・ウワァァン!
0786nobodyさん03/03/18 03:19ID:???
検索エンジンで、チェックボックスをチェックしてるカテゴリからのみ検索
って感じのことをしたいのですが、
たとえば、↓のようにしたとき、

<input type="checkbox" name="hoge" value="0">
<input type="checkbox" name="hoge" value="1">

複数を選択することができない(しても意味ない)ですよね?
それで、色々検索したんですけど、

<input type="checkbox" name="hoge[]" value="0">
<input type="checkbox" name="hoge[]" value="1">

↑こんなんでやるみたいだって事はわかったんですが、
それ以上はわかりませんでした。
少しでもいいんで、助けていただけないでしょうか?
0787nobodyさん03/03/18 03:27ID:???
>>786
「複数を選択することができない」のはtype=radioだ。
type=checkboxは複数選択できる。
0788nobodyさん03/03/18 03:37ID:???
>>786
チェックボックスは複数選択できる
nameは同じ項目のチェックボックスなら同じ名前にする
hogeでもいいけど、後の[]はなんだ?いらない
valueは送信文字列で数字でも単語でもいい
他に送信ボタンなんかも必要

で、これを何で受け取って処理するわけ?
0789nobodyさん03/03/18 03:45ID:???
え?ちょっとまってください
<input type="checkbox" name="hoge" value="0">
<input type="checkbox" name="hoge" value="1">
<input type="checkbox" name="hoge" value="2">
<input type="checkbox" name="hoge" value="3">
で、2つ目と3つ目を選択したとき、
値はどう入るんでしょうか?
hoge=1,2ってなるんですか?
0790nobodyさん03/03/18 03:46ID:???
検索エンジンのイメージだとcheckboxがいいだろうな。
<input type="checkbox" name="hoge_1" value="1">て感じか。
最近perl弄ってないから忘れたが、hoge[]て使えるのか?
0791nobodyさん03/03/18 03:56ID:???
>>789
hoge=1&hoge=2となる。
同じnameが複数出てくるわけ。
cgi-lib.plなどでは、これを\0区切りで分解してくれる。
0792nobodyさん03/03/18 04:05ID:???
>>791
なるほど解りました

で、最終的に全ての値を@hogeに入れたいんですが・・・
どのようにすればいいのでしょうか?

#そろそろウザイですよね?すいません
0793nobodyさん03/03/18 04:10ID:???
>>792
自分でやってもいいし、cgi-lib.pl使ってるんだったら、
>>791が言うように
>cgi-lib.plなどでは、これを\0区切りで分解してくれる
んだから、\0で区切ればいい。
0794nobodyさん03/03/18 04:12ID:???
>>792
<FORM>タグで囲んで送信先を指定とかしないと。
その送信先が受け取ってフォームデコードして
分割や置換えなど必要な処理をして代入すればいい。
0795nobodyさん03/03/18 04:13ID:???
jcode.libしか使ってないんですよ

明日調べてみます。今日はもう眠いんで
どうも有難うございました。
0796nobodyさん03/03/18 04:13ID:???
>>790
INPUT要素のNAME属性の値はPerlとは全く関係ないだろ。
PHPなら関係あるかもしれんが。
0797nobodyさん03/03/18 04:14ID:???
libじゃないやplでした
0798nobodyさん03/03/18 04:14ID:???
>>795
ってことは自分でQUERY_STRINGか標準入力をパースしてるんだよな?
だったら「hoge=1&hoge=2」とかの数字を記録すればいいんじゃねーの。
0799nobodyさん03/03/18 04:16ID:???
>>794
その辺はわかってます
書いてないだけです
0800nobodyさん03/03/18 04:33ID:???
>>799
そもそも、>>789「値はどう入るんでしょうか?」はprintすりゃ分かるだろ?
自前でパースしてるみたいだし。それぐらいやらなきゃ質問する資格無しよ。
0801nobodyさん03/03/18 14:04ID:???
>>799
わかってますって、こっちはあんたがどういうレベルなのか
わからんのだよ。

>複数を選択することができない(しても意味ない)ですよね?
チェックボックスとラジオの区別がついていないPC初心者みたいなこと
書いてたら余計にそう思うだろ。

省略するなら全体がわかるぐらいの説明ぐらい書いてくれ。
0802nobodyさん03/03/18 14:14ID:???
>>801
チェックボックスとラジオボタンならともかく、チェックボックスとラジオの区別が付かん奴はおらんと思うぞ。
0803nobodyさん03/03/18 14:22ID:???
質問スレで情報を小出しにする奴はまともな返答をもらえると思っちゃいけない。
どうせ何が必要で何が必要でないかの判別もできないんだからな。
それがわかってるなら最初から自己解決できるはずだ。
質問するなら最初から全ての情報を掲示せよ。
0804nobodyさん03/03/18 14:25ID:???
>>789の質問に対する答えは、>>791で完了している。

>>792の質問の答えはこれで十分じゃろ。むう。
use CGI;
my @hoge = CGI->new->param('hoge');
print join(',', @hoge) . "\n";

もし、まともな質問ができるなら、殆どの場合、自分で問題を解決できる。
0805nobodyさん03/03/18 14:35ID:???
>>801
君、全然わかってないでしょ?
>>789みてもまだ>>794見たいなことを言う君っていったい
0806nobodyさん03/03/19 03:13ID:???
質問させてください。
$message =~ s/(https?)\:([\w|\:\!\#\$\%\=\&\-\^\`\\\|\@\~\[\{\]\}\;\+\*\,\.\?\/]+)/<a href=\"$1\:$2\">$1\:$2<\/a>/g;
↑これでオートリンクにできるんですが、ttp://でも自動リンクにしたい場合どう書けばいいのでしょうか?
0807nobodyさん03/03/19 03:30ID:???
h?ttps?
0808nobodyさん03/03/19 03:59ID:???
>>807
有難うございます。でもそれじゃあttp://にリンクされてしまいます。
言葉が足りてませんでした。httpに直してリンクしたいって事です。
0809nobodyさん03/03/19 04:03ID:???
誤解を招くんで書き直します。

$message =~ s/(https?)\:([\w|\:\!\#\$\%\=\&\-\^\`\\\|\@\~\[\{\]\}\;\+\*\,\.\?\/]+)/<a href=\"$1\:$2\">$1\:$2<\/a>/g;
↑これはhttp://hogeを
<a href="http://hoge">http://hoge<;/a>にしてくれます

で、私がしたいのは
ttp://hogeを
<a href="http://hoge">ttp://hoge</a>にってことです。
つまり表示はttpでリンク先はhを足したのです
0810nobodyさん03/03/19 04:11ID:???
$message =~ s/(https?)\:([\w|\:\!\#\$\%\=\&\-\^\`\\\|\@\~\[\{\]\}\;\+\*\,\.\?\/]+)/<a href=\"$1\:$2\">$1\:$2<\/a>/g;
$message =~ s/(ttp)\:([\w|\:\!\#\$\%\=\&\-\^\`\\\|\@\~\[\{\]\}\;\+\*\,\.\?\/]+)/<a href=\"http\:$2\">$1\:$2<\/a>/g;
すいませんこれで解決しました。
でももっとスマートな方法あれば教えて頂けませんか?
0811nobodyさん03/03/19 04:40ID:???
$message =~ s/(h?)(ttps?)\:([\w|\:\!\#\$\%\=\&\-\^\`\\\|\@\~\[\{\]\}\;\+\*\,\.\?\/]+)/<a href=\"h$2\:$3\">$2\:$3<\/a>/g;
0812nobodyさん03/03/19 07:52ID:???
いかんいかん
$message =~ s/h?(ttps?)\:([\w|\:\!\#\$\%\=\&\-\^\`\\\|\@\~\[\{\]\}\;\+\*\,\.\?\/]+)/<a href=\"h$1\:$2\">$1\:$2<\/a>/g;

ところで、なんでこんなことするわけ?
見たところ、掲示板か何かの本文の処理みたいだけど。
せっかくh抜きで書いたものを、強制的に直リンにしてしまうとは・・・
0813nobodyさん03/03/19 08:00ID:???
わざわざリンクを切っている意味を知らない厨だからだろう。
0814鳩03/03/19 10:52ID:???
Perlでwgetを使おうとしています。

#!/usr/local/bin/perl

$WGET = "/usr/bin/wget";
$URL = "http://www.yahoo.co.jp/index.html";

@lines = `$WGET -q -O - $URL` or die;

print "Content-type:text/html\n\n";
print @lines;

exit;

こんな感じで、とりあえず取得はできるんですが、User-Agentの指定はできるんでしょうか?
教えてください。お願いします。
0815nobodyさん03/03/19 11:07ID:???
>>814
-U オプション
0816nobodyさん03/03/19 21:31ID:dpgy+pXr
チャットで初期画面にログが出なくて、一度発言するとログが出るんですが、
なぜ出ないのでしょう?
どういうことが考えられるかわかりますか?
0817nobodyさん03/03/19 21:48ID:???
>>816
>どういうことが考えられるかわかりますか?

あなたの頭が相当に悪いということぐらいしかわかりません。
どこのチャット(スクリプト)の話をしてるかぐらい書きなさい。
0818nobodyさん03/03/19 22:04ID:nD9UxgHP
>>817
いや、自分で作ってるヤツなんですが、
初期画面でログが出ないのってよくある落とし穴かと思って、
よくある落とし穴の答えを出してくれるかと思っちゃいました。

初期画面でログが出なくて、フォームだけ出るのってあんまり無いことなのかな?
0819nobodyさん03/03/19 22:08ID:???
落とし穴も何も、自分で掘った穴に落ちてるだけじゃねーか

↓↓↓次の方どうぞ↓↓↓
0820nobodyさん03/03/19 22:08ID:???
>>818
初期画面でログが出ないようにお前が作ったんだろ。

お前しか知らないソースのバグが俺たちに分かるわけ無いだろうが。
0821nobodyさん03/03/19 22:09ID:???
お ま い が そ う 作 っ た か ら
-- 終了 --
次
0822nobodyさん03/03/19 22:19ID:???
よくある落とし穴じゃないってことですね。
どうもありがとうございました。
0823nobodyさん03/03/19 22:45ID:w/Iesnah
HP持ってるヤツのうち反戦者集まれ!行動しよーぜ
http://sports2.2ch.net/test/read.cgi/iraq/1048063233/l50

各板司令部へ入電
現在イラク板で反戦バナー製作の案が出ております。
これに伴い人材が不足している為苦戦中です。
余力のある方世界平和の為に救助を求みます。

計画
1、バナー画像を作る。
2、アクセス集計プログラムと設置集計プログラムを作る。
3、クリック先のページを作る。(2の設置できる場所)
0824nobodyさん03/03/20 19:49ID:7VWyNL/K
なつみかんなどのアンテナはサーバに常駐するものなのでしょうか?
また、そうなのであれば常駐しない手動更新のアンテナというものは存在するのでしょうか?
0825nobodyさん03/03/20 20:23ID:???
>>824
手動更新のアンテナって要するにLast-Modifiedチェッカ?

あるアクセスが前回のアクセスから一定時間たってる場合、Last-Modifiedを
再取得するようなスクリプトは組んでみたけど、サーバがLast-Modifiedを
返してくれなかったり、対象に日時を取得できるような文字列が無かったり
するケースだと、仕様的にNGだったなあ。
0826nobody03/03/20 23:34ID:Oa4xESM8
某サイトを運営しております。
先日、利用している掲示板のデータが紛失してしまいました。
バックアップを取っておいたので上書きしたらデータがおかしな所で区切られるようになりました。
普通は「,」で日付やタイトルや名前、本文などを区切られているのですが
途中から改行で区切られるようになってメチャクチャになってしまいました。
あたりまえですが掲示板のコメント本文には改行が多く含まれている為困っております。
データを一行ずつ改行を消すか<BR>を入れるにしても量がハンパじゃありません。
誰かCGIに詳しい方、正しく表示できる方法を教えてください。よろしくお願いします。
0827nobodyさん03/03/20 23:57ID:???
それだけで誰が答えられるって言うんだ・・・
0828nobodyさん03/03/21 00:05ID:???
本文中の改行と、レコード区切りの改行を違うものにして識別しているのは、
移植性が悪いと思うんだけど、その辺はレスキューやらKENTの脳では考えられ
なかったらしい…。っていうのがその問題の原因。あまり関係ないけど…。

で、どうやって復活させるかというと、1レコード中の項目数は同じなんだから、
これを利用すればいい。

レコードの区切りを\n、本文中の改行を\rにする

my @all = split(/,/, $all);
while (@all) {
 my @line = splice(@all, 0, 1行の項目数);
 foreach (@line) {
  s/\x0d\x0a/\r/g
  tr/\x0d\x0a/\r/;
 }
 print OUT join(',', @line) . "\n";
}
0829nobodyさん03/03/21 00:08ID:???
print OUTの前に、
$line[-1] =~ s/\x0d?\x0a?$//;
がないとゴミが発生するな。。
0830nobodyさん03/03/21 00:09ID:???
あ。。trがおかしい。
tr/\x0d\x0a/\r\r/;
083182603/03/21 00:22ID:7GAZusfY
ご親切にありがとうございます。
でも自分はperlやCGI言語が実はあまり分かりません…。
でもなんとか頑張ってみます。
0832nobodyさん03/03/21 00:38ID:???
> perlやCGI言語が実はあまり分かりません…。

じゃあ、どういう回答を期待していたのか。

0833nobodyさん03/03/21 00:41ID:???
>832
Web製作の方から誘導されてきた模様。
0834nobodyさん03/03/21 00:56ID:???
>>833
ふむ。提示された情報はあちらと同じなのかな。

>>826 は、掲示板スクリプトの入手先 or ログファイルの中身の一部(晒すべきでない
箇所はマスクして) 等の情報は、最低でも提示しないと。
0835nobodyさん03/03/21 02:19ID:???
HTMLみたく、「タグで何とかなる」と思ってんじゃない?
0836nobodyさん03/03/21 02:58ID:???
ここの画像アップBBS使ってるんですが、画像の番号をオリジナルに
するには、何処をつつけばいいのでしょうか?
www.kent-web.com/bbs/joyful.html?
0837nobodyさん03/03/21 03:13ID:???
>>836
改造スレへ
0838nobodyさん03/03/21 21:41ID:???
anHTTPdスレでレスが無かったので、こちらに来ました。

anHTTPdでCGIを起動している時、CGIでヘッダーを「text/plain」と
プレーンテキストとして出力しているのですが Htmlと解釈されていまします。
設定で直るのでしょうか?
0839nobodyさん03/03/21 21:51ID:???
>>838
IE は Content-Type を無視してデータの中身で判断する
インテリジェントなブラウザです。
0840nobodyさん03/03/21 23:01ID:???
>>838
hogehoge.cgi
なら
hogehoge.cgi/
で騙せる。> IE
0841nobodyさん03/03/21 23:10ID:???
お二方、有難うございます。
ずっと悩んでいたんですが、ブラウザの仕様・・?だったんですね。
0842T女の竹田03/03/22 00:08ID:???
>>841
hogehoge.cgi?.txt とか(笑)
0843T女の竹田03/03/22 00:13ID:???
あ、今試してみたけどダメだね。
wmaの時はこれでうまく行ったんだけど。
さすがマイクロソフト!
0844T女の竹田03/03/22 00:28ID:???
Wordもそうだけど、なぜマイクロソフトは
「HTMLっぽく見える」
「ユーザーがテキストだと激しく主張している何か」を
HTMLとして扱うことに、こうまで執念を燃やすのだろう?
マイクロソフトに何か利益が?
0845nobodyさん03/03/22 00:36ID:???
イラク攻撃と同じぐらいの何かがあるのだろうよ
0846nobodyさん03/03/22 04:28ID:???
IEだとHTML文書をそのままテキストとして見せたいという要求は認められないのか。
0847nobodyさん03/03/22 06:38ID:???
面白いのみつけた。
http://pc.2ch.net/test/read.cgi/prog/1045401372/381
さすがIE!
0848nobodyさん03/03/22 12:25ID:QDGorIu0
質問があります。
FORMで送信し、それを処理するのはCGIですよね?
他にもありますか?

実は、早稲田大学のシステムで、フォームターゲットが〜〜.htmになっているんですが、
これって機能するんでしょうか?
実際ページを表示できませんと出るんですが・・・科目登録ができない・・・
0849nobodyさん03/03/22 12:29ID:QDGorIu0
具体的ソースです。
一部伏せています。

<html>
<body onLoad="fncSubmit();">
<script type='text/javascript'>

function fncSubmit() {
// submit
document.frm1.submit();
}

</script>
<form name="frm1" action="https://www.***.******.**/******/********.htm" method="POST">
<input type="hidden" name="HID_P1" value="*******">
〜〜〜中略〜〜〜

</form>
</body>
</html>

これが原因でエラーなのでしょうか?
それとも単に込んでいるだけなのかわかりません......
0850nobodyさん03/03/22 12:29ID:???
>>848
ASPとかServletとかJavaScriptとかそもそもブラウザとか。いろいろ。
0851nobodyさん03/03/22 12:30ID:???
>>850
htm拡張子でも有り得るわけですね?
ありがとうございました
0852nobodyさん03/03/22 12:53ID:???
UNIXは拡張子に依存していない
0853nobodyさん03/03/23 05:01ID:obrjhThh
アップロード/ダウンロードCGIについて質問です。
通常、ひとつのファイルしかアップロード/ダウンロード出来ませんが
ディレクトリを指定して、その階層化のファイル、ディレクトリをまるごと
アップロード/ダウンロードする事は出来ませんか?
0854nobodyさん03/03/23 05:28ID:???
できません。
0855nobodyさん03/03/23 08:30ID:???
フォルダを圧縮すればok
0856nobodyさん03/03/23 16:27ID:GYklYBj0
アップロードcgiをperlで作っている最中です。

クライアント側を↓こう定義して、localファイルを指定してボタンを押し、
<FORM ACTION="/cgi-bin/upload.cgi" ENCTYPE="multipart/form-data" METHOD="POST">
ファイル: <INPUT TYPE="file" NAME="File" SIZE="32"><BR>
<INPUT TYPE="submit" VALUE="送信">
</FORM>

cgi側でこう受け取ると
require 'cgi-lib.pl';
&ReadParse(\%in);
print "$key=[$in{$key}]<BR>\n" foreach $key ( keys %in);

ファイルの内容は
$in{'File'}に格納されるのですが、
localファイル名を取得することができません。

htmlの定義が足りないような気がして色々調べてみましたが
よくわかりませんでした。

スレ違いなような気もしますがよろしくお願いします。

0857nobodyさん03/03/23 16:31ID:???
>>856
ファイル名なんて飛んでくるんですか?
0858nobodyさん03/03/23 17:24ID:???
ファイル名は来ませんよ。中身だけです。
0859nobodyさん03/03/23 17:38ID:???
>>856
cgi-lib.pl 使うのは悪いこっちゃないが、「やりたい事」がそこまで明確ならば、
まず標準入力からどんなデータを取得できるのかをファイルに落とす、等して
確かめてみればすぐ解ることだと思われ。
086085603/03/23 17:41ID:???
ありがとうございました。
0861nobodyさん03/03/23 19:38ID:???
>>825
亀レスですが、アンテナ自体のプロセスが常駐するものだと思っていました。
調べててcronを使えばいいことを知り、さっき設定がうまくいきました。どうもです。
0862nobodyさん03/03/23 21:52ID:???
元の名前でうpできるアップローダなかったっけ
0863nobodyさん03/03/23 23:32ID:hItEViUJ
$hoge$huga$fooのうち、
2つ以上選んだ場合にエラーが出るようにしたいんですが、
私の頭では恥ずかしながら下のが限界でした。
もうちょっとコンパクトに書くにはどうすればいいんでしょうか?

if (($hoge ne '' && $huga ne '') || ($huga ne '' && $foo ne '') || ($foo ne '' && hoge ne '') || ($hoge ne '' && $huga ne '' && $foo ne '')) {
 &error("一つだけにして!!");
}
0864nobodyさん03/03/23 23:43ID:???
>>863
選ぶと言うのがよくわからん。
それはHTMLのフォームから入力した場合をいうのか?
多分そうだろうな。
んで、言語はPerlか?
やっぱり、多分そうだろうな。

だったら、PerlではないHTMLの部分で、radioを使えばそもそも一つしか選べなくなるけど、
そういうことではないのか?
0865nobodyさん03/03/23 23:53ID:???
>>864
選ぶってのは間違いです。スマソ
テキストボックスが3つ(hoge,huga,foo)あって、
たとえば、hogeに何か書き込んであるのに
hugaにも値が入ってると、
えらーを出したいって事です。
0866nobodyさん03/03/23 23:53ID:???
あ、perlです
0867nobodyさん03/03/23 23:56ID:???
あ、因みに一つも選んでないときもエラーを出したいんですが、
今は別でやってます。
もしこれも一緒にできれば一緒にしたいんですが・・・
0868nobodyさん03/03/23 23:57ID:???
>>865


//hogeの処理
if($hoge ne "")
{
if(!($huga eq $baka eq ""))
エラー

}

//hugaの処理
if($huga ne "")
{
if(!($hoge eq $baka eq ""))
エラー

}


・・・
0869nobodyさん03/03/24 00:28ID:???
>>868
あぁ、そうやって処理をわけるか>>863か迷ったんですけど
そっちの方がいいですかね
参考になりましたサンクスです
0870nobodyさん03/03/24 01:52ID:???
>>865
die("いってよし") if ( ($hoge ne "") + ($huga ne "") + ($baka ne "") ) > 2;
ってのはどうよ?
0871nobodyさん03/03/24 01:54ID:???
>>863
$count=0;
map{$count++ if $_ ne ''; } ($hoge, $hage, $foo);
if ($count != 1) {
エラー
}
って手もあるよ。
087287003/03/24 01:57ID:???
>>865
die if (!$a + !$b + !$c) > 1;
こっちの方がよかったかも?
087387003/03/24 02:00ID:???
die unless (!$a + !$b + !$c) > 1;
ダタヨ。鬱だ。
0874nobodyさん03/03/24 02:15ID:???
>>872-873
それは、'0'のことを考えるとあまり良くないような。
それに、>1 じゃなくて、>=1と書きたかったのでは?

結局、
die unless ($a ne '') + ($b ne '') + ($c ne '') != 1;
でどう?
0875nobodyさん03/03/24 02:58ID:???
皆さんサンクスです。かなり参考になりました。
0876nobodyさん03/03/24 05:49ID:???
CGI動かしたら502ってエラーが出てきたけどこれはなんでしょう?
0877nobodyさん03/03/24 06:02ID:???
書き忘れ。調べたら、
「ゲートウェイ,もしくはプロキシとして動作させているサーバが,上流から無効なレスポンスを受け取ったことを示す」
って出てきたけど素人の俺様には意味が分かりませんでした。
0878nobodyさん03/03/24 12:29ID:???
>>863
$it = $hoge || $huga || $foo;
if ($hoge.$huga.$foo ne $it) { # 連結して比較
  &error("一つだけにして!!");
}
じゃだめか?
0879nobodyさん03/03/24 18:22ID:JKyHEx6G
質問です.

CGI で HTML のデータを標準出力するようなものを
実行したときには,その HTML が WWW ブラウザに
表示されるのでしょうか?
0880nobodyさん03/03/24 18:25ID:???
>>879
Perl スレの回答じゃダメなのか…
088187903/03/24 19:10ID:JKyHEx6G
あの,ある CGI プログラムに関して,
標準出力に HTML をちゃんとはき出してるのを確認したんですが,
WWW ブラウザからその CGI を実行すると,
何も表示されないんです.

どうしてなんでしょうか?
0882nobodyさん03/03/24 19:32ID:???
ソース晒せ
0883nobodyさん03/03/24 19:55ID:???
>>881
タグだけで、httpのヘッダがないんじゃないの?
0884nobodyさん03/03/24 20:02ID:???
>>881
telnetで確認しろ。最初の15行を晒せ
0885nobodyさん03/03/24 20:17ID:???
>>881
> 標準出力に HTML をちゃんとはき出してるのを確認したんですが,

これもあやしいな。どうやったんだか
0886nobodyさん03/03/24 20:41ID:???
CGIをダウンロードしようとするとhtmlファイルになってしまうのですが
そのままDLすることはできないんですの?
0887nobodyさん03/03/24 20:49ID:???
>>886
>CGIをダウンロードしようとすると
意味不明。まあ言わんとしてることは解るんだけど。

その CGI とやらは配布されているものなのか?
だとしたら配布元に聞くのが最速解。
0888nobodyさん03/03/24 20:57ID:???
配布元じゃないっすわ
フリーで配布されてる掲示板が上手く改造されてたんでちょっとあたしも欲しいな〜と
フォルダ覗けたんでcgiを頂きたいな〜と思ったんですの
でもhtmlに…
無知で文才もなくてすまそ。
0889nobodyさん03/03/24 21:07ID:???
***.cgiにアクセスすると、そのCGIが実行されて結果だけが送られてくる(という設定にしているサーバがほとんど
0890nobodyさん03/03/24 21:33ID:fQ3PutSJ
>>888
この方法で無断ダウンロードしようとすると、不正アクセス禁止法でタイーホされるかも(ウソデス)
本人にメールを送って頼み込むのがいい。ただし、必ずくれるとは限らないので注意。
0891403/03/24 21:37ID:muzproYQ
同じサーバのアカウントとってSCRIPT_FILENAMEから相手の
ディレクトリを予想してターゲットのファイルをopenすればうまい
具合にタイーホされる。
0892nobodyさん03/03/24 21:37ID:???
っちゅーかね、先に >>888 を言えよ。
どーしてこう質問下手な奴ばっかりなんだ?
0893nobodyさん03/03/24 21:48ID:???
【特許】今では一般的なCookieによるセッション管理に関する特許が成立していた
http://book.2ch.net/test/read.cgi/bizplus/1048507777/
0894nobodyさん03/03/24 21:48ID:???
もう一度お尋ねさせてもらいます。
502エラーが出ました。検索してみると
「ゲートウェイ,もしくはプロキシとして動作させているサーバが,上流から無効なレスポンスを受け取ったことを示す」
と、出てきましたが意味が分かりません。
このサーバーは俺に何をしろと言ってるのでしょうか?

502になる時と正常に動く事はマチマチです。
0895nobodyさん03/03/24 21:55ID:???
>>894
そのサーバは自鯖?レン鯖?
動かしてるプログラムは自作?拾い物?
サーバのログ等は見られるの?

この程度の情報も出さずに回答がもらえると思っちょるのかバカチン。
089687903/03/24 23:01ID:JKyHEx6G
ども.

>>885

確認はコマンドラインからしました.
ヘッダをつけても同じことでした.

なんででしょう?
0897nobodyさん03/03/24 23:07ID:???
>>896

>>882に対しては無視か? まともに質問ができない奴は回答されないぞ?
089887903/03/24 23:15ID:JKyHEx6G
ソースさらせというのはもっともなんですが,
質問に関係ない部分をどう廃除していいかわからなくて…
0899403/03/24 23:25ID:muzproYQ
>>898
先頭10行でいい
0900403/03/24 23:27ID:muzproYQ
コマンドラインから実行しても怪しい。
例えばREQUEST_METHODがGETの場合だけHTMLを出力するような
プログラムを書いたとしても、コマンドラインからでは何もでない。
その逆もある。
0901403/03/24 23:28ID:muzproYQ
>>899
先頭10行ってのはコマンドラインから出力した10行ね

キリ番ゲト
0902nobodyさん03/03/24 23:41ID:Q3dLkmth
★男はココを見るべし★女と金とサンプルムービー★
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
http://www.pink-angel.jp/betu/linkvp2/linkvp.html
090387903/03/24 23:45ID:JKyHEx6G
ども.

それではコマンドラインで出力した結果を書きます
以下です.

Content-type: text/html

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"></head>
<title>入力内容確認</title>
<body>
<h1>入力内容確認</h1>
(以下略)
0904nobodyさん03/03/24 23:50ID:???
>>903
合ってるな。
0905403/03/24 23:51ID:muzproYQ
普通だ。
それは何も条件なしで出力しているのか?
ついでに聞くがCGIは初めてです?
0906nobodyさん03/03/24 23:52ID:???
>>903
プログラム自体は合ってそうだから、
あとは>>895(と、パーミッション)に答えたら解決だな。
つっか>>895を無視ってんじゃねーよボケ。本当に質問に答えて欲しいのか?
0907403/03/24 23:53ID:muzproYQ
どうもいいが、<title>は<head></head>の中に書くのでは?
0908nobodyさん03/03/24 23:54ID:???
>>903
そのCGIってどこに置いて実行したの?
コマンドラインって、サーバに置いてtelnetかSSHで?
あまり関係ないけど、言語は何?
0909nobodyさん03/03/25 00:00ID:???
>>908
こういう時はPerlと相場が決まっている(よなぁ)

あと、>>884やれよ>>>879
それで解決だろ。
telnet ホスト 80
GET /hogehgoe.cgi HTTP/1.0

091087903/03/25 01:26ID:1VNT2YvW
ども〜

Windows98 でローカルで httpd というサーバを動かしてやってます.
CGI の言語は perl です.

で,この httpd を通して,WWW ブラウザ(IE)でみると,
何も表示しないんです.

なんででしょう?
0911nobodyさん03/03/25 01:29ID:???
httpdって当たり前のような気が・・・
それともhttpdという名前のHTTPサーバがあるのかな(確かにUNIX用Apacheの実行ファイルの名前はhttpdだ)
0912nobodyさん03/03/25 01:34ID:???
>>910
日本語が不自由な人はここでは解決できません。
091387903/03/25 01:35ID:1VNT2YvW
ここでいう httpd というのは Windows で動く,
あるサーバプログラムのことです.
0914nobodyさん03/03/25 01:46ID:???
>>913
なぜ名前を伏せる。
0915nobodyさん03/03/25 01:46ID:???
解決に近づく質問には一切答えていない。
よってネタ決定。以降>>879は放置でお願いします>みなさま
0916nobodyさん03/03/25 01:49ID:???
print "Content-Type:text/html\n\n";とやっているのなら、print "Content-Type:text/html\r\n\r\n";にしてみたら?
0917403/03/25 01:51ID:4EHffvQl
どうでもいいが俺は、
print "Content-Type: text/html\x0d\x0a\x0d\x0a";
と書くな。
0918nobodyさん03/03/25 01:58ID:???
>>917
\r\nだとWinではCRCRLFになってしまうからな。
今のWin用Perl達でもそうなのかどうかは知らないが。
0919nobodyさん03/03/25 02:15ID:???
今も変わってないかと。
0920nobodyさん03/03/25 02:24ID:???
>>919
「ActivePerlだと\nがLFだ云々」ってム板で聞いた覚えがあったけど勘違いかも。
0921nobodyさん03/03/25 02:28ID:???
ActivePerlでも\n\nで使えてる
0922nobodyさん03/03/25 02:43ID:???
>>921
論点分かってる?
0923nobodyさん03/03/25 02:44ID:???
推測するより出力を見た方が早いわけだが。
0924nobodyさん03/03/25 03:15ID:???
>>922
来た来た(^∀^)ゲラゲラ
0925nobodyさん03/03/25 03:18ID:???
>>910
httpdがCGI実行できるように設定されていない・・・なんていうオチじゃない?
0926nobodyさん03/03/25 08:28ID:???
自鯖なら、ソースとログ出せば一発。
出す気が無いなら自分で解決してください。

次の質問どぞー。
0927nobodyさん03/03/25 14:29ID:XDBil0k6
PATH_INFOを有効にするためにはサーバ側での設定が必要なのでしょうか?
0928nobodyさん03/03/25 14:40ID:???
>>927
Apache2.0にはAcceptPathInfo がある。
092989403/03/25 15:56ID:???
>>895
レンタル鯖。
プログラムは自作。

全く同じ動作でも502が出たり正常に動いたりします。

正確に言えば、ちょくちょく502が発生すると言った感じです。
すぐに直ります。
0930nobodyさん03/03/25 16:08ID:???
>>929
その自作プログラムはどういう動作をするの?晒せないの?
ローカルでは問題無く動くの?
他のCGIプログラムでも同様の現象なの?
レンタル先に問い合わせてみたの?レンタル先は晒せないの?
ローカル ― サーバ間にPROXYは存在するの?
0931nobodyさん03/03/25 16:23ID:???
>>930
かわいそうな子なんだから放っておいてあげなよ。
0932nobodyさん03/03/25 16:25ID:???
質問させていただきます。
ttp://number.goo.ne.jp/index.html
ここの「スポーツ投票」のように投票項目を選択し投票すると、結果が別
ページで表示されるようにするにはどうすればよいのでしょうか?
投票CGIは用意しているのですが、別ページの投票項目どのようにして
反映させているのか分かりません。
どなたか教えてください。お願いします。
0933nobodyさん03/03/25 16:27ID:???
>>932
Web制作板に行ってみるのも良いかもしれない。
0934nobodyさん03/03/25 16:36ID:???
>>933さん
わかりました。行ってみます。
場違いな質問ごめんなさい。
0935お初03/03/25 18:05ID:???
初カキコです。早速質問なんですが、
↓の用に自作で作ってみたのですがうまく作動しません。
***.cgiに
#!/***/***/***/perl

print "Content-type: text/html\n\n";
print "<HTML>\n";
print "<HEAD>\n";
print "<TITLE>テスト</TITLE>\n";
print "</HEAD>\n";
print "<BODY>\n";
print "<A HREF="http://$2ch">$2ch</A>\n";
print "</BODY>\n";
print "</HTML>\n";
で、HTMLに
<HTML>
<BODY>
<FORM METHOD="POST"
ACTION="./***.cgi">
ログイン名:
<INPUT TYPE="text" NAME="2ch">
</FORM>
</BODY>
</HTML>
本来は、フォームに『2ch.net』などと書き入れて、エンターを
押すと、リンクするタグが表示されるようにしたかったのですが、
白紙で全く分かりません。ご伝授、お願いします。(.. )ペコリ
0936nobodyさん03/03/25 18:07ID:???
>>935
どう動かないのか言ってもらわんと・・・。
0937nobodyさん03/03/25 18:11ID:???
>>935
CGIスクリプトが、FORMから入力された値を「どのようにして受け取るか」
という点を理解されていないようです。

ということで、学習すべき次の課題が見つかったじゃないですか。
0938nobodyさん03/03/25 18:13ID:???
>>935
こんなページが参考になると思いますよ
http://www.google.com/search?hl=ja&ie=UTF-8&oe=utf-8&c2coff=1&q=post+cgi+%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E5%8F%97%E3%81%91%E5%8F%96%E3%82%8B&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
0939nobodyさん03/03/25 18:15ID:???
>>937
 C G I モードのレガシーなPHPなら正しいが?
0940nobodyさん03/03/25 18:16ID:???
>>935
ちなみに、ホントに白紙だった?

> print "<A HREF="http://$2ch">$2ch</A>\n";

まるでエスケープしてないここら辺がヒジョーに怪しいんですが。(w
CGI よりも言語のお勉強の方が先かもよ。
0941nobodyさん03/03/25 18:18ID:???
基礎から学べ
0942nobodyさん03/03/25 18:20ID:???
>>939
perl って書いてあるやん…。
わざわざ Content-Type 入ってるやん…。
<? も無く print 使ってるやん…。
0943nobodyさん03/03/25 18:24ID:???
HSPでの質問なんですが、以下のプログラム(多少命令が抜けてますが)で
変数に変換したtxtファイルを送ろうと思うんですが、これを受け取るためのCGIの知識が疎くて
CGIの作成方法がてんでわかりません。ご教授おねがいいたします。
#include "hspsock.as"
onexit *exi
*txtlod
sdim hi,32768,1
bload "config.txt",hi
*start
repeat 16
wait 1
sockopen xx,"",5856
if stat=0 :goto *mess
loop
//接続失敗
end
//接続成功>内容
*mess
sockput ""+hi,xx
repert 15
wait 1
if stat=0 :goto *exi :else :wait 1 :++xf
if xf>5 :goto *start
loop
*exi
wait
sockclose xx
end
0944nobodyさん03/03/25 18:43ID:???
>>943
足りないのはCGIの知識じゃなくてHTTPの知識じゃない?
config.txt の中身は何?HTTPでおしゃべりするための台本かな…
0945nobodyさん03/03/25 18:43ID:???
>>943
死ねクソマルチ。
0946403/03/25 18:54ID:4EHffvQl
>>944
正解だと思われる。
>>943
送りたいデータの最大量(sdim hi,32768,1)から見てPOSTで送る必要がある。
POST /hoge/hoge.cgi HTTP/1.1
Host: hoge.com
Content-Length: 送るデータ量

送るデータ

です。
ただ、バイナリデータ(日本語含む)ならきちんとEncodeしろ。
余談だが俺はHSPでWEBサーバ書いたことあるぞ。遊び程度だが・・
0947403/03/25 19:01ID:4EHffvQl
>>935
それだけならPOSTでなくて、GETで十分と思われる。
$ENV{'QUERY_STRING'}を=で分けた後にDecodeしろ。
>>940さんが言うようにエスケープもしろ。"""は"\""だ。
むしろヒアドキュメントで書け。言語勉強してこい。
0948nobodyさん03/03/25 19:05ID:???
>>947
>むしろヒアドキュメントで書け。

鼻くそをほじってしまった。命令形で書くようなことでも無かろう。
むしろ、ソースコードからさっさとhtmlを追い出す努力をすべきだと思うよ。
0949お初03/03/25 19:46ID:???
$2ch=$ENV{'QUERY_STRING'}を使いましたら、表示されました。
しかし、リンク時、フォームに1chと入力すると、
リンク先、リンクの文字が$2ch=1chになります
0950nobodyさん03/03/25 19:54ID:???
>>949
悪いことは言わない。
こんなところで聞かずに本買って一人で勉強しなさい。ね?
馬鹿をさらすのは必ずしも悪いことじゃないけど、
自分で努力しないのは一番嫌われることだよ?
0951403/03/25 21:03ID:4EHffvQl
>>948
おっしゃるとおりです。
以前初心者にスタイルのことをどうこういうなと言われたのを
忘れていました。>>949すみません。
実はなんとなくキャラ変えています。偉そうなイメージで・・ゲレ
>>950さんの言うとおり言語からやり直したほうがいい。
一応書くと、
$2ch = (split(/=/, $ENV{'QUERY_STRING'}))[1];
$2ch =~ s/%([a-fA-F\d][a-fA-F\d])/pack('H2', $1)/ge;
でいいはずだ。
# Perlの変数って数字から始まってよかった?
0952nobodyさん03/03/25 21:05ID:???
いや >>949 は、無事動きましたよ、という報告なのだろう。ウンウン
0953nobodyさん03/03/25 21:08ID:???
>>951
> # Perlの変数って数字から始まってよかった?
そもそも、数字で始まる予約変数があるからダメでせう。
0954nobodyさん03/03/25 21:11ID:???
>数字で始まる予約変数があるから

通常の変数でも可能ってこったな。
0955お初03/03/25 21:16ID:???
有難うございました。>>951さんの教えてくれた記述どおりやりましたら、
無事、リンクできました。どうもこのたびはご迷惑お掛けしました。
0956nobodyさん03/03/26 04:10ID:???
あるレン鯖屋のサイトに「○○(CGIスクリプトの名前)はハードディスクを破壊するので禁止します。」と書かれていたのですが、
そんなことできるんでしょうか。
0957nobodyさん03/03/26 04:19ID:S5IZshnU
★男はココを見るべし★女と金と???★
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
http://www.pink-angel.jp/betu/linkvp2/linkvp.html
0958nobodyさん03/03/26 07:50ID:???
>>956
破壊にも色々あるけど、root 権限で動くとかじゃなければ無理だろ。
お子ちゃまの暴走に対する抑止効果は期待できるかもね。
良質の客が去っていくという逆の効果も発生するだろうが。
0959お初03/03/26 10:16ID:???
言われたとおり、早速、本を買ってきて3時間ほど苦闘しましたが、失敗しました(TT

教えて頂いた応用で、
$2ch = (split(/=/, $ENV{'QUERY_STRING'}))[1];
$2ch =~ s/%([a-fA-F\d][a-fA-F\d])/pack('H2', $1)/ge;
に、($2ch,$1ch)=split(/&/,$data);をつけて、
フォームを2つに増やし、↓HTML
<HTML>
<BODY>
<FORM METHOD="GET" ACTION="./***.cgi">
ログイン名:
<INPUT TYPE="text" NAME="2ch">
<INPUT TYPE="text" NAME="1ch">
<INPUT type="submit">
</FORM>
</BODY>
</HTML>
リンク先を
http://$2ch.$1ch.net/ にして$2chのフォームに、2、
$1chのフォームに1と入力したのですが、
リンク先がhttp://2.1ch.net/になってしまします。
本当に勉強してもお手上げでした。
0960お初03/03/26 10:18ID:???
間違えました。上2段は&dataでした
$data = (split(/=/, $ENV{'QUERY_STRING'}))[1];
$data =~ s/%([a-fA-F\d][a-fA-F\d])/pack('H2', $1)/ge;
0961nobodyさん03/03/26 10:25ID:???
>>959
まずは変数名を変えれ。
($2ch,$1ch)=split(/&/,$data);
を、
($host2,$host1)=split(/&/,$data);
などに。
してから、
print qq(http://$host2.$host1.net);
と。
0962nobodyさん03/03/26 10:26ID:???
>>959
ちょっと待ってくれ。
自分で書いたソース、各行でどんな処理をしているのかを理解しているのか?
そもそも
1. 動きゃいいのか?
2. Perl(じゃなくてもいいけど)のプログラミングスキルを身に付けたいのか?

# ところで朝7時から開いてる本屋があるのか?
0963bloom03/03/26 10:30ID:C4vNyXIc
http://www.agemasukudasai.com/bloom/
0964お初03/03/26 11:52ID:???
>>962さん、昨日買いました

プログラムのスキルはまだですが、多少の知識を得ました
0965nobodyさん03/03/26 11:54ID:???
>>964
>買いました

こんなところで油売ってないで呼んで理解してください。
0966403/03/26 13:40ID:qOessVDe
>>965
激しく同意
そもそも
($ch2,$ch1)=split(/&/,$ENV{'QUERY_STRING'});
$ch2 = (split(/=/, $ch2))[1];
としないと。しかもどっちが2chで、どっちが1chか怪しい。
GETでどのような形式のデータが送られてくるか$ENV{'QUERY_STRING'}を
そのままprintして確かめてください。
0967403/03/26 13:46ID:qOessVDe
my($name, $value, %ch);
foreach (split(/&/, $ENV{'QUERY_STRING'})) {
($name, $value) = split(/=/, $_, 2);
$value =~ s/%([a-fA-F\d][a-fA-F\d])/pack('H2', $1)/ge;
$ch{$name} = $value;
}
print "http://$ch{'2ch'}.$ch{'1ch'}.net/";
0968お初03/03/26 13:58ID:???
本当にいつもすみませんでした。無事、URLを表示する事が出来ました。
4様、その他アドバイスをくださった方々に非常に感謝してます。
m(_ _)m
0969nobodyさん03/03/26 14:52ID:S5IZshnU
★男はココを見るべし★女と金とサンプルムービー★
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
http://www.pink-angel.jp/betu/linkvp2/linkvp.html
0970nobodyさん03/03/26 15:14ID:???
つーかそのソースの各行がどんな処理をしてて、
ここをこうするとこうなって・・・
てなことはどうでもいいんだな多分。
せっかく本買ったのにもう見ることも無いんだろうな
で、また何かわからないことがあると、
とりあえずこのスレにきて「お初」って書いて質問するんだろうな
0971nobodyさん03/03/26 16:21ID:???
>>970
何か不都合でも?
0972nobodyさん03/03/26 21:04ID:???
>>970
このスレは質問者のためだけのスレではないのです。
回答者も、質問者から如何にして質問の要点を引き出すか、を楽しめるスレなのです。

なんちて。
0973nobodyさん03/03/26 21:05ID:???
馬鹿はこれでも努力した方でしょう。
0974nobodyさん03/03/26 21:09ID:WT1OtOAR
CGI(perl)でPOSTで<FORM>からデータをもらうときはどうすれば
いいのですか?
0975nobodyさん03/03/26 21:10ID:???
>>974
標準入力から受け取ってください。
0976nobodyさん03/03/26 21:16ID:???
>>975
標準入力ってなんですか?
0977nobodyさん03/03/26 21:16ID:???
>>976
stdinのことですよ。
0978nobodyさん03/03/26 21:17ID:???
>>977
ますます分かりません(T.T)
0979nobodyさん03/03/26 21:17ID:???
Perlなら、STDINっていうファイルハンドルがあるから、それを使って読む。
0980nobodyさん03/03/26 21:19ID:???
>>978
帰れ。
0981nobodyさん03/03/26 21:19ID:???
>>979
なんとなくわかりました(ToT)
0982nobodyさん03/03/26 21:21ID:???
>>974-981 ワラタ
0983403/03/26 21:23ID:qOessVDe
標準入力から読みます。
my $buf;
sysread(STDIN, $buf, $ENV{'CONTENT_LENGHT'});
print $buf;
質問、sysreadとreadの使いどころは?
自分はSocket関連だとsysread使いますが、ファイルを読むときは
readです。
0984403/03/26 21:24ID:qOessVDe
LENGTHね・・
0985nobodyさん03/03/26 21:24ID:???
標準入力から読みます。
my $buf;
sysread(STDIN, $buf, $ENV{'CONTENT_LENGHT'});
print $buf;
質問、sysreadとreadの使いどころは?
自分はSocket関連だとsysread使いますが、ファイルを読むときは
readです。標準入力から読みます。
my $buf;
sysread(STDIN, $buf, $ENV{'CONTENT_LENGHT'});
print $buf;
質問、sysreadとreadの使いどころは?
自分はSocket関連だとsysread使いますが、ファイルを読むときは
readです。標準入力から読みます。
my $buf;
sysread(STDIN, $buf, $ENV{'CONTENT_LENGHT'});
print $buf;
質問、sysreadとreadの使いどころは?
自分はSocket関連だとsysread使いますが、ファイルを読むときは
readです。標準入力から読みます。
my $buf;
sysread(STDIN, $buf, $ENV{'CONTENT_LENGHT'});
print $buf;
質問、sysreadとreadの使いどころは?
自分はSocket関連だとsysread使いますが、ファイルを読むときは
readです。標準入力から読みます。
my $buf;
sysread(STDIN, $buf, $ENV{'CONTENT_LENGHT'});
print $buf;
質問、sysreadとreadの使いどころは?
自分はSocket関連だとsysread使いますが、ファイルを読むときは
readです。
0986403/03/26 21:25ID:qOessVDe
>>983
CGIと関係なかったかも。
スマソ
098795003/03/26 22:56ID:???
新スレ立てました。
http://pc2.2ch.net/test/read.cgi/php/1048686475/l50
0988nobodyさん03/03/27 00:16ID:OfSB210s
質問したいんですが、ホント馬鹿な質問っぽいんで先にごめんなさい。

foreach (0 .. 10) {
 if (-e "$_.dat") {
  open(IN,"$_.dat") || &error("ファイルオープンエラー");
  close(IN);
 }
}

↑こんなことする意味ってありますか?(ifの部分)
それだったらエラーを返さずに

foreach (0 .. 10) {
 open(IN,"$_.dat");
 close(IN);
}

これだけでいくのと一緒・・・っていうかこうするべきなんでしょうか?
0989nobodyさん03/03/27 00:20ID:???
>>988
そもそも何がしたいのかに依る気がするんですが。
0990nobodyさん03/03/27 00:20ID:???
>>988
意味あるだろ? エラートラップをこまめにする癖をつけるのが悪いとは思わないし。
.datファイルが破損することだって絶対にないとはいえないし。
0991nobodyさん03/03/27 00:23ID:???
-eでいちいち存在をチェックしなくても、openで失敗するから問題ないっていうこと?

openが存在しないっていう理由でのみ失敗するなら、if (-e ...は無意味なんだけど。
0992nobodyさん03/03/27 00:28ID:???
つまりファイルが無ければ処理しないでスルーして次のファイル・・・
ってことをしてるつもりなんですが、
やっぱり下のじゃ問題ありっぽいですねサンクスです
0993nobodyさん03/03/27 00:41ID:???
なぜオープンに失敗したらnextするとしないんだろう。
0994nobodyさん03/03/27 00:57ID:???





























0995nobodyさん03/03/27 01:44ID:???
ume
0996nobodyさん03/03/27 01:45ID:???
梅
0997nobodyさん03/03/27 01:45ID:???
産め!
0998nobodyさん03/03/27 02:04ID:???
埋め
0999nobodyさん03/03/27 02:06ID:???
15350
1000nobodyさん03/03/27 02:07ID:KPZ2y82F
>>990
死ね。
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。