CGIだけど、なんか質問ある? Part 9
レス数が1000を超えています。これ以上書き込みはできません。
0001ななし ◆E6qQ.htN7o
03/01/03 02:56ID:H5ub4PWW※CGIは特定の言語に依存するものではありません。
※Perlのコーディングに関する質問は専用スレがありますのでそちらでお願いします。
↓
【Perl】初心者コーナー Part18
http://pc.2ch.net/test/read.cgi/php/1037797479/l50
過去ログ・関連スレッドは >>2-5 あたりに
0002ななし ◆E6qQ.htN7o
03/01/03 02:57ID:H5ub4PWWPart3 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【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:???お願いします。
0008nobodyさん
03/01/03 17:43ID:???ログのアドレスを直接参照すると、ログが直接見られます。
CGIを経由しないと参照できないようにしたいのですが、何か方法ありますか?
0010nobodyさん
03/01/03 22:41ID:jx+nlJxMパーミッション600
0011nobodyさん
03/01/04 01:23ID:???ログにCGIのソース書かれると危険。
あまりお勧めできない。
>8
.htaccess
0012935
03/01/04 10:45ID:???0013nobodyさん
03/01/04 14:58ID:???有無を言わさず chmod(0666, "logfile");
(Perl) なんてやるクソスクリプトだった
らどうするよ。
#実在するから気おつけてね。
0016nobodyさん
03/01/06 07:41ID:abYGXX0Ghoge.exe はHTMLを吐く実行ファイルで、tako.html には以下のフォームが入っています。
<HTML>
<FORM ACTION="file:///C:/home/Programing/EPA4Bunkai/Text2IPA.exe">
<INPUT TYPE="submit" VALUE="ボタン">
</FORM>
</HTML>
ボタンを押したら、hoge.exe の吐いたHTMLを表示させたいのですが、
上記の条件だと、ファイルのダウンロードになってしまいます。
やはり、Apache などを走らせてないと駄目なのでしょうか?
0018nobodyさん
03/01/06 13:14ID:JhCfMZHJPERLのプログラムで変換する方法を教えてください。
具体的には
・変数にUTFの文字コードを代入
↓
・その変数をEUCに変換
とやりたいのですがどのようにやったらよいのでしょうか?
どなたかよろしくおねがいします。
001918
03/01/06 16:13ID:vFPYY9M3今調べて
$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:8Wd4rwQY0021nobodyさん
03/01/06 17:33ID:???問題ない。
0022nobodyさん
03/01/06 20:01ID:???jcode.plにはunicode系の変換機能はありません。
jcode.pmで変換できますが、サーバサイドのPerlが実装している必要があります。
utf8<=>eucの変換テーブルを用意して
1文字1文字変換していくルーチンを自作するか
適当なサイトにあるルーチンを借用してくださいませ。。
0023nobodyさん
03/01/06 20:01ID:8Wd4rwQYUTF8を扱えるか調べてみろ。
0024nobodyさん
03/01/06 21:16ID:???実際に使用していませんのであしからず。。
ttp://www.onicos.com/staff/iz/release/#unicodepl
0025nobodyさん
03/01/07 00:38ID:???他に方法あれば教えてくださいませ。
0026nobodyさん
03/01/07 15:20ID:???ブラウザの画像が変わらない。
CGI側からキャッシュを消す方法って無いの?
0028nobodyさん
03/01/07 17:17ID:???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正規表現とかで。
0030nobodyさん
03/01/07 18:33ID:???車輪。
003129
03/01/07 18:42ID:23SRPWxkそうしかなさそうですね。
0032nobodyさん
03/01/07 19:39ID:E9xJzpX+無さそう、、っていうか、ShiftJISとEUC-JPは、ずらしただけだから、
お勉強すれば簡単に作れると思うんだけど・・
0033nobodyさん
03/01/07 22:48ID:???リファを取られていても問題の無いように
一旦ダミーの足場を踏まえさせるスクリプトってないでしょうか?
0034nobodyさん
03/01/07 22:55ID:???003633
03/01/08 05:18ID:???ありがとうございます。
003733
03/01/08 05:39ID:???これと同じようなことが出来るスクリプトは無いものでしょうか?
足場を手前で用意したいもので・・・
0038nobodyさん
03/01/08 08:57ID:???作るの自体難しくないから、誰も配布してないだろうね。
perlなら10行程度でできるし。
Locationで調べてみ。
0039nobodyさん
03/01/08 11:09ID:QcH5iWUE例えば
$name に "あああ"が入ってて
$num に "111"が入ってるとき
$info に "あああ:111"といれたいときはどうすれば良いのでしょうか?
$info = "$name"+":"+"$num"とやれば良いのでしょうか?
0040age
03/01/08 11:39ID:???0042nobodyさん
03/01/08 12:10ID:43qqwvSV「実行しましたが、ページでエラーが発生しました」と出ます
cgi自体は問題なく動いているようなのですが…
IEのスクリプトエラーを表示するをONにしてどこが間違っているのか
チェックしたら、
計画番号設置の
$×× = 19; # (この文の内容)
というところにエラーがあると出ました。
この行の19文字目?が違うらしいのですが、
19文字目は「;」になります…
どうしたらこのエラー表示が回避できるようになるのでしょうか?
0044名無しさん@お腹いっぱい。
03/01/08 14:12ID:???.を使え。
>>42
根本的に勘違いしていると思う。
0045nobodyさん
03/01/08 14:16ID:43qqwvSVどう勘違いしてるでしょうか?
どうか教えてください
0048nobodyさん
03/01/08 15:01ID:43qqwvSVそうなんですか・・・?
エラーの出たファイルのところにこのcgiの名前があったので・・・
ここでJavaScriptのこと聞いてもいいのかな・・・?
ダメだったらスルーして下さい
JavaScriptエラーってどうやったら修復できるのでしょうか・・・
0051nobodyさん
03/01/09 18:17ID:???どうにかしてCGIにデータを渡したいんですけど・・。
0053nobodyさん
03/01/09 23:31ID:???だからねえんだYO!
blinkのやり方はActiveXぽいな。使ったことねえから詳しくしらないが。
0056nobodyさん
03/01/13 22:11ID:tF1UpiEyとりあえず考えたのはcgiから何か画像を出力させて、<img src="hoge.cgi">なのですが、
実行させるためだけにわざわざ画像を表示させるのはなんか変な感じがします。
何かスマートな方法は無いでしょうか。
0058nobodyさん
03/01/13 23:00ID:???SSI使えないなら
<IFRAME SRC="hoge.cgi" WIDTH="0" HEIGHT="0">
</IFRAME>
とかでもいいかもね
0062nobodyさん
03/01/14 21:28ID:???0063nobodyさん
03/01/15 00:54ID:???0064nobodyさん
03/01/15 09:49ID:bv4lo3d6何か良いは方法ないでしょうか。
例えば会員データとかで、住所とか名前が入ってるものをメールでそのまま
送るなんて事できないし、圧縮してメール添付ってのも危険ですしね。
専用サーバ借りているのですが、su貰えない&telnet使用可ですが、
固定IP必要なので実質使えないので、CGIで代わりにTELNETモドキやってる程度。
bdesが良いらしいが入ってない。
何か良い方法をご存知の方いましたらRESPLZ。
006564
03/01/15 09:59ID:???006664
03/01/15 10:01ID:???0068nobodyさん
03/01/15 10:59ID:wVEDeB5S管理人(私)だけが項目を設定し、来訪者に投票してもらう
という投票・ランキング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:???単に
$url_pass = "http://www.hoihoi.ne.jp/~foo/jiten/jiten.cgi";
を自分のURLに設定していないだけなんじゃ・・・
007064
03/01/15 11:56ID:???FTPでも暗号化しないと、hackされる可能性がある気がするのですが・・・・・。
ネットワーク上で盗用されない為にも、サーバでファイルを暗号化し、
他サーバにコピーが理想。
大したファイルじゃないけど”もしも”の事を考慮してしまう今日この頃。
だんだんCGIと関係ない方向に向かってるかな.....
0072山崎渉
03/01/15 13:32ID:???0074nobodyさん
03/01/15 17:02ID:???CPANあたりにある暗号化のを使って自分で作るのがいいんじゃない?
需要なさそうだしその辺に転がってるCGIじゃ見つからないと思うよ。
0075nobodyさん
03/01/17 20:16ID:???そのCGIの名前が makepng.cgi という名前だとブラウザからDLしようと
するときの名前がnamepng.cgi.pngという名前になってしまいます。
# 手で書き換えればいいのだけれど。
makepng.cgi?foo=1&bar=x のときにはダウンロードするときの名前を
giko01x.png のようにCGI側で調整してやる方法ってありますか?
ブラウザはIEのみと考えてもいいです。
0076nobodyさん
03/01/17 21:57ID:UZGmf3mg直接ブラウザに画像データを送ったらファイル名はつけられない。
いったんサーバ側に画像ファイルとして保存してからならなんとかなるでしょう。
0077nobodyさん
03/01/17 23:02ID:???0078nobodyさん
03/01/18 00:23ID:O9FxKTGG007978
03/01/18 00:24ID:O9FxKTGG当然管理人は見られます。
管理人以外が過去の書き込みが見られないようなゲストブックみたいなやつがほしいんです。
0081nobodyさん
03/01/18 22:36ID:vrB72zE5↑このサイトですけど、URLが hoge.cgi?〜 見たいになってなくて、
スラッシュの次にいきなり?になってます。
これってどうなってるの?
0082nobodyさん
03/01/18 23:28ID:???掲示板CGIのHTMLスペース内にSSIを入れて実行しても
そのままタグが表示されてしまいます。
どのようしたらよいのか教えてください。
0083超シロウト
03/01/18 23:47ID:ovwKqnQ9public_htmlと同じ断層にフォルダを作った時、そのパスは
どのように書いたら良いんですか?
.../.../.../フォルダ/
これでいいのかな?
0085nobodyさん
03/01/18 23:54ID:vrB72zE5public_htmlを基準にするなら、
../フォルダ
じゃない?
0088nobodyさん
03/01/19 00:02ID:ZcFFkCZZ. =>ディレクトリ自身へのリンク
.. =>親ディレクトリへのリンク
先頭が/でなければ、それはカレントディレクトリからの相対パスとみなされる。
0090nobodyさん
03/01/19 00:06ID:???0092nobodyさん
03/01/19 00:19ID:???なので、..を消しただけでは消えないはず。
だけど、rmとかの普通のコマンドは、消すことを許可しない、から、普通には消せない
0095nobodyさん
03/01/19 06:53ID:???SSIではなく、ちゃんとスクリプト内に組み込みなさい。
普通SSIの使える拡張子は限られてるだろ。
0096nobodyさん
03/01/22 22:36ID:/vlxGamR携帯(J-PHONE)からアクセスすると認証後に飛べないようなんですが
どうしたら良いのでしょうか。
ttp://rank.nu/~wpis/bbs/support/bbs.cgi?mode=view;Code=154
上記で丁度同様の質問が出ていたのですが12月から回答がついてないみたいで…
0097nobodyさん
03/01/23 05:02ID:???window.historyで「進む」「戻る」の実行はできますが、ページを移動せずに
そのURLが知りたいんです。
0099nobodyさん
03/01/25 01:03ID:???apeboard+ で何行も改行するにはどうしたらいいのでしょうか。
こんなふうに。
スキン内のスタイルシートの制限は外したのですが…。
0101nobodyさん
03/01/25 10:32ID:A7yEoEyGファイルの読み込みの成否はともかくとして、ファイルの書き込みは成功して、ファイル自体が壊れることはないのでしょうか?
0103101
03/01/25 10:51ID:A7yEoEyGファイルの読み込みが、次に行うかもしれない書き込みに影響しないのであれば、
ファイルの読み込み自体はflockの手順を介さなくても平気なんですね
0105101
03/01/25 11:05ID:A7yEoEyG102の末尾に
そうでなければ、介すべき、仕様が明確に決まってなければ、介すべきといった感じなのでしょうか??
という具合ですかね
0106101
03/01/25 11:19ID:A7yEoEyG103だ103。
0107ここは?
03/01/25 12:01ID:P9onD8CE(*~ー゜)ノ ・・・・・心温まるの〜
0108nobodyさん
03/01/25 12:29ID:???データがごっそり抜けることになる。
図入りで説明してるページも多いから調べてみそ。
0109nobodyさん
03/01/25 12:59ID:2kNMQnUpログを保存するのに、1件につき1ファイルが良いのか
1つのファイルに詰め込んでいく方が良いのか・・・。
後者だとすれば何件くらいを目安にすれば良いのやら。。
と、悩んでます。
一体皆さんはどういう感じでつくっているのでしょう?
お奨めなやり方などがあれば教えていただけると嬉しいのですが。
おながいします。
0110nobodyさん
03/01/25 13:01ID:???>1件につき1ファイル
追加、編集、削除が容易だがどうやって検索するかが問題になってくる。まぁ、簡単と言えば簡単。
>1つのファイルに詰め込んでいく
ファイルをだだ読みすればいいので検索性は良い。しかし追加、編集、削除が面倒。まぁ、簡単と言えば簡単。
どっちにもメリットデメリットがあるのでお好きな方を。と。
0112nobodyさん
03/01/25 16:14ID:???0114nobodyさん
03/01/25 17:20ID:J+PAIJA/1ファイルに詰め込むんじゃなくて、1000個づつに分割したらどうかね
0115nobodyさん
03/01/25 17:51ID:???検索はしやすそうだけど
編集、削除はやっぱり面倒じゃないか?
追加は>>で追記してけば問題なさげ。
1ファイル1投稿だと排他あまり考えなくていいし
最悪トンでも1メッセージだけ。
検索しないなら1ファイルに1投稿が確実。(検索もできなくはない
編集、削除しないなら1ファイルへ数件詰め込めば検索楽。
0118nobodyさん
03/01/25 18:54ID:???無いよりは激しくまし。
と、言うかロックの時点でロックに成功したプロセス以外は待ち状態になるんでは?
ほら、スレッドみたいに。
0119116
03/01/25 20:13ID:???>>118の言うとおり後からflockを呼んだプロセスはロックが解除されるまで待ち状態になる(排他ロックの場合)。
俺はCで使っているけど、Perlもこのシステムコールを呼んでいるだろうから同じでしょ。
0120nobodyさん
03/01/25 20:17ID:???無いよりはマシなのは当たり前だけど、ロックにflock使うのはどうかと思う。
ファイルを開いてからflockするまでの間に、別プロセスによって開かれる場合が(十分に)あるから。
プロセスIDとtempfile使ってうまくやるべき。
0122nobodyさん
03/01/25 20:19ID:???0123nobodyさん
03/01/25 20:20ID:???いやいや、「思う」ではダメよん。こっちは実験してるんだから。
flockを呼ぶプログラムを複数同時起動すると>>122が起こる。これマジ
0124nobodyさん
03/01/25 20:20ID:???追加書き込みの際、きちんとファイルポインタをファイルの末尾にもってゆく処理をしている?ロックを解除する前にバッファをフラッシュしている?
0126nobodyさん
03/01/25 20:22ID:???0127nobodyさん
03/01/25 20:29ID:???追加の時はともかく上書きの時にflockは使えないと思っていたのですが。。
認識違いのようですね。たぶん実験の時は他の部分がバグっていたのでしょう。
すいませんでした。
0130nobodyさん
03/01/25 21:48ID:Qs+kaqdw0132nobodyさん
03/01/25 22:24ID:Qs+kaqdwお金を使わないで使う方法はどんなものがありますか?
0134nobodyさん
03/01/25 22:29ID:Qs+kaqdw無料レンタルサーバで、使えるところないですかね?
0137nobodyさん
03/01/25 22:32ID:Qs+kaqdwちょっと検索してみます。
サンクス
0139nobodyさん
03/01/25 22:36ID:???なんでだよ(笑)
telnet使ってサーバー上でコンパイルすればいいじゃない。
それとトクトクはLinux
iswebと勘違いしたとか?
0140nobodyさん
03/01/25 22:42ID:Qs+kaqdw0141nobodyさん
03/01/25 22:43ID:2edfK8fFになる”こと”がある。
プロセスはその時2個あるので殺すと普通になる。何で?
0142nobodyさん
03/01/25 22:44ID:???g
0144nobodyさん
03/01/26 06:26ID:Hn+ukPj1テキストファイルの中身を一行づつHTMLに吐き出すのと、
テキストファイルの中身を一旦配列変数に入れてから
まとめてHTMLにして吐き出すのとではどちらがいいんでしょう。
0145nobodyさん
03/01/26 06:46ID:hfzgm8Bu◆みんなの情報局◆
0146nobodyさん
03/01/26 09:25ID:???ケースバイケース。
0148w-inds慶太
03/01/26 09:58ID:8J93RXm8w-indsの慶太どぇす。
147のいうように、前者のほうがメモリへの負担が少ないでしょう。
ただ、後者のほうがメンテナンスしやすそう。
0149nobodyさん
03/01/26 10:02ID:???print $buf;
}
0150nobodyさん
03/01/26 10:38ID:???@hoge = <IN>; # 配列経由
print @hoge;
コード自体は大差なし
読み込みから表示までの間にどんな処理をするかで使い分けれ
0151nobodyさん
03/01/26 15:45ID:???ランダムアクセスな処理なら後者
0152nobodyさん
03/01/27 00:36ID:zeV2mDZOWinにgzipを導入してPerlで動かすってことは可能なのでしょうか。
また、可能だとすれば、どのようにすればいいのでしょうか。
参考サイトでも構いませんので、教えてください。
0155nobodyさん
03/01/27 00:50ID:???参照元
ttp://najo.cc.sakura.ne.jp/~alimika/satomican/doc/natsumican.html
0156144
03/01/27 15:35ID:???言葉足らずですみません。
はじめ後者でやって、メモリの負担のことを配慮にいれて
前者の方法に切り替えたんですが、HTMLが表示されるのが
遅くなったようなので、どうなってるんだろうと思った
のです。
メモリ重視なら前者、速度重視なら後者ということですね。
0158nobodyさん
03/01/28 09:31ID:ysKV21Dy今チャット作ってるんですが、チャットマスターの発言は参加者には見えるけど
参加者の発言は発言者本人とチャットマスターにしか見えないようにするには
どうすればいいのでしょうか。
もうだいぶ探していますがどーしても分かりません。
ご存知の方、教えてあげてください。よろしくお願いします。
0159nobodyさん
03/01/28 09:51ID:???ログファイルをひとつにする場合は読み出すときにIPアドレスなどから出力してよいものを選択するとか・・・・
CGIではやらない方がよいと思うけど。
0160nobodyさん
03/01/28 13:42ID:aPuGCgnwまだまだ分からないことだらけな当方ですが、
ログファイルを使用してのチャット作りに挑戦してみます。
ところでみなさんどうやって勉強してはるのですか?
とても詳しいですけど。これからの参考にさせて頂ければと思います。
0163nobodyさん
03/01/28 20:48ID:???403Forbidden
You don't have permission to access /○○○/ on this server.
って、出たんだけどー
これって、そのHPに入ることを拒否されてるって事?
どうやったら、入れるの?
0165nobodyさん
03/01/28 23:03ID:???それは指定したURLへのアクセスが禁止されてるってことだから、
そのサイトのちゃんとした入り口から入れば大丈夫なはず。
(このエラーはGoogleの検索結果やブックマークなどの飛び先が
消滅することで出るパターンが多い)
0166nobodyさん
03/01/29 20:07ID:AuAKLt9Rローカルにあるファイルだと、無事open()できるのですが、
外にあるファイル(http:// で始まるhtmlなど)をうまく扱えません。
公開されているHTMLやTXTなどをCGIにて表示させたいのですが、
どうすればいいのでしょうか?
教えてください
0167nobodyさん
03/01/29 20:16ID:???open()の説明によると、外にあるファイルは扱えないことになっている。
自分でソケット張って取りにいくのが普通かな。fsockopenとかLWPとか。
0171nobodyさん
03/01/30 15:07ID:7OFGIowB0172nobodyさん
03/01/31 10:53ID:lEAaXrUa↑この掲示板を使っているのですが、
掲示板の一時停止はどのようにすればいいですか?
cgiを上書きUPしても書き込みされたものには影響がないですか?
0174nobodyさん
03/01/31 10:55ID:lEAaXrUaそんなこといわないで、教えてください。
0175nobodyさん
03/01/31 11:55ID:lEAaXrUa0177nobodyさん
03/01/31 17:41ID:lEAaXrUaありがとう(TT)
0178nobodyさん
03/01/31 17:41ID:54d1aEzbhttp://dx1.kakiko.com/sonota/335/3352/index.html
0179nobodyさん
03/01/31 19:29ID:Ee0DVLll学校のunix鯖ではCGI上からsendmailとqmailが使えないみたいなので、
にゃぁぁぁぁぁぁぁ?さんのsendmail.cgiなるものを設置しました。
SOCKETでsmtpと通信するスクリプトらしいのですが、これも動く気配が無い。
動かないと分かれば諦めがつきます。鯖上でSOCKET関数が使えるかどうかは、どこでわかるのでしょうか?
0181179
03/01/31 20:14ID:Ee0DVLllttp://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:???そら、リモートの80番にアクセスしようとする奴拒否するサーバは少ないわさ。
後、ヘッダが変とか出てるので通信以前に死んでる予感も。
0183179
03/01/31 20:30ID:Ee0DVLll220 earth.hc.cc.**.ac.jp ESMTP
502 unimplemented (#5.5.1)
シェルだとこんな感じ。ってかシェルでうごいてもしょうがないか。
0185179
03/01/31 20:43ID:Ee0DVLllESMTPってのが分からないんですけど。。
でも上のはhttp.plが print SOCKET "GET $url HTTP/1.1\n";
ってのを送ってるから502が帰ってくるのであって、print SOCKET "HELO domain\r\n"
ってやればちゃんと 250 earth.hc.cc.**.ac.jpってのが帰ってきます。
でもこれをブラウザ上で呼び出すと、Error500になってしまいます。
0187179
03/01/31 20:50ID:Ee0DVLll。。いや急遽スクリプト書き直したもんで、見落としてました。
0188nobodyさん
03/01/31 20:52ID:???はぁ、、わからんのなら答えなくてよろしい。
この場合、CGIが変なヘッダーを出しとるわい。って怒ってる。
で、おそらくHTTP/1.1 200はyahoo.comが出したもの。(http.plを見ればわかる)
つまり、通信は成功してる。ということ。
それから、>>183で出てきたものは、SMTPでーもんの出力だけ。HTTPでしゃべられても
困るっていうことを言ってる。全然大きな情報じゃない。
>>181
そもそも、そんな変なことで悩む前に、「使えないみたい」「動く気配がない」
って言われて原因が分かる超人に期待するのは無謀だと気づけ。
0191nobodyさん
03/01/31 20:55ID:???0192179
03/01/31 21:04ID:Ee0DVLllcgi上では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:???0194nobodyさん
03/01/31 21:08ID:???0196179
03/01/31 21:28ID:Ee0DVLll(chomp($buf=<SOCKET>));
open(OUT,">> http.log");
print OUT "$buf\n";
close(OUT);
0198179
03/01/31 21:32ID:Ee0DVLll0199nobodyさん
03/01/31 21:36ID:???0200179
03/01/31 21:42ID:Ee0DVLllちなみに777で試してみても結果は同じでした。
0202nobodyさん
03/01/31 23:06ID:???0203179
03/02/01 01:24ID:???0204nobodyさん
03/02/01 17:41ID:Cax25w+6パスワード入れて管理モードに行こうとすると、
『CGI専用サーバなのでできるか』と言われます。
biglobeだとCGI専用サーバとかになっちゃうらしいんですけど、cgiのほうのどっか設定変えたらできるんですかね。
当方、初心者です。
0206nobodyさん
03/02/01 17:44ID:???0208の
03/02/01 17:45ID:/eR4kJXsファイル名の指定を絶対パスにしてみ
0209nobodyさん
03/02/01 17:46ID:???ちなみにhttp://pc2.2ch.net/test/read.cgi/php/1036915437/864なんですけど。
PHPだとsetUIDとかでしょうかねぇ?PHP知らないけど。
0210209
03/02/01 17:47ID:???0213212
03/02/01 20:19ID:???答える価値もないと判断されたか(鬱
0214の
03/02/02 02:12ID:eQAjYeC3モジュールは、httpd のプロセス内(同じメモリ空間)で動く。
したがって、動作上で OS のメモリ保護が期待できるか否かと言った違いは
ある。まあ、クラック耐性が多少高い程度だがな。
0215nobodyさん
03/02/02 02:13ID:VwKQrujSプログラム側でどのようなヘッダを吐けばいいのですか?
ちなみにContent-Typeしか吐いてない場合、
IEはキャッシュしてくれないようです。
やりたいことは、コンテンツをキャッシュさせて、ブラウザから送られてくる
リクエストヘッダを調べて、コンテンツを吐くか吐かないか制御したいのです。
0216nobodyさん
03/02/02 03:31ID:???If-Modified-Since と Last-modified あたりかな。
まぁでもCGI側でブラウザのキャッシュのことを気にしなくていいような気もするが・・・
0217215
03/02/02 04:04ID:???Last-Modified付けてもIf-Modified-Since送ってきませんでした。IE5
もしキャッシュできれば、余分なI/Oが減って2chのread.cgiが軽くなるかなー
なんて考えていましたが、無理かな。。
0218nobodyさん
03/02/02 15:06ID:???0220nobodyさん
03/02/02 23:13ID:???nph- にして自前でヘッダを全部出力しないと、
サーバソフトが勝手にレスポンスヘッダに 'Cache-Control: no-cache' とか
付けて吐き出してくれてしまったりします。
nph- にすればキャッシュだけでなくかなり自由度の高いシステムを作れるけど、
いかんせん面倒くさいのが何とも。
HTTPの仕様書とにらめっこをしながらプログラムを書く羽目に。
0221nobodyさん
03/02/03 08:11ID:FFrB/oLuNarrationBBSというのがものすごく気に入って自分のサイトに
設置しようと思い、CGIについて理解しようとネットを駆け巡り
5時間が過ぎました。CGIについては全くの初心者ですが、
一通りの設置の流れや、やらなければならないことは理解した
つもりです。で、いまだにCGIをちゃんと使えるようになって
いないのですが、どなたか助けていただけませんでしょうか。
現在の進行状態としては、プロバイダー(地域のCATVでCGI利用可確認済み)確認、
目的のCGIのダウンロード、プロバイダーに指定された内容の「.htaccess.txt」
ファイルの転送、パスの変更後CGIファイルの転送とパーミッションの設定、
ホームページのトップからCGIへのリンクを作成。
と、こんな感じなんですが、リンクをクリックすると、ダウンロードしますか?の
確認メッセージがでてきてしまい、CGIを動作させられません。
0223nobodyさん
03/02/03 09:26ID:8N4vyrOL0224nobodyさん
03/02/03 09:55ID:???htaccessが使えないような場合のことです。
0226nobodyさん
03/02/03 15:58ID:QjlL5TK8,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:QjlL5TK8public_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.htaccess.txt
じゃなくて
.htaccess
0229302
03/02/03 16:49ID:???FTPソフトを用いてtxt拡張子を消しましたがうまくいきません。
リンクをクリックすると、ダウンロードしますか?の確認メッセージが
やっぱりでてきてしまい、CGIを動作させられません。
0230221
03/02/03 16:51ID:QjlL5TK80231221
03/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/bin/perl です。
両方試してみた?
0233nobodyさん
03/02/03 17:19ID:800eNsZd777でだめなら755にしる。
0234221
03/02/03 17:21ID:QjlL5TK8755にしたらちゃんと表示されました!
皆さん本当にありがとうございました〜
なんだかんだいって、やっぱり2chは頼りになります
0235nobodyさん
03/02/03 18:50ID:???頼りにするのは困る。最終手段として使え。自分で調べられないと生きていけないぞ。
今回の問題は、suEXECのセキュリティーチェックに引っかかってる。点。
worldから書き込み可能なファイルは、所有者以外に書き換えられた可能性がある
から、実行させてくれない。ということ。
0236179
03/02/03 21:00ID:???モジュールが呼び出せないためSocket通信できませんでした。
push(@INC, "/hoge"); とかも駄目でした。
0237nobodyさん
03/02/03 21:15ID:???0238sub()
03/02/04 00:03ID:rUOqBsxa一行づつループかけてマッチした行以外をTMPファイルに吐き出して
それをログファイルに上書き(>)した後、書き換えたい行を(>>)で書けば
よいんでしょうか?3日悩んでます。。。
0240179
03/02/04 01:52ID:???>237
の言う通り、システムコールで動きました。
0241nobodyさん
03/02/04 09:32ID:???0242nobodyさん
03/02/04 16:44ID:???一行ずつ読み込んでいく方法はないものでしょうか。
@file = <IN> といったメモリにファイル全部読み込む方法は使わず、
一行ずつ読み込んで、一行ごとに違う処理をしていきたいのです。
while の中でループ回数カウントしてifで判定しろ、なんていうのはなしで。
ファイルを一行読み込む場合、
open(IN,"$logfile");
$line = <IN>;
と、やれば出きるのはどこにでも書いてあるのですが、
2度目以降 $line = <IN> としても空でした…。
Perl は一行ごとに分けるデータ構造が身についてしまってるのがダメなのかなぁ…。
seek と read 使えばよさそうなのは解ってはいるのですが、
ベースから書き換えなくてはならず、このままの構造でなんとかできないものかと。
0243242
03/02/04 17:30ID:???あちらにいってきます。
0244179
03/02/04 18:53ID:???まあいいや。seekとread使わないと駄目じゃない?
それなら方法が下のページの"ファイルをブロック化する" に書いてあるけど。
ttp://homepage2.nifty.com/S_HIASA/kotohazime/perlpro.htm
0245nobodyさん
03/02/05 00:47ID:Rqrb27N+分散して、複数のCGIを設置するのとどちらが良いのでしょうか?
例えば、カテゴリ別の掲示板だった場合…
bbs.cgiで10のカテゴリの掲示板を運営できるものと、
bbs1.cgiと、bbs2.cgiで5のカテゴリずつ運営する場合です。
この場合、下記の場合の方が、負荷を軽減できると感じてしまいますが
実際の所はどちらがよいのでしょうか?
0246nobodyさん
03/02/05 00:48ID:k4P35St7思い > 重い
0247nobodyさん
03/02/05 00:53ID:???そのCGIが、インタプリタによって実行されるものだと勝手に仮定すると、
普通に考えて、一度に解析されるコードの量が少ないと、負荷は減る。はず。
でも、>>245の場合、実際に解析されるもの自体は同じだと思うから、効果は無い。と思う。
分割するとしたら、読み込み用、書き込み用、メンテナンス用とか、機能別に分割する
方が、よろしい
0248245
03/02/05 01:03ID:Rqrb27N+CGIの内容は、スレッド掲示板をいくつでも作れてしまうというものです。
書き込み、読み込み、メンテ用などは、各CGIで動作します。
このCGIシステム一つで、掲示板を50個を運営するのと、
CGIシステムを5個設置して、10個の掲示板を運営するのと…という場合です。
読み込み用のCGIがbbs.cgiだとすると、
50の掲示板それぞれ、1分間に10人がアクセスすると、
bbs.cgiを500回動作させる事になります。
0249nobodyさん
03/02/05 03:24ID:CZbUch9cchmod 0604, "$storedir$prefix$id.$type";
0251nobodyさん
03/02/05 10:47ID:OGgWzvAlPHPとか、PEALとか、 JAVAとか、 ASPとかあるけど、
大きなデータベースを使ったWEBアプリケーションを作る場合、
どれが性能がいいですか?
今ASPしかやってませんが、次になにを勉強しようか
考えてます。
0254nobodyさん
03/02/05 11:17ID:OGgWzvAlそれもそうなのですが、当方Win2000Serverしかなく
他を試すのがたいへんなので広く知ってる方に教えて
頂けないかという少々怠慢なお願いでした...。
ちなみに同僚はPHPにすれ、と言ってました。
0255nobodyさん
03/02/05 11:48ID:hzviKg6+というデータでInternal Server Errorになりました。
とりあえず、$race2 = 'C2';
で対応しましたが、
これって、エディタの設定(sjis)が悪いんでしょうか。
それともコードでしょうか。
0257255
03/02/05 12:02ID:???文字化けする文字が悪さをした、としか分かっていません。
0258nobodyさん
03/02/05 12:37ID:???$race2 = 'C2十\';
0260nobodyさん
03/02/05 12:49ID:???それだけじゃ何なんで、説明するわ。
シングルクォート内であっても、末尾が '\' で終わる文字は書けない。
(閉じるための ' がエスケープされてしまい、
Can't find string terminator "'" anywhere before EOF
というエラーになる)
'十' という文字は2バイト目が思いっきり '\' なので、エラーになる。
他にダメな文字は以下のとおり。
―ソЫ�\噂浬欺圭構蚕十申曾箪貼能表暴予禄兔喀媾彌拿杤歃濬
畚秉綵臀藹觸軆鐔饅鷭�x�x
ちなみにエラーを書くときは、このPerlの出すエラーを書くようにね。
Internal Server Error なんて、ヘッダの吐き忘れでも出るから意味なし。
0261nobodyさん
03/02/05 12:58ID:???0264255
03/02/05 13:01ID:???0265255
03/02/05 13:20ID:???おながいしますmm
0266255
03/02/05 13:23ID:???0268nobodyさん
03/02/05 13:32ID:/TzrVcwr$num{"$str"} = 0;
}
else{
$num{"$str"} = $FORM{"number$count"};
}
とは何をやっているのですか?
初心者で厨な質問で申し訳ないです
お願いいたします
0270_
03/02/05 14:35ID:KqDONkoEif文の意味なしと思われ。
$num{"$str"} = $FORM{"number$count"};
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:???0275nobodyさん
03/02/05 21:32ID:gt7kwXPU@niftyでmethod=POSTが使用できるのでしょか?
いろいろ見てはいるのですが解らなかったので
おしえてくほしいです
0276nobodyさん
03/02/05 21:36ID:???0277275
03/02/05 21:53ID:gt7kwXPU0279275
03/02/05 22:00ID:gt7kwXPUBBS設置できなくてこまってるんでつよ・・・
0282280
03/02/05 22:03ID:???確か@niftyはそういう制限があったはず。
0283275
03/02/05 22:11ID:gt7kwXPU二つひつようなもんで
専用の場所に置いて専用のURLでアクセス
してるんですが、えらーになるんですよ
0284273
03/02/05 23:15ID:tr4FI/E+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:???$ telnet pc2.2ch.net 80
HEAD /php/ HTTP/1.0
Host: pc2.2ch.net
うしし。
0286nobodyさん
03/02/05 23:48ID:???0287273
03/02/05 23:55ID:tr4FI/E+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:???具体的にどうやって、どううまくいかないのかを書いてくれないと。
1から10まで手取り足取り教えてもらえると思ったら大間違いだよ。
0290nobodyさん
03/02/06 08:54ID:???1から10まで手取り足取り教えてほしければこちらへ
【 スクリプト改造工房 PART 5 】
http://pc2.2ch.net/test/read.cgi/php/1028193595/
やってくれる人がいるかどうかはしらんが。
0291nobodyさん
03/02/06 12:48ID:???いまいちわからないんですが、例えばフォームのvalueで指定した文字(変数?)は
$変数名にそのまま反映するんでしょうか?
初歩的なことを聞いてスマソです。
誰か教えて下さい〜。。もう一人じゃだめぽ。。
0294nobodyさん
03/02/06 13:58ID:???0296nobodyさん
03/02/06 17:08ID:???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生成してくれるものは
ありますか?
0299nobodyさん
03/02/06 21:36ID:s4S7/zxS0302nobodyさん
03/02/06 21:55ID:s4S7/zxS肝心なのはその後で、自動に受信したメールの本文を自動に解析し、
適切な答えを返信する&HTML生成してくれるものを探しています。
0303nobodyさん
03/02/06 22:06ID:???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以下のような仕様は有名なものなのでしょうか?
あるページ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★もうすぐ春ですよ★
0309nobodyさん
03/02/09 00:27ID:???print $#t;
とすると2ではなくて0と表示されるのは普通?
漏れの環境がオカシイの?
半角スペースでjoinすると、ぴっちり繋がるもんなん?
0310309
03/02/09 00:39ID:???0312nobodyさん
03/02/09 03:56ID:???削除した覚えはないのだが??
今までCGIのチェックに使ってきて何の問題もなかったんだけど、不思議。
つい2,3日前までanhttpd使ってて、今日PHPをapacheのモジュールで
動かしてみようとwindows用のapache(以前入れて放置してあった物)を
いじってたらperl/CGIが動かない。
PHPは正常に動くのになんでかな?と思いつつ、パス関係かなとperl.exeを
探したら??無い。あれ?って思ってanhttpdを起動したら昨日まで異常なかった
Perl/CGIがエラーに・・・。
なんでじゃ〜?不思議でしょうがない。こんな事ってあるんだろうか?
0313nobodyさん
03/02/09 04:01ID:???私の場合は削除はされてなかったんで、パスの指定し直したら直った。
まぁ、Perl再インストールすれば大丈夫じゃないの?
ついでに最新版確認してきてね。
0314nobodyさん
03/02/09 04:55ID:???ちなみに他ディレクトリで解凍してから、C:\php にコピーして設定という方法で
インスコした。
0316nobodyさん
03/02/09 23:57ID:Xc8YBGxY今までPerlでCGIやってたんですが、C言語でCGIを動かそうと思ってます。
色々サイト巡ってとりあえずCygwinをインストールしました。
しかし、Apacheの設定がどうしても分かりません。
Windows+ApacheでC言語のCGIを動かすための説明があるサイト等、
紹介してもらえないでしょうか。
0318nobodyさん
03/02/10 00:05ID:???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の場合はどうすればいいんでしょうか。
0321nobodyさん
03/02/10 00:27ID:VClzLIdPprintf("Content-type: text/plain\n\n");
printf("Hello, World!");
をBCCでコンパイルし、.cgiにリネームしてウェブ鯖で実行したところ、
ダウンロードダイアログが開いて、
落としたのは「Hello, World!」と書かれたテキストファイル.cgiでした・・・
何故ブラウザで開かれないんでしょうか・・・
0324nobodyさん
03/02/10 00:32ID:???すみません、書き込み直後気付いてtext/htmlにしたらちゃんと出来ました。。
皆さんどうもありがとうございました!
0326nobodyさん
03/02/10 00:34ID:???0328325
03/02/10 00:44ID:???手持ちの「Per;/CGI入門教室」とか言う本も、
最初のとこはtext/plainでやってます。。。
0331nobodyさん
03/02/10 11:46ID:???0332nobodyさん
03/02/10 18:34ID:???両方とも1つのcgiを改造して作成しました。
それをローカルでテストすると上手く動くのに
サーバーにアップしたら片方はエラーで動かないんです。
もちろん1行目やパーミッションも同じように設定してます。
何が原因なんでしょうか・・・。
0335312
03/02/11 01:19ID:???消滅する前にとあるソフトをインストールしたんですが、そのとき
インストールする前にインストーラーの
「インストールが完了していません。続けますか、やめますか?」
のエラーダイアログが出てそのメッセージをキャンセルしたんですよ。
それがactive perlをインストールした時のものだったわけです。
つまり、前のactive perlが完全にインストールされてなくて、
(インストール時にPCが固まったか何かで)半端なまま使ってたって事です。
それでインストールをキャンセルしたために、使ってたperl.exeが削除
されてしまったって事ですな。
0336312
03/02/11 01:24ID:???>>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今度セキュリティレベルを高める、という話になりました。
で、やりだまに上がったのがCGIのファイル中に記述してあるDBユーザ/パスワード。
これを別ファイルにするとか言ってるんですけど、意味あるんでしょうか??
皆さんは、こういう場合どうやってますか?
教えてくださいませ。
0339nobodyさん
03/02/11 23:07ID:VNfk5QCUそれともできちゃうもんなんですかね?
0340nobodyさん
03/02/11 23:17ID:???たとえば、SuEXECを導入しているとすると意味がある。
実行ファイル *.cgi のパーミッションは701にして、
それ以外の *。pl などは600にする。DBに渡すパスワードとかはこの*.plの方に記述しておけば、
ゲストユーザーからは*.plを実行したり読み出したりする権限はないので、
セキュリティは保たれる。
0341337
03/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:???できても微々たるものかと。
大きそうなのはconvertくらい?
qmailやpostfixが嫌ってことは、sendmailでやりたいってことでいいのかな?
smtpfeedとかいうのがあるから調べてみるといいかも。
0344さ迷える子羊
03/02/12 13:23ID:???qmail、postfix、smtpfeed等ですが嫌いなわけではないのです。
専用サーバなのにsuを頂けない状態なので、
インストールは「お金を払って頼む」しか手段がありません。
以前ImageMagick入れてもらうだけで10万近くかかりました。
ですので、ソフトのインスト−ルは見合わせております。
個人のお金ではないのですが、ちょっと高すぎて躊躇します。
0345nobodyさん
03/02/12 15:43ID:???> if( !open(MAIL,"|$sendmail -t") ){ &error('sendmail'); }
自力で SMTP 喋るようにすれば、少なくとも sendmail を
立ち上げる負荷は無くなる。
Socket.pm (Perl の標準モジュール) くらいはサーバにも
入ってるだろ?
0351346
03/02/13 13:58ID:???PORT番号を取得してソケット生成して・・・・・
って、あまりまだ調べてないのですが。
0352nobodyさん
03/02/13 15:26ID:???その方向で合ってるよ。
ちなみに SMTP のポート番号は通常 25。
詳しくは RFC 2821 な。
ttp://www.puni.net/~mimori/rfc/menu.html
0354nobodyさん
03/02/13 17:41ID:???0358nobodyさん
03/02/13 21:32ID:???0361nobodyさん
03/02/14 03:37ID:???0362344=346
03/02/15 04:08ID:???さらなる情報ありがとうです。後日調べたいと思います。
>専鯖ならともかく、共有鯖だったらやんないでね。
明記の通り専用サーバですのでガンガンメール送ってみたいと思います。
ってほど会員増えないと思いますけど。
ちなみに戦闘力調べたら、1分で250通前後でした。
しかしながら4種類のメールに対して複数送っているので、
実際はそれ以下か・・・・・(´・ω・`)ショボーン
0364nobodyさん
03/02/15 09:31ID:???0366nobodyさん
03/02/15 13:04ID:WKdky/xD0367nobodyさん
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:???正直、読めというのか。そのインデントも減った暮れもないコードを。
どこがうまく行ってないかくらい自分でもわかるだろ。その辺を分析してエッセンスだけを提示してくれよ。
0369nobodyさん
03/02/15 15:47ID:???if($match ne 'yes'){&error("パスワードが違います");}
if ( $in{'pwd'} ne $PWD ) { &error( "パスワードが違います" ); }
0370nobodyさん
03/02/15 21:49ID:???しょうがないよ。
でも「上手くいきません」は勘弁な。どう上手くいかないのかを必ず書くこと。
こういう動作を期待していたが、いざ実行してみるとこんな動作をしてしまった、みたいに
書ければとてもいい。
0372nobodyさん
03/02/15 22:23ID:???0373nobodyさん
03/02/15 22:46ID:bgMyjtswActivePerlをインストールして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"Content-Type"とか
0375nobodyさん
03/02/15 23:07ID:???0376nobodyさん
03/02/15 23:09ID:???じゃあウェブサーバーの問題ではなさそうだな。
多分>>374のどれか。たとえばActivePerlは標準では\usr\local\binにはインストールされない。
0378373
03/02/15 23:41ID:bgMyjtswperlの位置は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:???拡張子CGIファイルでPerlを実行するように設定しておけば
一行目に関係なく動く(かもしれない。)
そうしていないなら一行目の
#!/usr/local/bin/perl
を#!C:\usr\local\bin\perl
にすればうごく(かもしれない)
0380飛石3連休 ◆8772606082
03/02/16 00:00ID:???スクリプト内部の #!/usr/local/bin/perl
をチェックしない設定がないかい?
CGIファイルの拡張子は?
0381飛石3連休 ◆8772606082
03/02/16 00:02ID:???CGIをチェックする
という設定を使えばエラーがどこで出てるかわかると記憶があるが。
0382nobodyさん
03/02/16 00:10ID:???0383373
03/02/16 00:49ID:51g/G1ig動かん
>>380
設定の位置はなんとなく分かった・・でも動かん。
拡張子は.cgi
.plにしても動かんよ?
>>381
検査結果:
Error 500
CGI エラー - CGIを実行できません : だそうだ
>>382
してあるよ?
自分としては、いろいろやってみてできなかったし、YahooBB関係じゃないかと思うのだが・・
それともやっぱりソースとか設定とかが原因ですか(´ー`)?
0384nobodyさん
03/02/16 00:54ID:???最後のアルファベットも含めて。
0385nobodyさん
03/02/16 00:56ID:???0386nobodyさん
03/02/16 00:56ID:???ローカルで動かそうとしてんじゃないの?なんでYahooBBが。
AN HTTPD と ActivePerl の組み合わせなら kent のとこでも参考に
ttp://www.kent-web.com/www/index.html
0387nobodyさん
03/02/16 01:00ID:???0388nobodyさん
03/02/16 01:13ID:51g/G1ig1.42g
>>386
知り合いが何かそう言ってたんだよ!知るか。
とりあえず今から386のサイトに飛んできます
0389nobodyさん
03/02/16 01:29ID:51g/G1ig細かいとことかでもいいんで何かあれば言ってください。お願いします
0390nobodyさん
03/02/16 01:35ID:???http://homepage1.nifty.com/monden/cpu/386.html
ちなみに、ActivePerl+httpdを設定無しで
例のhelioWorldを動作させたがきちんと表示されたよ。
両方とも再インストールでどう?
0391nobodyさん
03/02/16 01:47ID:51g/G1ig0392モモコ
03/02/16 03:35ID:???レンタルCGIでお願いします。
どなたかご存知ですか?
0394nobodyさん
03/02/16 10:01ID:0jPHodHRたぶん$size / 1024を使うとは思うんですが書き方がわかりません
0396nobodyさん
03/02/16 10:30ID:0jPHodHR0398373
03/02/16 15:30ID:51g/G1ig0399nobodyさん
03/02/16 15:45ID:???まだ出来ないのか。がんがれよ
AN HTTPD でどうしてもできないなら Apache のほう使うのもいいかもね
設定のしかたが難しい印象があるかもしれんが、解説ページを1つ紹介しとく
ttp://www2j.biglobe.ne.jp/~apollo/server/server.html
0400nobodyさん
03/02/16 15:49ID:PVMDa3kD0401nobodyさん
03/02/16 15:54ID:HkwUW3eX0402373
03/02/16 17:16ID:51g/G1ig0403373
03/02/16 17:44ID:51g/G1igインストールする位置はどこがいい?
標準ではc:\perl\になってるわけだが、これでもいいのか(´ー`)?
0405nobodyさん
03/02/16 17:54ID:???貴様漏れの紹介したページ読んでないですか?
たしかに>>404の言うとおりどこでもいいんだけど、ローカルでテストしたあとは
サーバーにアップロードするんでしょ?そのときいちいちスクリプトの一行目の
Perlのパスを書き換えないでいいように、サーバーの設定とそろえておくほうがいい。
そのへんのフォローも書いてるから>>399のサイトを読みながらインストールしてみ
0406373
03/02/16 18:08ID:51g/G1ig再インストールして良かったよ。疲れたけど
>>405
どもどもすみませぬ。399のとこにはお世話になりますた。
非常に感謝しておりますです。はい。
これからたくさんやりたいことがあるので、
いろいろと勉強してがんばりたいです。それじゃ。
0407nobodyさん
03/02/16 19:12ID:y0NHKpEd0410nobodyさん
03/02/18 00:15ID:FF7juywa0411nobodyさん
03/02/19 03:48ID:???httpd.conf の中にありまふ
.cgi で検索してると出てくるよ
AddHandler cgi-script .cgi
て具合に
0412nobodyさん
03/02/19 04:11ID:vr421/dJPGPなんかで暗号化してメールを受信出来るようなCGIとか
ありませんかねぇ。。
SSLからそのまま平文メールだと意味無いんで・・・・・
フリー&シェアウェア&市販、どれでもいいんですが、
自鯖で使えるやつを探してます。
0413nobodyさん
03/02/19 04:32ID:oWKZ/weY他のスレと勘違いしてねぇか?
こんなCGI探してますスレッド Ver8
http://pc2.2ch.net/test/read.cgi/php/1041564353/
0414nobodyさん
03/02/19 04:42ID:???↓暗号
SMTP
↓非暗号=マズー
POP3
ここで聞く
http://www.kikakuya.com/service/eEgg79/option_pgp.html
0417 ◆nBdXIOeCFk
03/02/19 15:55ID:iFOkWU9Wそのファイルを開くと、
「ファイルを開くアプリケーションを選んでください」
になってしまいます、どのアプリケーションで開けば良いのでしょうか?
0421nobodyさん
03/02/19 19:45ID:???formの部分を他のwebページに貼って
そこから投稿しようとしたんですけどできませんでした。
おそらく外部からの投稿を禁止してるんだと思います。
どの辺を弄ればよいのかご教授いただけないでしょうか?
0422nobodyさん
03/02/19 19:46ID:dIKdV7ST0424nobodyさん
03/02/19 19:56ID:???ありがとうございます。
$ENV{'HTTP_REFERER'}
↑これを探してなかったんで質問させていただいたんですが、
今、もう一度検索しなおしてみたところ似たような部分がありましたので
解決できそうです。
ありがとうございました。
0425417 ◆nBdXIOeCFk
03/02/19 22:05ID:qxP6cynEこのHP見ましたが英語でわかりません、
住民の方詳しくお願いします。
WIN98です
0427nobodyさん
03/02/19 22:12ID:???中学校に入ると、英語を習うので、そうしたら読んでみるといいでしょう。
今すぐ読みたいなら、お母さんに英語教室に通わせてもらうと良いでしょう。
0428常時sage ◆s/jp/vus/g
03/02/19 22:20ID:???0429nobodyさん
03/02/19 22:39ID:???0432まちがえました429
03/02/19 23:04ID:???0433nobodyさん
03/02/20 00:02ID:???おい、>>429は、
鯖から接続してきたクライアントのハードディスクの中身を抜こうとしてるんじゃないのか?
それができる前提で質問をしてないか?
0434nobodyさん
03/02/20 00:17ID:???そうなの?サーバのHDDもしくはファイルアップロードで画像をアップロードさせる前提だと思ったよ。
まぁ、いずれにしても俺のアドバイスがクラッキングに役立つとも思えんけど。
0435417 ◆nBdXIOeCFk
03/02/20 00:58ID:ESnUqnD00437nobodyさん
03/02/20 01:15ID:???これ買って勉強してください。
http://www.amazon.co.jp/exec/obidos/ASIN/4839904308/ref%3Dbr%5Flf%5Fb%5F7/250-8992305-8523460
0438nobodyさん
03/02/21 02:57ID:+apCT8OAprint "$comment\n\n" if($comment ne (" " || " "));
と書いたんですが、
どうやら、ここが原因で動かないようになってしまいました。
真夜中ですがどなたかいらっしゃいましたら、ご教授して頂けないでしょうか?
0439nobodyさん
03/02/21 02:59ID:???○ $comment
ですた。
0440nobodyさん
03/02/21 03:06ID:???(' ' || ' ') が先に評価されて、それと$commentが比較されるからじゃないかな。
$commentと' '、$commentと' 'のそれぞれを比較して || しましょう。
0441nobodyさん
03/02/21 03:07ID:p5R52YmNこれだと、if文で最初に評価されるのは、(" " || " ") この部分になるのでは?
if ($comment ne " " && $comment ne " ")
これでどうよ?
・・・間違ってるかもしれんけど。
0443438
03/02/21 03:19ID:???寝る前にこんな単純すぎるミスの質問で申し訳ないです。
おやすみなさい。
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:???例えば2ちゃんねるってHost:ヘッダ要素がないと取得出来なかったりするけど。
HTTP1.1で必須なんだっけか?忘れたけど。
0446444
03/02/21 20:41ID:???おかげさまで取得できるようになりました。
404が返ってきていたので原因は別にあると思っていたんですけど、
試しにHTTP/1.1にしてみたらできました。
0447nobodyさん
03/02/23 22:39ID:BpzQ/pnE0448nobodyさん
03/02/23 22:53ID:???全角のアルファベットを全て半角に置き換える場合、どのようにしたら
よいのでしょうか。
$zenkaku =~ s/A/A/g;
とやれば一文字だけはできますが、これを複数に適用する記述が
判らないのです。素人質問だとは思いますが、どなたかご回答を
お願いします。
0449nobodyさん
03/02/23 22:55ID:???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:???Perlでの話なら
http://www.din.or.jp/~ohzaki/perl.htm#JP_Z2H
0452645
03/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フォーム付近を読んでみれば?
そもそも、それだけの説明で分かるとでも思っているのか?
0454nobodyさん
03/02/25 11:54ID:Py/Ha9JOここのFAQcgiを設置しようとしてるんですけど、長い文を投稿すると書き込めないんです。
文字数無制限に投稿できるようにしたいんですけど、
どこを変えればできますか?
よろしくお願いします。
0457nobodyさん
03/02/25 17:40ID:Ep506vrCそれ昔設置してみたことあるけど、
文字数制限なんてなかったような気がするぞ?
0458マリモーマ ◆r6PDGT6Xd2
03/02/25 18:03ID:JgDR1Phlヘッダーを 2回表示してると 思われ
0459マリモーマ ◆r6PDGT6Xd2
03/02/25 18:04ID:JgDR1Phl0460nobodyさん
03/02/25 19:19ID:???だれかWEBアプリ使ってる香具師いる?
0463454
03/02/26 00:15ID:???ふがっ!そんなバカな…と思ってみてみるとGETにしてました!
なんでだろ〜
ありがとうございました。
ここがなければ新たなCGI探しに旅立つところでした。
0464マリモーマ ◆r6PDGT6Xd2
03/02/26 06:46ID:O7FL4tD3ここへ どうぞ http://pc2.2ch.net/test/read.cgi/php/1046170460
0465マリモーマ ◆r6PDGT6Xd2
03/02/26 06:50ID:O7FL4tD3http://pc2.2ch.net/test/read.cgi/php/997967112/
0466nobodyさん
03/02/27 12:48ID:hjlRXuUvサバはsendmailとCGIに対応してます。
原因として何がかんがえられますか?
0468nobodyさん
03/02/27 18:29ID:YAYUiWhmチェックボックス、2列目以降は、項目値にリンクを張っています。
この状態でチェックボックスやリンクをクリックしたときにCGIを使用して
ログを出力したいと思います。
そのとき、どのチェックボックスやリンクをクリックしたかを引数で
渡すにはどうすればいいのでしょうか?
0470nobodyさん
03/02/28 12:42ID:oJJV0L53受注者にも同じ内容のメールを送るにはどーすればいいの?
0471nobodyさん
03/02/28 13:22ID:OqudrRUTCGI側で判断できますか?
0472nobodyさん
03/02/28 13:39ID:z8TnOjQ7電話番号から住所 年収 財産 結婚暦
暗証番号 旧住所〜新住所 ブラックリスト
生存 行方 本名 などなど
初恋の人 思い出の人に逢えるかも・・・・?
http://www.tyousa.com
0473nobodyさん
03/02/28 13:47ID:???中身はよー知らんが、to:にそのアドレスを追加すればいんでないの?
to:発注者メアド,受注者メアド
そもそもレスキューに頼っているようじゃ、(ry
>>471
一旦クッキー喰わせてから、リロードを促して、2度目のアクセス時に$ENV{'HTTP_COOKIE'}の有無を確かめてみては?
>>472
仄暗い過去は思い出したくない(泪)
0474nobodyさん
03/02/28 19:44ID:5OavBBuqこ
は
お
も
し ろ い イ ソ タ ー
ネ
ッ
ト で す ね
0475nobodyさん
03/02/28 20:54ID:583oYx0/CGIでできてCGI::Liteでできないこと
0476nobodyさん
03/02/28 21:15ID:???CGI::Lite -> だいたい下のページに書かれたことしかできない。軽い。
ttp://yaino.com/gzudoc2/0001/000004.html
0477473
03/02/28 21:40ID:???今日20年ぶりに同級生に出くわした。ちとびびった(汗)
0478nobodyさん?
03/02/28 21:57ID:L/lBXc660479nobodyさん
03/02/28 22:45ID:???HTTP_*の環境変数は、CGIっていう規格に入ってる。と思う。
つまり、HTTPDがつけてる。
REMOTE_*、SCRIPT_*もその辺りでつけてる。
環境変数っていう仕掛けは、UNIXにもともとある仕組みで、あるプロセスから
新しいプロセスを作ったら、もとのプロセスから継承される。というものだから、
それ以外の変なものは、そんな風にどこかで付いたもの。かと。
0480nobodyさん?
03/02/28 23:38ID:???HTTP_USER_AGENTはHTTPDがUAから送られてくるものを信じて設定するが、
REMOTE_HOSTはUA側ではどうすることもできないからってことでしょうか?
0481nobodyさん
03/03/01 00:04ID:???>REMOTE_HOSTはUA側ではどうすることもできないからってことでしょうか?
と、言うかこっちで取得できる以上、こっちで設定すればいいジャント。
0482nobodyさん
03/03/01 00:22ID:???http://www.cgier.com/cgi-bin/leoboard.cgi
こんなんの日本語のやつある?
0483nobodyさん
03/03/01 00:55ID:???REMOTE_*は、HTTPDがクライアントを見て考えてつけた。
(絶対に設定できないっていうわけではないけど・・IPだから)
0484nobodyさん
03/03/01 01:00ID:???ん?
0485478
03/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を捨てています。
そこで完璧な方法が欲しいのですが・・・。
0488nobodyさん
03/03/01 06:57ID:zvvmjqfDhttp://homepage3.nifty.com/digikei/sample/sample.html
気合入れてどんどん更新していきます
0491nobodyさん
03/03/01 12:33ID:???EUCとシフトJISのコードがかぶる問題?
・漢字をhiddenで渡し、返ってきた値で判別
・submitボタンのvalueに漢字を設定、返ってきた値で判別
0492nobodyさん
03/03/01 13:52ID:???普通は文字コードの変換なんていらないよ。
シフトJISのページにEUCを送りつけるブラウザなんていまどき存在しないだろ。
(ネスケの2.xとかがそんな感じだった)
でも、最近困っているのがrefererの文字コード。
これはサーチエンジンの文字コードに依存するから統一されてない。
しかも、googleがUTF-8なんていうこじゃれた物を使うから参った。
URL確認してgoogleの場合だけ処理分けるかな…
0493nobodyさん
03/03/01 15:54ID:fsy3TEByFTPクライアントぐらいは作れます。
もっとスキルアップするための役立つサイトなどは無いでしょうか?
生パケットを弄るような・・・
0497真剣 ◆DvLQ1Mvmkc
03/03/02 02:36ID:???真剣にCGIに取り組もうと色々と勉強していますが、
解らない事が多々ありまして、質問に参りました。
私などは独自でPERLなどを理解していないものですから
フリーの配布サイト様に頼るしかできません。
しかし、私が探している「検索系」のCGIがどうしても
見つかりません。
できれば、http://www.yadoplaza.com/の左フレームにある
検索をおすと該当する条件がこのようなテーブルで
抽出されるような物がベストです。
このようなシステムに近い事は配布サイト様のCGIを
少しいじるだけで可能でしょうか?
また、このような配布CGIは存在するのでしょうか?
WEBレスキュー様に簡易データベースというのを発見しましたが
これをいじくれば、できるのか・・・・
本当に皆さんのようなプロにはあほみたいな質問だとは思いますが
どうか教えていただければ幸いです。
0498nobodyさん
03/03/02 04:51ID:???そのサイトはJava-Servletじゃないかと予想してみる。・・・やっぱりそうみたい(ApacheJServ/1.1.2)
貴方じゃ一生かかっても作れないから、それこそプロに相談した方がいいよ。
0499真剣 ◆DvLQ1Mvmkc
03/03/02 07:48ID:???丁寧に調べてまで下さり有難うございます。
Java なんたらですか。お言葉どうり一生無理ですね。(´・ω・`)ショボーン
資金豊富ではないので簡易データベースをちょちょっといじって
頑張ってCGIでがむばるしかないのでつか?
うーん。がんばるか。。それにしてもデータベースの元に
なるCSVを編集するだけでもしんどいですね。
0500nobodyさん
03/03/02 08:53ID:???0501nobodyさん
03/03/02 16:50ID:???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が読み込まれているので、原因がつかめません。
0503nobodyさん
03/03/02 17:28ID:???gdtest.cgi>&my.png
ソース内のprintf("Content-type"......)を消しreコンパイルし
リダイレクトさせて、ブラウザから見たのだが、
表示されない。
apache以前の問題と判明。
0505nobodyさん
03/03/02 20:58ID:???やっぱり無理です〜。(;;)
環境依存っぽいんですけど・・・・。
#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);
}
0507nobodyさん
03/03/02 21:24ID:???ttp://www.nihon-sys.com/runruncgi/cgi-bin/srcview.cgi?imgcnt.cc
0508nobodyさん
03/03/02 23:07ID:???すいません、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);
}
0511nobodyさん
03/03/02 23:23ID:???すいません、環境書いていませんでした。
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:???ヘッダー吐く前に死んでるってあるから、
少なくともバグはprintfよりも上にあるってことがわかるな。
ファイル名は*.cgiなんだから……http:d.confは.cgiがどんな扱いになってるのかを確認した方がいい。
0513nobodyさん
03/03/03 00:18ID:???0515nobodyさん
03/03/03 12:11ID:???>>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:???>>513
>>514
ごめんなさい、 ごめんなさい、 ごめんなさい、
ごめんなさい、 ごめんなさい、 ごめんなさい、
chmod 755 or chmod 700 で動かしたら動作しました。
∧_∧
( ´∀`)<ねー。許してね。
( )
/ / /
(_)_)
0518nobodyさん
03/03/03 13:47ID:???もしもどこかでpopenを使っていたら、popen前(というよりパイプに書き出す前)にstdoutをフラッシュしておいた方がいい。
以前これで小一時間悩んだことが・・・
0519518
03/03/03 13:58ID:???0520nobodyさん
03/03/03 15:36ID:???>>519
fflush(stdout)ですね。
とりあえず、gdライブラリを使っているので、大丈夫です。
popen ということは、ppmtogif 等のコマンドに対して、
パイプを使って書き込むパターンですね。
試したことはないので、試す際には参考にさせてもらいます。
0521nobodyさん
03/03/03 16:18ID:0801sff0http://www.pink-angel.jp/betu/linkvp/linkvp.html
0522nobodyさん
03/03/03 18:40ID:CiYwJP6ehttp://www5b.biglobe.ne.jp/~ryo-kyo/osukon.html
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
0523poor
03/03/04 05:12ID:pSR3aMdf0524poor
03/03/04 05:17ID:pSR3aMdf2箇所機能的に動かないところがあります。
直していただけれましたら5000円お支払いします。
0525nobodyさん
03/03/04 05:43ID:???0527poor
03/03/04 11:28ID:pSR3aMdfもう少し支払ってもいいです。
メールアドレスを下さい。
添付でファイルを送ります、
0528nobodyさん
03/03/04 11:57ID:???↓その後の言い訳。
0529poor
03/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;
}
0531nobodyさん
03/03/04 13:45ID:???冗談はおいといて、何をしたいんだ?
ifもelifもやってること同じじぇねーか
しかもループ外で++してるだけならreturnは最初より1増えて
戻るだけだろ
やっぱりネタか
↓↓↓次の方どうぞ↓↓↓
0532poor
03/03/04 14:06ID:pSR3aMdf業者に頼むと3万円と言われました。
0533poor
03/03/04 14:41ID:b5xaOKg70534nobodyさん
03/03/04 14:48ID:???ソース全部晒して何をどうしたいか言え。
それで大勢に見てもらったほうがよっぽどよくなるだろう。
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:???setuid実行環境なら、プログラムの置かれているディレクトリにはその他への実行権限が必用。
他は所有者にのみ権限を与えればよい。
そうでない場合は、プログラム本体には読みとりと実行を、ログファイルには読みとりと書き込みの権限を与える。
もしも実行時にファイルを作成することがあるのならば、その他へ書き込み権限を与えた専用のディレクトリを作成する。間違ってもそれを他の用途に使ってはならない。
0537nobodyさん
03/03/04 15:22ID:???こいつマルチポストしてるから答えなくていいよ
0538nobodyさん
03/03/04 15:38ID:xylsMcYbとてもよくわかりました!
ありがとうございました!
0539Name_Not_Found
03/03/04 18:07ID:I14iMBLmこれを SSL サーバで動かそうと思ったら、
SSL 対応のための修正がいるんですかね?
一般に、SSLサーバで動くCGIには、通常に比べて
制限などはありますか?
0541nobodyさん
03/03/04 20:23ID:Yab0v18z日付に関するところが"1046714534"のような
数字になっているんですがこれは何を表しているんでしょうか?
また、どのように展開するのでしょうか?
0544nobodyさん
03/03/04 21:41ID:v+m1rapOhttp://hkwr.com/
http://hkwr.com/bbs
0545nobodyさん
03/03/06 00:23ID:DsuR7EV5CGIを探してます。商品名・価格・販売個数などの欄を、掲示板感覚で
手軽に書き換えられるようなCGIを無料配布してるとこないでしょうか?
WebDBを管理するもので管理者以外でも書き込めるもの、です。
イメージ的には、Webオークションとかをやるようなサイトが使っている
CGIなんですが、無料配布されているところはないでしょうか。。。
普通の掲示板だとレスが長々とついていってしまい、管理も、閲覧するときも
みづらくなってしまいますので・・
販売個数や売上げなどのいくつかの項目を随時手軽に更新させられるような
ものがあれば教えていただけませんでしょうか
0546nobodyさん
03/03/06 00:49ID:???こんなCGI探してますスレッド Ver8
http://pc2.2ch.net/test/read.cgi/php/1041564353/
0547nobodyさん
03/03/06 04:15ID:???0548nobodyさん
03/03/06 04:19ID:???/:\.____\
|: ̄\(∩´∀`) \ <先生!こんなのがありました!
|:在 |: ̄ ̄ U ̄:|
http://saitama.gasuki.com/mona/
0550nobodyさん
03/03/06 08:01ID:???IE6.0を使っている人から403エラーで中に入れないと指摘がありました。
念のためエラーページにも解析を入れたところ、
IE6.0でもエラーの出る人と出ない人がいるようです。
当方マカーのためIE6.0のことはよくわかりません。
原因のわかるかたがいらっしゃいましたら、是非教えてください。
宜しくお願い致します。
0552550
03/03/06 08:23ID:k3C4MM6+パーミッションは、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:???>本家を自分一人で設置できるぐらいのスキルが最低限必要です。
って書いてある。
トラブルを自己解決できないような香具師は使うなってことだね。
0555nobodyさん
03/03/06 19:23ID:???http://cgi2.html.ne.jp/~around/bbs/bbs.cgi?book=script_support
ここで解決した。
普通は707なんてパーミッション滅多に使わないので
解らなくて当然では?
と自分で自分を擁護してもしょうがないので、
ではさらば
0556nobodyさん
03/03/06 19:55ID:???俺良く使うけど。
0560nobodyさん
03/03/07 20:30ID:???目的にあったパーミッションを考えたら当然だと思うんだが。
0563nobodyさん
03/03/08 11:36ID:IsIbiOhHCGIの中に管理用パスワード置いてました
0566nobodyさん
03/03/08 13:13ID:???サーバ側がグループをどう扱っているかによるけど、
与えないほうが無難だな。
0567nobodyさん
03/03/08 13:14ID:???不必要なアクセス権を設定しちゃいけません。
間借りしてるなら規定されているはずだし、
自分で立ててるならちゃんと管理してねってことで。
0568nobodyさん
03/03/08 13:23ID:???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:???0576nobodyさん
03/03/09 19:30ID:zYZaV2tZダウンロードボタンを押すとそのままブラウザにそのファイルが表
示されてしまう。TXTであれHTMLであれCGIであれそうだ。
これって何がいけないのかな?原因わかる?
ほかのサーバーにおんなじCGIを置いてボタンを押すとちゃんとDL
ダイアログが出てDLできるんだが・・・。
0578nobodyさん
03/03/09 19:34ID:048q+sGA★その目で確認すべし!!★超おすすめ★
0579576
03/03/09 19:37ID:zYZaV2tZダウンローダーとかファイル管理CGIとか、そんなようなやつ。
------
| DL |
------
↑ボタンを押すと選んだファイルがDLされるっていう動作になるはずが
ならないんだよ・・・。
0582nobodyさん
03/03/09 20:37ID:???0586nobodyさん
03/03/09 20:46ID:???言いたいことが分かったような分からないような・・
まあちょっと違和感と言っているから全く筋違いというわけでもなさそうだな。
0587nobodyさん
03/03/10 00:12ID:p/bgqDIW0589nobodyさん
03/03/10 00:35ID:???0590587
03/03/10 00:47ID:???0592587
03/03/10 01:32ID:???バイナリで取得するって事ではない、んですよね?
0593nobodyさん
03/03/10 01:37ID:???検索の仕方も知らないのか?プログラム書くのはこれっきりやめろ。
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分で見つかったぞ。
0594587
03/03/10 01:51ID:???検索行ってきます。
ヒントありがとう。
0595nobodyさん
03/03/10 15:33ID:waQu7wS1相談にのっていただけませんか。
借りているサーバーがパーミッションの設定・変更はできないと書いてあり、
FTPソフトでいじることができませんでした。
CGIの実行やCGIによるファイルの読み書きにつきましては、
パーミッションの設定・変更なしに利用できると書いてあったので
実際CGIをアップしてみたのですがエラーになって表示されませんでした。
CGIが間違っているせいなのか、パーミッション変更不可のため動かないのか、悩んでいます。
0596nobodyさん
03/03/10 16:05ID:???0597nobodyさん
03/03/10 16:24ID:y6h+x0ia説明不足でよくわかりません。
どこのサーバーとか、
そのサーバーの設定等がWEB上で見れれば何とかなるんだが・・・。
(たまに説明をWEBでしてるところあるよね)
とマジレスしてみるテスト。
0598595
03/03/10 16:24ID:???そもそもCGIの設置は無理なのかもしれません。
念のため、使っているサーバーのCGIについてのページを貼ります。
やっぱ無理でしょうか?
↓
ttp://www.onamae.com/help/18-5.shtml
0599nobodyさん
03/03/10 16:28ID:???/*
プレミアサーバーの仕様は?
仕様は以下の通りとなっております。
・Microsoft Windows2000 Server
・Microsoft Internet Infomation Server(IIS)5.0
・Microsoft Exchange2000
なお、Perlはバージョン5.6.1を使用しております。
*/
よって、UNIX特有のパーミッションという概念はありません。
0601595
03/03/10 16:33ID:???パーミッションという概念がない場合、
どんなCGIも自動で機能するのでしょうか?
それとも、それ用のCGIを選択して使用するべきなのでしょうか?
先ほど試みたのはKENTWEBのeカウンタというものです。
(いちばん簡単そうに見えたので)
ttp://www.kent-web.com/count/ecount.html?
0602nobodyさん
03/03/10 16:34ID:M2RJhlYt★その目で確認すべし!!★超おすすめ★
0604nobodyさん
03/03/10 16:44ID:???先に >>598 と >>601 みたいな情報を出すようにしてくれ。
で、暇だったので試してみたけど、中身まったくいじらなくても置くだけで
http://(略)/ecount.cgi?check は動作したよ。
こちらは Apache + ActivePerl で IIS じゃないけど、まあ変わらんでしょ。
0605595
03/03/10 17:05ID:???今、中身をいじらずにアップしてみましたが
ログファイルのパスが不正です:./ecount.dat
ログファイルのパーミッションが不正です
と表示されてしまいました。やっぱり駄目みたいです。ああ。。。
ローカルで動かすにはソフトをダウンロードしなくてはならないようなので
また後で来させていただきます。
どうもありがとうございました。
0606576=579
03/03/10 17:13ID:AgGCKLX9>>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ならば、ttp://www.onamae.com/help/18-5.shtml
の「Perlでパスの指定がうまくゆかない。」の項目をよく見よ。
このサーバーの厄介なところじゃないかな。
0608576
03/03/10 17:33ID:AgGCKLX9>CGIの実行やCGIによるファイルの読み書きにつきましては、
>パーミッションの設定・変更なしに利用できる
これって、パーミッションが「何でも動く」んじゃなくて、
パーミッションをサーバーが自動で変えてくれる、って意味じゃない?
・・・私が前いたサーバーはそうだった。
だからパーミッションの問題じゃないと思う。
で、同じ問題にぶつかった事があるんだ。詳しい人に聞いたらこういう事だったよ。
:アップしたCGIが動かないのはCGIスクリプトに問題があるのではないか。
:サーバーで使ってはいけないってなってる命令語が含まれていないか。
:含まれていればUPしても使えない(こともあるかも)。
#ここでいう問題ってのは、「スクリプトがまちがっとる!」ということ
#じゃないぞ。そのサーバーで使うのに問題があるってこと。
たとえばセキュリティの問題で、カウンタに使われることのあるSSIは禁止
だとかさ。ファイルを作る命令語はダメだとかさ。
あなたのサーバーって、そういう制限を設けてるサーバーじゃないの?
もっとも・・・「制限がある」ってなっても、初心者だったらスクリプト見て
「これは制限されてるのがある・ない」ってわかんないと思うから、
ヘタの鉄砲数うちゃ当たるってなもんで、入れてみて動くものを使うようにす
ればよいと思う。
#んで、ローカルでのテストは意味ないんじゃないかな。こういう時って。
0610nobodyさん
03/03/10 17:53ID:???それは「動作してる」よ。意図通りに動いてはいないけれどね。
次からは、1.サーバエラーが発生したのか、2.意図通りに動かないのか、
を明記するようにして欲しい。
>>609
>#んで、ローカルでのテストは意味ないんじゃないかな。こういう時って。
問題の切り分けがきちんとできており、最初から、問題は
サーバの仕様にあると限定できるのであれば、おっしゃる通りです。
でも今回の場合は(ry
0613595
03/03/10 18:09ID:???どうもありがとうございました。
608さんのおっしゃるとおり、
サーバーはパーミッションを自動で変更してくれたようです。
それで607さんの絶対パスについてのところを参照にCGIのパスをいじったところ、
DATファイルが反応するようになり、
GIFファイルも直したら反応するようになり、
サーバー上でカウンタが動くようになりました。
610さん、申し訳ありません。
サーバーエラーなのか、意図どおりに動かないのかすら判断できなかったのです。
みなさん、ほんとうにありがとうございました。
0614606
03/03/10 18:27ID:AgGCKLX9telnetできないっす。
こりゃCGIの問題じゃなくって、サーバーの仕様とかかな?
・・・そういう仕様って、アリ?
0615608
03/03/10 18:30ID:AgGCKLX9治りましたか。よかったよかった(^^)
サーバーエラー>紛らわしいよね(笑)
0616606
03/03/10 18:32ID:AgGCKLX9言葉がたりんかった。
Telnetできないのは、Telnet開放されてないから(^^;
0618nobodyさん
03/03/10 18:49ID:???0620nobodyさん
03/03/10 20:53ID:???0622607
03/03/10 21:38ID:y6h+x0iaおめでとう。(カメレススマソ)
0625nobodyさん
03/03/10 23:22ID:F/vwue5xFTPから丸ごと削除しようとしました。そうしたら、/diff/, /info/, /wiki/
というディレクトリ及びその中身のファイルが、Permission Deniedと言われ、
削除できずに残りました。どのようにすれば削除できるのでしょう?
0626nobodyさん?
03/03/10 23:25ID:???ディレクトリに書き込み権限がないんじゃないの?
0627625
03/03/11 06:17ID:???cgiによって作られたファイルはcgiからでないと削除できないと分かり、
ファイルをunlinkして回るcgiを作って走らせたところ、無事消えました。
0629nobodyさん
03/03/11 16:29ID:mYfv1t4yどれだけ調べてもヒントすら見つからないので、
全く見当違いなことを考えてるんだと思い質問させていただきます。
ディレクトリを作るのはmkdirですよね。
ならファイルを生成するのはどうしたらいいんでしょうか?
たとえばtestというディレクトリを作り、
その中にtest.datというファイルを作る
なんてことはどうすればできるんでしょうか?
0630nobodyさん
03/03/11 16:35ID:???open(FILE,">>ふぁいる名");
print(FILE "でーた\n");
close(FILE);
0632nobodyさん
03/03/11 17:41ID:04f/wl45表現がありますよね。処理が軽いとか。
この「軽い」「重い」って・・・?
設定項目(=変数)が多いと重い?
サブルーチンが多いと重い?
それとも行数が多いと重い?
コメントが含まれていると重い?
どんなんでしょ?(ちなみにPerlCGIで。)
0634nobodyさん
03/03/11 18:06ID:???>設定項目(=変数)が多いと重い?
>サブルーチンが多いと重い?
>それとも行数が多いと重い?
>コメントが含まれていると重い?
すべてNO
厳密に測定すれば差は出るだろうけど
0637nobodyさん
03/03/11 19:56ID:???0638nobodyさん
03/03/11 20:03ID:???0641nobodyさん
03/03/12 10:34ID:???0642nobodyさん
03/03/12 19:04ID:???どうしたら良いの?
while使っても大差ないと思うんだけど。
0645nobodyさん
03/03/12 23:22ID:???もう春なんだなあ・・・
0648nobodyさん
03/03/13 00:15ID:???ということをやりたいのですが、可能ですか?
0649nobodyさん
03/03/13 00:16ID:???Perlならrequireで検索。
0650nobodyさん
03/03/13 00:55ID:???config.plに$test = test;を入れといて、
print.cgiにprint "$test";って入れて表示させる方法ってどうやるんですか?
よろしくお願いします(plの1;やcgiのヘッダーはできているとする)
0653648
03/03/13 08:31ID:9FkJfCBrごめんなさい
もう少し詳しく書きます
別のcgiは別のサーバにあります。
で、POSTでそのcgiに値を渡し
そのcgiが(ブラウザに)出力する結果を元に
処理を行う、それをいくつか繰り返す
以上の事をcgiで行うことは可能でしょうか
0654nobodyさん
03/03/13 08:59ID:???可能
ただし、これ以上の質問は使っている言語専用スレで
> cgiで行うことは可能でしょうか
cgi の部分を、PerlなりPHPなり自分が使っている言語に
置き換えて読み返してみれば、すぐ解ることでしょが
0655nobodyさん
03/03/13 09:09ID:Lbm4LPV1http://homepage3.nifty.com/digikei/
0656bloom
03/03/13 09:18ID:+b8Vztun0657632
03/03/13 15:56ID:rD3WUou4ちょっと質問悪かったかも。
重い・軽い・っていうのは、どういう作りによっておきるのか?
と、聞きたかったのです。
それで、設定項目が・・・なんてことを言ったのですが。
>>634
うーん、そっか。
んじゃあとりあえず、40KBとかあるスクリプトが必ずしも
重いとは限らないわけね。
0659nobodyさん
03/03/13 16:38ID:xb4yxiHKアクセス解析するページを見ると、×印が表示されます。
FAQの
http://www.futomi.com/library/faq/acc_faq.html#1
は見ました。
standard版だと上記の方法で×印が表示されないようには出来たんですが
professional版だと駄目でした。
サーバーはxreaの無料鯖を使ってます。
×を表示しないようにする方法を知ってる方がいたらぜひとも!
教えてください。
0660nobodyさん
03/03/13 16:41ID:???私は、このウェブサービスが、初心者向けサービスでないことを知っています。最低限必要な情報しか提供していないことを知っています。
私は、問題を自分で解決する努力をします。わからないことはまず自分で調べます。
(XREA 規約より)
0662659
03/03/13 16:47ID:???やった事を書くのを忘れていたので書かせて頂きます。
自動広告表示が原因だと思うのですが
自動広告をやめてhtmlに直接タグを書いて広告を表示しても
×印が消えなかったです。
futomi's CGI Cafe のFAQではこれで×は消えると書いていたのですが
駄目でした。
検索エンジンでも調べてみましたが駄目で、
自分で言うのもあれですが努力はかなりしました。
出来れば解決方法が分かれば教えてください。
宜しくお願いします。
0663nobodyさん
03/03/13 16:47ID:???重い = 処理時間が長い
つまり効率的な処理ができていないものと言える。
(処理そのものが複雑な場合もあるが、それはとりあえず置いておく)
効率的な処理というのは、>>632で挙げられたことと全く関係がない
わけではないが、そこに大きな関係を見出すことは難しい。
また処理の方法というのは、ほとんどの場合幾通りものアプローチが
あるもので、どれが効率良いかは試験と経験でしかわからない。
というわけで、ネット上で配布されているようなものに関して言えば、
使ってみるかソースを読んで解析するかしないとわからないよ。
既ユーザに使用感を聞いてみるのが一番簡単な方法かもね。
0664nobodyさん
03/03/13 19:07ID:ajLCHyyn0665nobodyさん
03/03/13 19:47ID:???>設定項目(=変数)が多いと重い?
設定項目が多くても、処理が少なければ軽い。
>サブルーチンが多いと重い?
サブルーチンが少なくても、全体の処理が多ければ重い。
>それとも行数が多いと重い?
たった1行でも無限ループになっていたらそっちの方が重い。
>コメントが含まれていると重い?
誤差の内。
結局は、計算機が計算を行なう回数と、ファイルアクセスなどを行なう回数及び時間に関わる。
結果として、>663さんの言うのが正しいわけだが。
どういう作りで、というなら、シンプルな方が軽い。
もちろん、下手な奴が作ればシンプルでも重くなるが。
あとはベンチマークでもやって自分で計るのが一番。
いうまでもないがローカルでな。
0666nobodyさん
03/03/13 20:32ID:???0667nobodyさん
03/03/13 21:37ID:???出来る範囲で分割させた方が管理しやすいと思うんだけど。
書き込みと表示を分けるとか。
0669nobodyさん
03/03/13 21:49ID:0oN+bQDd0670nobodyさん
03/03/13 21:57ID:???一画面に収まらない関数を作った場合は再検討する。
0671nobodyさん
03/03/13 22:26ID:???これについては、C-BOARDは強烈。画面をまたぐifのブロック。
0672nobodyさん
03/03/13 23:58ID:???1ファイルは大体20kb以内。500行ぐらいが己の限界です。
2000行なんて書いてたら、思いついた所を探す時には、泣いちゃうよ〜。
0673nobodyさん
03/03/14 00:05ID:???>これについては、C-BOARDは強烈。画面をまたぐifのブロック。
あなたが挙げているインデントの増加という面ではこれはむしろその抑止に働いていると思う。
kbだから大体2KBってとこか。平均10文字で200行。微妙かも。
0674nobodyさん
03/03/14 00:14ID:???0675nobodyさん
03/03/14 15:39ID:d7q/oEUSちゃんとコメントつけると、私は数十行などすぐ逝ってしまいます。
0678nobodyさん
03/03/14 17:06ID:???0679nobodyさん
03/03/14 17:07ID:???0680nobodyさん
03/03/14 17:15ID:???変数などの命名がヘタなんだろう。
0681657
03/03/14 17:29ID:Qg58BTXTちなみに私がつくったんじゃないっす。そこまで技術力は(以下略)
>>663,665
あ、なあんだ・・・そういうことだったのか。
なんとなく、変数があるとそれを記憶するのにメモリを使う=重い
なんてこと思ってた・・・。
コメントは極力ないほうがいいのか、っていうのも、Perlが「上から」
見ていく言語だから、飛ばすものは無いほうが、なんてことを考えてた・・。
#行が増えると検索に時間がかかる、のと同じレベルで考えてました。
そっか。これで安心してコード書けそう。
>>675
私はせいぜい設定項目にコメントつけて、サブルーチンに
これは何をするヤツって書くぐらい。
シンプルな掲示板なら数十行まではいかない。
配布するつもりないから使用条件とか書かなくていいし。
0682nobodyさん
03/03/14 18:02ID:???まだ勘違いしているようだが。
重いのとメモリ食うのははまた別。
0683nobodyさん
03/03/14 20:29ID:i5QyaZbU以下のようなイメージで「ソース」をクリックすると、ページの
ソースが見えるようにしたいのですが、このままですと
当然CGIそのものが実行されてしまいます。
print '<a href="http://11.11.111.111/cgi-bin/hogehoge">ソース</a>';
教えていただけませんか。
0686どーでもいい話だけど
03/03/14 20:45ID:???なんなのIEは。
0687683
03/03/14 20:57ID:???そうなんです。拡張子を.txtにしてもなぜかcgiが実行されてしまい
ます。ただし別ディレクトリに保存したら正しくソースが表示
されますが...できれば*.txtのファイルは別途作成せずに
やりたいです。
0688nobodyさん
03/03/14 21:15ID:???cgi-binの中に画像ファイルを置いても表示されないことがあるのはそのタイプ。
apacheならScriptAliasってやつだね。
で問題のソースの表示だけど、
別ディレクトリにtxtで置くか、ファイルの中身だけを表示するCGIを別に作成する。
後者は下手なプログラムだと知らない人に遊ばれちゃうので注意が必要。
0689nobodyさん
03/03/14 21:46ID:???0690683
03/03/14 21:53ID:0q8cRWlrありました。別ディレクトリに.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);
↑これじゃあだめなんでしょうか?
だめな理由とかあれば教えていただけないでしょうか?
0694nobodyさん
03/03/15 02:59ID:???ケントのは読み込んでからデータを追加してファイル丸ごと上書きだろ。
別に追加でも構わないけど、下のじゃロックもかけてないからダメだ。
0695nobodyさん
03/03/15 03:08ID:???追加でもかまわないんですね。
どうもありがとうございました。
あと、ロックですが、
前後に&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説明不足ですみません。
お名前.comのような、.com等のドメインが空いているか
サーチするプログラムを自前で作りたいということです。
0701nobodyさん
03/03/15 04:22ID:???見たいな事をしたいんですが、どのように書けばいいでしょうか?
0703nobodyさん
03/03/15 04:27ID:???0706nobodyさん
03/03/15 18:05ID:sA3oWGif質問です。
よく吐きだしたhtmlを直接表示させる掲示板cgiがありますけど、その吐きだした
htmlをいったんファイルとして保存して、そのhtmlを掲示板として表示させるように
するにはどうしたらいいんでしょ?
0707nobodyさん
03/03/15 19:04ID:???そのまんま。
答え出てるじゃない。
0708nobodyさん
03/03/15 19:16ID:???> 吐きだしたhtmlをいったんファイルとして保存して、
> そのhtmlを掲示板として表示させるようにするにはどうしたらいいんでしょ?
htmlファイルを作る処理を終えたら、そのhtmlファイルに飛んだらいい話かと。
Perlなら print "location: URL\n\n";
0709706
03/03/15 19:57ID:1k1hrfmMしたいことの論理が正しいことは分かりましたが(w、具体的なやり方が
分からないのでし。
>>708
>htmlファイルを作る処理を終えたら、そのhtmlファイルに飛んだらいい話かと。
>Perlなら print "location: URL\n\n";
この行はどこに挿入したらいいんでしょうかぁ? フッター作成の後?
それともcgiの最終行ですか?
0711706
03/03/15 20:10ID:1k1hrfmMすみません
>printで画面に表示する部分をファイルに出力に改造して、
これの具体的な書き方を教えてください。
それから受け手のhtmlファイルですけど、何か準備は要りますか?
0712nobodyさん
03/03/15 20:16ID:???0713nobodyさん
03/03/15 20:18ID:???自分でスクリプト書くスキルないのならKent-Webとか
CGIスクリプト配布サイトにあるの使っては?
下のが記事部分をHTMLファイルで出力してるタイプ。
http://www.kent-web.com/bbs/sunbbs.html?
0714706
03/03/15 20:20ID:1k1hrfmM本来の目的は、掲示板cgiが生成して表示した掲示板のhtmlでは検索エンジンが
拾って来れないようなので、それを拾ってこれるようにするためです。
0716706
03/03/15 20:27ID:1k1hrfmMいや、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:???ロボット避けのMETAタグとかの勉強をした方が早いと思う。
0719nobodyさん
03/03/15 22:28ID:5hlN9xGBどうもありがとうございます。
おかげさまで前進することができました。
0720706
03/03/15 23:44ID:1k1hrfmMうがー
>print "文字"; てのがあるはずだが、その部分を
>open(FH,">$htmlfile"); print FH "文字"; close(FH) て感じにする。
毎行こうするわけですか。かなりめんどい・・・
当分、諦めるかな・・・ 気が向いたら>>713も検討してみます。
>>718
ロボット避けのMETAタグは使用していないでし。
0721nobodyさん
03/03/16 00:22ID:???0722nobodyさん
03/03/16 00:25ID:???select FH;
0723706
03/03/16 01:04ID:???単にフレームのhtmlファイルをこしらえて、そこにcgiを流し込んだの
です。htmlファイルにはキーワードをしっかりと仕込みました、はい。
いろいろとお教えいただきありがとうございました。
0724nobodyさん
03/03/16 02:01ID:0/UJ/9KJ+-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:???0727nobodyさん
03/03/16 02:13ID:???ちなみに>1はちゃんと読んだか?
0728nobodyさん
03/03/16 05:44ID:zuyh3uNEこんにちは!!!!!!!!!!!!!!! だとか
あいうえおあいうえおあいうえおあいうえおあいうえおあいうえおあいうえお だとか。
0731nobodyさん
03/03/16 11:12ID:???<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ありがとです。やっぱそうなっちゃうかな。
んで板の注意ありがと。
やっちまいました。逝ってきます(T-T)
0734731
03/03/16 13:15ID:???0735nobodyさん
03/03/16 13:18ID:0oFKfJrdhttp://homepage3.nifty.com/digikei/sample/sample.html
0736nobodyさん
03/03/16 14:33ID:vu3Qqexlif ($testが「TEST>>」から始まっていれば) {
print "$testから「TEST>>」を抜いたもの";
}
ということをしたいんですが、正規表現がよくわからず、
思ったように動いてくれません。
どのように書けばよいのでしょうか?
0737nobodyさん
03/03/16 14:58ID:???print $1;
}
0740nobodyさん
03/03/16 15:53ID:???&&gt;ってことです・・・
0741nobodyさん
03/03/16 16:00ID:F4DlRSun教えていただけないですか?
0743nobodyさん
03/03/16 16:27ID:???できるけど、お前には無理だからやめとけ。
そんな漠然とした質問じゃ、掲示板のログの最新時間を
書き出せとしか言いようがない。
0745nobodyさん
03/03/16 17:10ID:zuyh3uNEあほ が含まれてるだとか、判断したいんです。
0746nobodyさん
03/03/16 17:11ID:???0747nobodyさん
03/03/16 17:12ID:???0748nobodyさん
03/03/16 17:22ID:zuyh3uNE0749nobodyさん
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:???0753nobodyさん
03/03/17 02:12ID:???0754nobodyさん
03/03/17 05:50ID:???http://qb.2ch.net/test/read.cgi/accuse/1047840578/l50
誰か詳しい方、分かりますでしょうか?
0755nobodyさん
03/03/17 12:28ID:DmD+ibnT誰かどこにあるか知らない?
どこかのスレの関連スレで見かけたんだけどどこだかわかんない。スレタイを
覚えてないもんで・・。
0757755
03/03/17 12:57ID:???あちゃー。検索しても出ないワケだね。
Thanx。
0759nobodyさん
03/03/17 17:30ID:6C47WdHmSELECTタグのMULITIPLEで選択したやつを、一定件数表示させ、
前頁、次頁で送るのがうまくいきません。
ちなみに
a href=\"$script?mode=serch&page=next&SELECTDATA=$SELECT"
を、次頁に貼り付けてます。
ページ送りをはずすと問題ないんですが?
どうも、SELECTDATAの区切りの判断に原因があるみたいとは思うんですが、
そこから先が(?_?)です。
おだづげを。
0760nobodyさん
03/03/17 17:59ID:???そもそも言わんとしてることがさっぱりわからん。
> うまくいきません。
どう、うまくいかないのさ?
> ページ送りをはずすと問題ないんですが?
はずしたら、「前頁、次頁で送る」という用件を満たさないんじゃねーの?
0761bloom
03/03/17 18:05ID:A0XLzQcG0762nobodyさん
03/03/17 18:23ID:6C47WdHmすんません。
FROMで条件を選択させる簡易データーベースなんですが、
単数選択だと問題なく表示されます。前頁、次頁の送りも問題ありません。
ところが、複数選択すると1件も表示されなくなります。
>はずしたら、「前頁、次頁で送る」という用件を満たさないんじゃねーの?
そのとおりです。選択自体は問題ないといいたかったので。
0763nobodyさん
03/03/17 18:31ID:???0764nobodyさん
03/03/17 18:31ID:???$SELECT にどんな文字列になってるのかも示さずに
>どうも、SELECTDATAの区切りの判断に原因があるみたいとは思うんですが、
>そこから先が(?_?)です。
なんて書かれても答えれないですー。
0766nobodyさん
03/03/17 18:53ID:???そんな説明で満足いく解答が返ってくると思うか普通?
それすらも判らないんだから、まず無理。
0768nobodyさん
03/03/17 19:43ID:6C47WdHmなんせ、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#------------------
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:???>なんせ、CGIはじめた馬ツ鹿なもんで・・。
お前無茶苦茶言われてる理由がわかんねぇのか?
CGI初心者は歓迎だよ。お前がコミュニケーション初心者だからだよ。
例えお前がCGIのプロだったとしてもそんな質問の仕方したら同じように叩かれる。
0772nobodyさん
03/03/17 20:10ID:YHcQyyodファイルと、その他の入力項目も同時にPOSTしており、
サーバー側で、入力のエラーチェックもやっています。
入力エラーを判断すると、エラーのHTMLを出力します。
ユーザーには、ブラウザの戻るボタンで、入力画面に戻らせようと
考えているのですが、IE6では「ページの有効期限切れ」が表示されてしまい、
入力画面に戻ることができません。
IEの仕様ということは解っているのですが、何とか回避する方法はないのでしょうか?
やはり、入力値を保存しといて、それを元に再表示するしかないんすかねぇ・・・
0773nobodyさん
03/03/17 20:27ID:???0775nobodyさん
03/03/17 20:32ID:6C47WdHm有難うございました。
0776nobodyさん
03/03/17 21:07ID:???送られてきたデータをどうやって変数に入れてるかわからないからこんな回答でがまんしる。
@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:???> #ここで、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:???0780nobodyさん
03/03/17 22:33ID:???0781nobodyさん
03/03/17 22:34ID:???Expires: ヘッダを付けるか、mod_exipres 組み込んで、いろいろといぢってみるとか?
やったこと無いのでこれ以上はマニュアル参照キボンヌ。
0782nobodyさん
03/03/17 22:38ID:???このスレの楽しみかたの一つなのですテヘテヘ。
0783nobodyさん
03/03/17 22:38ID:???わざわざ別ページにしないで、入力画面の上にでも
エラーメッセージ出せばいいじゃないの
エラー項目に印でもつけてどこがエラーか教えれば十分でしょ
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">
↑こんなんでやるみたいだって事はわかったんですが、
それ以上はわかりませんでした。
少しでもいいんで、助けていただけないでしょうか?
0788nobodyさん
03/03/18 03:37ID:???チェックボックスは複数選択できる
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:???<input type="checkbox" name="hoge_1" value="1">て感じか。
最近perl弄ってないから忘れたが、hoge[]て使えるのか?
0791nobodyさん
03/03/18 03:56ID:???hoge=1&hoge=2となる。
同じnameが複数出てくるわけ。
cgi-lib.plなどでは、これを\0区切りで分解してくれる。
0792nobodyさん
03/03/18 04:05ID:???なるほど解りました
で、最終的に全ての値を@hogeに入れたいんですが・・・
どのようにすればいいのでしょうか?
#そろそろウザイですよね?すいません
0793nobodyさん
03/03/18 04:10ID:???自分でやってもいいし、cgi-lib.pl使ってるんだったら、
>>791が言うように
>cgi-lib.plなどでは、これを\0区切りで分解してくれる
んだから、\0で区切ればいい。
0794nobodyさん
03/03/18 04:12ID:???<FORM>タグで囲んで送信先を指定とかしないと。
その送信先が受け取ってフォームデコードして
分割や置換えなど必要な処理をして代入すればいい。
0795nobodyさん
03/03/18 04:13ID:???明日調べてみます。今日はもう眠いんで
どうも有難うございました。
0797nobodyさん
03/03/18 04:14ID:???0798nobodyさん
03/03/18 04:14ID:???ってことは自分でQUERY_STRINGか標準入力をパースしてるんだよな?
だったら「hoge=1&hoge=2」とかの数字を記録すればいいんじゃねーの。
0800nobodyさん
03/03/18 04:33ID:???そもそも、>>789「値はどう入るんでしょうか?」はprintすりゃ分かるだろ?
自前でパースしてるみたいだし。それぐらいやらなきゃ質問する資格無しよ。
0801nobodyさん
03/03/18 14:04ID:???わかってますって、こっちはあんたがどういうレベルなのか
わからんのだよ。
>複数を選択することができない(しても意味ない)ですよね?
チェックボックスとラジオの区別がついていないPC初心者みたいなこと
書いてたら余計にそう思うだろ。
省略するなら全体がわかるぐらいの説明ぐらい書いてくれ。
0803nobodyさん
03/03/18 14:22ID:???どうせ何が必要で何が必要でないかの判別もできないんだからな。
それがわかってるなら最初から自己解決できるはずだ。
質問するなら最初から全ての情報を掲示せよ。
0804nobodyさん
03/03/18 14:25ID:???>>792の質問の答えはこれで十分じゃろ。むう。
use CGI;
my @hoge = CGI->new->param('hoge');
print join(',', @hoge) . "\n";
もし、まともな質問ができるなら、殆どの場合、自分で問題を解決できる。
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:???0808nobodyさん
03/03/19 03:59ID:???有難うございます。でもそれじゃあ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/(ttp)\:([\w|\:\!\#\$\%\=\&\-\^\`\\\|\@\~\[\{\]\}\;\+\*\,\.\?\/]+)/<a href=\"http\:$2\">$1\:$2<\/a>/g;
すいませんこれで解決しました。
でももっとスマートな方法あれば教えて頂けませんか?
0811nobodyさん
03/03/19 04:40ID:???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:???#!/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の指定はできるんでしょうか?
教えてください。お願いします。
0816nobodyさん
03/03/19 21:31ID:dpgy+pXrなぜ出ないのでしょう?
どういうことが考えられるかわかりますか?
0817nobodyさん
03/03/19 21:48ID:???>どういうことが考えられるかわかりますか?
あなたの頭が相当に悪いということぐらいしかわかりません。
どこのチャット(スクリプト)の話をしてるかぐらい書きなさい。
0818nobodyさん
03/03/19 22:04ID:nD9UxgHPいや、自分で作ってるヤツなんですが、
初期画面でログが出ないのってよくある落とし穴かと思って、
よくある落とし穴の答えを出してくれるかと思っちゃいました。
初期画面でログが出なくて、フォームだけ出るのってあんまり無いことなのかな?
0819nobodyさん
03/03/19 22:08ID:???↓↓↓次の方どうぞ↓↓↓
0821nobodyさん
03/03/19 22:09ID:???-- 終了 --
次
0822nobodyさん
03/03/19 22:19ID:???どうもありがとうございました。
0823nobodyさん
03/03/19 22:45ID:w/Iesnahhttp://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:???手動更新のアンテナって要するにLast-Modifiedチェッカ?
あるアクセスが前回のアクセスから一定時間たってる場合、Last-Modifiedを
再取得するようなスクリプトは組んでみたけど、サーバがLast-Modifiedを
返してくれなかったり、対象に日時を取得できるような文字列が無かったり
するケースだと、仕様的にNGだったなあ。
0826nobody
03/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:???$line[-1] =~ s/\x0d?\x0a?$//;
がないとゴミが発生するな。。
0830nobodyさん
03/03/21 00:09ID:???tr/\x0d\x0a/\r\r/;
0831826
03/03/21 00:22ID:7GAZusfYでも自分はperlやCGI言語が実はあまり分かりません…。
でもなんとか頑張ってみます。
0832nobodyさん
03/03/21 00:38ID:???じゃあ、どういう回答を期待していたのか。
0833nobodyさん
03/03/21 00:41ID:???Web製作の方から誘導されてきた模様。
0834nobodyさん
03/03/21 00:56ID:???ふむ。提示された情報はあちらと同じなのかな。
>>826 は、掲示板スクリプトの入手先 or ログファイルの中身の一部(晒すべきでない
箇所はマスクして) 等の情報は、最低でも提示しないと。
0835nobodyさん
03/03/21 02:19ID:???0836nobodyさん
03/03/21 02:58ID:???するには、何処をつつけばいいのでしょうか?
www.kent-web.com/bbs/joyful.html?
0838nobodyさん
03/03/21 21:41ID:???anHTTPdでCGIを起動している時、CGIでヘッダーを「text/plain」と
プレーンテキストとして出力しているのですが Htmlと解釈されていまします。
設定で直るのでしょうか?
0841nobodyさん
03/03/21 23:10ID:???ずっと悩んでいたんですが、ブラウザの仕様・・?だったんですね。
0843T女の竹田
03/03/22 00:13ID:???wmaの時はこれでうまく行ったんだけど。
さすがマイクロソフト!
0844T女の竹田
03/03/22 00:28ID:???「HTMLっぽく見える」
「ユーザーがテキストだと激しく主張している何か」を
HTMLとして扱うことに、こうまで執念を燃やすのだろう?
マイクロソフトに何か利益が?
0845nobodyさん
03/03/22 00:36ID:???0846nobodyさん
03/03/22 04:28ID:???0847nobodyさん
03/03/22 06:38ID:???http://pc.2ch.net/test/read.cgi/prog/1045401372/381
さすがIE!
0848nobodyさん
03/03/22 12:25ID:QDGorIu0FORMで送信し、それを処理するのは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>
これが原因でエラーなのでしょうか?
それとも単に込んでいるだけなのかわかりません......
0852nobodyさん
03/03/22 12:53ID:???0853nobodyさん
03/03/23 05:01ID:obrjhThh通常、ひとつのファイルしかアップロード/ダウンロード出来ませんが
ディレクトリを指定して、その階層化のファイル、ディレクトリをまるごと
アップロード/ダウンロードする事は出来ませんか?
0854nobodyさん
03/03/23 05:28ID:???0855nobodyさん
03/03/23 08:30ID:???0856nobodyさん
03/03/23 16:27ID:GYklYBj0クライアント側を↓こう定義して、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の定義が足りないような気がして色々調べてみましたが
よくわかりませんでした。
スレ違いなような気もしますがよろしくお願いします。
0858nobodyさん
03/03/23 17:24ID:???0859nobodyさん
03/03/23 17:38ID:???cgi-lib.pl 使うのは悪いこっちゃないが、「やりたい事」がそこまで明確ならば、
まず標準入力からどんなデータを取得できるのかをファイルに落とす、等して
確かめてみればすぐ解ることだと思われ。
0860856
03/03/23 17:41ID:???0861nobodyさん
03/03/23 19:38ID:???亀レスですが、アンテナ自体のプロセスが常駐するものだと思っていました。
調べててcronを使えばいいことを知り、さっき設定がうまくいきました。どうもです。
0862nobodyさん
03/03/23 21:52ID:???0863nobodyさん
03/03/23 23:32ID:hItEViUJ2つ以上選んだ場合にエラーが出るようにしたいんですが、
私の頭では恥ずかしながら下のが限界でした。
もうちょっとコンパクトに書くにはどうすればいいんでしょうか?
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:???選ぶと言うのがよくわからん。
それはHTMLのフォームから入力した場合をいうのか?
多分そうだろうな。
んで、言語はPerlか?
やっぱり、多分そうだろうな。
だったら、PerlではないHTMLの部分で、radioを使えばそもそも一つしか選べなくなるけど、
そういうことではないのか?
0865nobodyさん
03/03/23 23:53ID:???選ぶってのは間違いです。スマソ
テキストボックスが3つ(hoge,huga,foo)あって、
たとえば、hogeに何か書き込んであるのに
hugaにも値が入ってると、
えらーを出したいって事です。
0866nobodyさん
03/03/23 23:53ID:???0867nobodyさん
03/03/23 23:56ID:???今は別でやってます。
もしこれも一緒にできれば一緒にしたいんですが・・・
0868nobodyさん
03/03/23 23:57ID:???//hogeの処理
if($hoge ne "")
{
if(!($huga eq $baka eq ""))
エラー
}
//hugaの処理
if($huga ne "")
{
if(!($hoge eq $baka eq ""))
エラー
}
・・・
0870nobodyさん
03/03/24 01:52ID:???die("いってよし") if ( ($hoge ne "") + ($huga ne "") + ($baka ne "") ) > 2;
ってのはどうよ?
0871nobodyさん
03/03/24 01:54ID:???$count=0;
map{$count++ if $_ ne ''; } ($hoge, $hage, $foo);
if ($count != 1) {
エラー
}
って手もあるよ。
0873870
03/03/24 02:00ID:???ダタヨ。鬱だ。
0874nobodyさん
03/03/24 02:15ID:???それは、'0'のことを考えるとあまり良くないような。
それに、>1 じゃなくて、>=1と書きたかったのでは?
結局、
die unless ($a ne '') + ($b ne '') + ($c ne '') != 1;
でどう?
0875nobodyさん
03/03/24 02:58ID:???0876nobodyさん
03/03/24 05:49ID:???0877nobodyさん
03/03/24 06:02ID:???「ゲートウェイ,もしくはプロキシとして動作させているサーバが,上流から無効なレスポンスを受け取ったことを示す」
って出てきたけど素人の俺様には意味が分かりませんでした。
0878nobodyさん
03/03/24 12:29ID:???$it = $hoge || $huga || $foo;
if ($hoge.$huga.$foo ne $it) { # 連結して比較
&error("一つだけにして!!");
}
じゃだめか?
0879nobodyさん
03/03/24 18:22ID:JKyHEx6GCGI で HTML のデータを標準出力するようなものを
実行したときには,その HTML が WWW ブラウザに
表示されるのでしょうか?
0881879
03/03/24 19:10ID:JKyHEx6G標準出力に HTML をちゃんとはき出してるのを確認したんですが,
WWW ブラウザからその CGI を実行すると,
何も表示されないんです.
どうしてなんでしょうか?
0882nobodyさん
03/03/24 19:32ID:???0886nobodyさん
03/03/24 20:41ID:???そのままDLすることはできないんですの?
0887nobodyさん
03/03/24 20:49ID:???>CGIをダウンロードしようとすると
意味不明。まあ言わんとしてることは解るんだけど。
その CGI とやらは配布されているものなのか?
だとしたら配布元に聞くのが最速解。
0888nobodyさん
03/03/24 20:57ID:???フリーで配布されてる掲示板が上手く改造されてたんでちょっとあたしも欲しいな〜と
フォルダ覗けたんでcgiを頂きたいな〜と思ったんですの
でもhtmlに…
無知で文才もなくてすまそ。
0889nobodyさん
03/03/24 21:07ID:???0890nobodyさん
03/03/24 21:33ID:fQ3PutSJこの方法で無断ダウンロードしようとすると、不正アクセス禁止法でタイーホされるかも(ウソデス)
本人にメールを送って頼み込むのがいい。ただし、必ずくれるとは限らないので注意。
08914
03/03/24 21:37ID:muzproYQディレクトリを予想してターゲットのファイルをopenすればうまい
具合にタイーホされる。
0893nobodyさん
03/03/24 21:48ID:???http://book.2ch.net/test/read.cgi/bizplus/1048507777/
0894nobodyさん
03/03/24 21:48ID:???502エラーが出ました。検索してみると
「ゲートウェイ,もしくはプロキシとして動作させているサーバが,上流から無効なレスポンスを受け取ったことを示す」
と、出てきましたが意味が分かりません。
このサーバーは俺に何をしろと言ってるのでしょうか?
502になる時と正常に動く事はマチマチです。
0895nobodyさん
03/03/24 21:55ID:???そのサーバは自鯖?レン鯖?
動かしてるプログラムは自作?拾い物?
サーバのログ等は見られるの?
この程度の情報も出さずに回答がもらえると思っちょるのかバカチン。
0896879
03/03/24 23:01ID:JKyHEx6G>>885
確認はコマンドラインからしました.
ヘッダをつけても同じことでした.
なんででしょう?
0898879
03/03/24 23:15ID:JKyHEx6G質問に関係ない部分をどう廃除していいかわからなくて…
08994
03/03/24 23:25ID:muzproYQ先頭10行でいい
09004
03/03/24 23:27ID:muzproYQ例えばREQUEST_METHODがGETの場合だけHTMLを出力するような
プログラムを書いたとしても、コマンドラインからでは何もでない。
その逆もある。
09014
03/03/24 23:28ID:muzproYQ先頭10行ってのはコマンドラインから出力した10行ね
キリ番ゲト
0902nobodyさん
03/03/24 23:41ID:Q3dLkmth↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
http://www.pink-angel.jp/betu/linkvp2/linkvp.html
0903879
03/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>
(以下略)
09054
03/03/24 23:51ID:muzproYQそれは何も条件なしで出力しているのか?
ついでに聞くがCGIは初めてです?
0906nobodyさん
03/03/24 23:52ID:???プログラム自体は合ってそうだから、
あとは>>895(と、パーミッション)に答えたら解決だな。
つっか>>895を無視ってんじゃねーよボケ。本当に質問に答えて欲しいのか?
09074
03/03/24 23:53ID:muzproYQ0908nobodyさん
03/03/24 23:54ID:???そのCGIってどこに置いて実行したの?
コマンドラインって、サーバに置いてtelnetかSSHで?
あまり関係ないけど、言語は何?
0909nobodyさん
03/03/25 00:00ID:???こういう時はPerlと相場が決まっている(よなぁ)
あと、>>884やれよ>>>879
それで解決だろ。
telnet ホスト 80
GET /hogehgoe.cgi HTTP/1.0
0910879
03/03/25 01:26ID:1VNT2YvWWindows98 でローカルで httpd というサーバを動かしてやってます.
CGI の言語は perl です.
で,この httpd を通して,WWW ブラウザ(IE)でみると,
何も表示しないんです.
なんででしょう?
0911nobodyさん
03/03/25 01:29ID:???それともhttpdという名前のHTTPサーバがあるのかな(確かにUNIX用Apacheの実行ファイルの名前はhttpdだ)
0913879
03/03/25 01:35ID:1VNT2YvWあるサーバプログラムのことです.
0916nobodyさん
03/03/25 01:49ID:???09174
03/03/25 01:51ID:4EHffvQlprint "Content-Type: text/html\x0d\x0a\x0d\x0a";
と書くな。
0919nobodyさん
03/03/25 02:15ID:???0921nobodyさん
03/03/25 02:28ID:???0923nobodyさん
03/03/25 02:44ID:???0926nobodyさん
03/03/25 08:28ID:???出す気が無いなら自分で解決してください。
次の質問どぞー。
0927nobodyさん
03/03/25 14:29ID:XDBil0k60929894
03/03/25 15:56ID:???レンタル鯖。
プログラムは自作。
全く同じ動作でも502が出たり正常に動いたりします。
正確に言えば、ちょくちょく502が発生すると言った感じです。
すぐに直ります。
0930nobodyさん
03/03/25 16:08ID:???その自作プログラムはどういう動作をするの?晒せないの?
ローカルでは問題無く動くの?
他のCGIプログラムでも同様の現象なの?
レンタル先に問い合わせてみたの?レンタル先は晒せないの?
ローカル ― サーバ間にPROXYは存在するの?
0932nobodyさん
03/03/25 16:25ID:???ttp://number.goo.ne.jp/index.html
ここの「スポーツ投票」のように投票項目を選択し投票すると、結果が別
ページで表示されるようにするにはどうすればよいのでしょうか?
投票CGIは用意しているのですが、別ページの投票項目どのようにして
反映させているのか分かりません。
どなたか教えてください。お願いします。
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』などと書き入れて、エンターを
押すと、リンクするタグが表示されるようにしたかったのですが、
白紙で全く分かりません。ご伝授、お願いします。(.. )ペコリ
0937nobodyさん
03/03/25 18:11ID:???CGIスクリプトが、FORMから入力された値を「どのようにして受け取るか」
という点を理解されていないようです。
ということで、学習すべき次の課題が見つかったじゃないですか。
0938nobodyさん
03/03/25 18:13ID:???こんなページが参考になると思いますよ
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
0940nobodyさん
03/03/25 18:16ID:???ちなみに、ホントに白紙だった?
> print "<A HREF="http://$2ch">$2ch</A>\n";
まるでエスケープしてないここら辺がヒジョーに怪しいんですが。(w
CGI よりも言語のお勉強の方が先かもよ。
0941nobodyさん
03/03/25 18:18ID:???0942nobodyさん
03/03/25 18:20ID:???perl って書いてあるやん…。
わざわざ Content-Type 入ってるやん…。
<? も無く print 使ってるやん…。
0943nobodyさん
03/03/25 18:24ID:???変数に変換した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:???足りないのはCGIの知識じゃなくてHTTPの知識じゃない?
config.txt の中身は何?HTTPでおしゃべりするための台本かな…
09464
03/03/25 18:54ID:4EHffvQl正解だと思われる。
>>943
送りたいデータの最大量(sdim hi,32768,1)から見てPOSTで送る必要がある。
POST /hoge/hoge.cgi HTTP/1.1
Host: hoge.com
Content-Length: 送るデータ量
送るデータ
です。
ただ、バイナリデータ(日本語含む)ならきちんとEncodeしろ。
余談だが俺はHSPでWEBサーバ書いたことあるぞ。遊び程度だが・・
09474
03/03/25 19:01ID:4EHffvQlそれだけならPOSTでなくて、GETで十分と思われる。
$ENV{'QUERY_STRING'}を=で分けた後にDecodeしろ。
>>940さんが言うようにエスケープもしろ。"""は"\""だ。
むしろヒアドキュメントで書け。言語勉強してこい。
0948nobodyさん
03/03/25 19:05ID:???>むしろヒアドキュメントで書け。
鼻くそをほじってしまった。命令形で書くようなことでも無かろう。
むしろ、ソースコードからさっさとhtmlを追い出す努力をすべきだと思うよ。
0949お初
03/03/25 19:46ID:???しかし、リンク時、フォームに1chと入力すると、
リンク先、リンクの文字が$2ch=1chになります
0950nobodyさん
03/03/25 19:54ID:???悪いことは言わない。
こんなところで聞かずに本買って一人で勉強しなさい。ね?
馬鹿をさらすのは必ずしも悪いことじゃないけど、
自分で努力しないのは一番嫌われることだよ?
09514
03/03/25 21:03ID:4EHffvQlおっしゃるとおりです。
以前初心者にスタイルのことをどうこういうなと言われたのを
忘れていました。>>949すみません。
実はなんとなくキャラ変えています。偉そうなイメージで・・ゲレ
>>950さんの言うとおり言語からやり直したほうがいい。
一応書くと、
$2ch = (split(/=/, $ENV{'QUERY_STRING'}))[1];
$2ch =~ s/%([a-fA-F\d][a-fA-F\d])/pack('H2', $1)/ge;
でいいはずだ。
# Perlの変数って数字から始まってよかった?
0954nobodyさん
03/03/25 21:11ID:???通常の変数でも可能ってこったな。
0956nobodyさん
03/03/26 04:10ID:???そんなことできるんでしょうか。
0957nobodyさん
03/03/26 04:19ID:S5IZshnU↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
http://www.pink-angel.jp/betu/linkvp2/linkvp.html
0958nobodyさん
03/03/26 07:50ID:???破壊にも色々あるけど、root 権限で動くとかじゃなければ無理だろ。
お子ちゃまの暴走に対する抑止効果は期待できるかもね。
良質の客が去っていくという逆の効果も発生するだろうが。
0959お初
03/03/26 10:16ID:???教えて頂いた応用で、
$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:???$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:???まずは変数名を変えれ。
($2ch,$1ch)=split(/&/,$data);
を、
($host2,$host1)=split(/&/,$data);
などに。
してから、
print qq(http://$host2.$host1.net);
と。
0962nobodyさん
03/03/26 10:26ID:???ちょっと待ってくれ。
自分で書いたソース、各行でどんな処理をしているのかを理解しているのか?
そもそも
1. 動きゃいいのか?
2. Perl(じゃなくてもいいけど)のプログラミングスキルを身に付けたいのか?
# ところで朝7時から開いてる本屋があるのか?
0963bloom
03/03/26 10:30ID:C4vNyXIc09664
03/03/26 13:40ID:qOessVDe激しく同意
そもそも
($ch2,$ch1)=split(/&/,$ENV{'QUERY_STRING'});
$ch2 = (split(/=/, $ch2))[1];
としないと。しかもどっちが2chで、どっちが1chか怪しい。
GETでどのような形式のデータが送られてくるか$ENV{'QUERY_STRING'}を
そのままprintして確かめてください。
09674
03/03/26 13:46ID:qOessVDeforeach (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:???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:???ここをこうするとこうなって・・・
てなことはどうでもいいんだな多分。
せっかく本買ったのにもう見ることも無いんだろうな
で、また何かわからないことがあると、
とりあえずこのスレにきて「お初」って書いて質問するんだろうな
0972nobodyさん
03/03/26 21:04ID:???このスレは質問者のためだけのスレではないのです。
回答者も、質問者から如何にして質問の要点を引き出すか、を楽しめるスレなのです。
なんちて。
0973nobodyさん
03/03/26 21:05ID:???0974nobodyさん
03/03/26 21:09ID:WT1OtOARいいのですか?
0979nobodyさん
03/03/26 21:17ID:???09834
03/03/26 21:23ID:qOessVDemy $buf;
sysread(STDIN, $buf, $ENV{'CONTENT_LENGHT'});
print $buf;
質問、sysreadとreadの使いどころは?
自分はSocket関連だとsysread使いますが、ファイルを読むときは
readです。
09844
03/03/26 21:24ID:qOessVDe0985nobodyさん
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です。
09864
03/03/26 21:25ID:qOessVDeCGIと関係なかったかも。
スマソ
0987950
03/03/26 22:56ID:???http://pc2.2ch.net/test/read.cgi/php/1048686475/l50
0988nobodyさん
03/03/27 00:16ID:OfSB210sforeach (0 .. 10) {
if (-e "$_.dat") {
open(IN,"$_.dat") || &error("ファイルオープンエラー");
close(IN);
}
}
↑こんなことする意味ってありますか?(ifの部分)
それだったらエラーを返さずに
foreach (0 .. 10) {
open(IN,"$_.dat");
close(IN);
}
これだけでいくのと一緒・・・っていうかこうするべきなんでしょうか?
0990nobodyさん
03/03/27 00:20ID:???意味あるだろ? エラートラップをこまめにする癖をつけるのが悪いとは思わないし。
.datファイルが破損することだって絶対にないとはいえないし。
0991nobodyさん
03/03/27 00:23ID:???openが存在しないっていう理由でのみ失敗するなら、if (-e ...は無意味なんだけど。
0992nobodyさん
03/03/27 00:28ID:???ってことをしてるつもりなんですが、
やっぱり下のじゃ問題ありっぽいですねサンクスです
0993nobodyさん
03/03/27 00:41ID:???0994nobodyさん
03/03/27 00:57ID:???0995nobodyさん
03/03/27 01:44ID:???0996nobodyさん
03/03/27 01:45ID:???0997nobodyさん
03/03/27 01:45ID:???0998nobodyさん
03/03/27 02:04ID:???0999nobodyさん
03/03/27 02:06ID:???1000nobodyさん
03/03/27 02:07ID:KPZ2y82F死ね。
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。