CGIだけど、なんか質問ある?Part 5
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
01/12/26 10:51ID:???Part 3 http://pc.2ch.net/test/read.cgi/php/988727833/l50
Part 4 http://pc.2ch.net/test/read.cgi/php/1000804655/l50
その他参考になるスレッドを >>2 に纏めたので、十分に調べた上で質問して下さい。
0734名無しさん@お腹いっぱい。
02/02/19 20:42ID:AWkZQcnE文字列を保存ファイルから読み出して、1文字ずつに区切りたいのです。split(//,$aiueo);
半角文字(1とかa)は成功するのですが、全角文字(1とかA)が保存されているとその部分だけ文字化けしてしまいます。
どのようにすればうまくいくのでしょうか??。
0735名無しさん@お腹いっぱい。
02/02/19 21:15ID:???だって全角文字って2〜3バイトだし(EUC,SJIS)。
JPerl使うって言ったら怒られるだろうなぁ・・・。
0736名無しさん@お腹いっぱい。
02/02/20 00:42ID:???0737名無しさん@お腹いっぱい。
02/02/20 01:11ID:WIqY+mg7Perlメモにそのままのがあったよ。
www.din.or.jp/~ohzaki/perl.htm#JP_Split
それともUTF-8使ってみるとか。
#utf8プラグマを使ってみるてすと。
#このソースの文字コードをUTF-8にすること。
use strict;
use 5.6.0;
use utf8;
use Data::Dumper;
my $str = "あいうえおabcde";
my @strs = split "" , $str;
print Dumper @strs;
結果
$VAR1 = 'あ';
$VAR2 = 'い';
$VAR3 = 'う';
$VAR4 = 'え';
$VAR5 = 'お';
$VAR6 = 'a';
$VAR7 = 'b';
$VAR8 = 'c';
$VAR9 = 'd';
$VAR10 = 'e';
とりあえずは成功。でもほかのファイルから文字列を取り出して処理する場合はどうなるか・・・。
0738名無しさん@お腹いっぱい。
02/02/20 02:34ID:???環境は? 文字コードは? それがないことには答えようがないYO!
0739名無しさん@お腹いっぱい。
02/02/20 02:44ID:???投票ボタンを押すとカウントが1増えると言う感じの
CGIを作るにはどう記載をするにはどうすればよいのでしょうか?
1番簡単な記載の仕方を教えていただきたいです。
0740名無しさん@お腹いっぱい。
02/02/20 07:59ID:???#! /usr/local/bin/perl
open(DATA,"dat");
$count = <DATA>;
close(DATA);
open(DATA,">dat");
print DATA $count++;
close(DATA);
print "CONTENT-TYPE:text/plain\r\n\r\n$count";
0741名無しさん@お腹いっぱい。
02/02/20 10:26ID:v5xIpXefPerl5です。
jcode.plを使って、EUCに統一しています。
ご迷惑をおかけしてすみません。(初心者)
0742739
02/02/20 13:25ID:BU/Y+TfU740様ご教授ありがとうございます。
宜しければ
フォームの中身が
name=普通
name=簡単
ログファイルの中身が
普通 1
簡単 2
のような形になるような記載の仕方を教えてください。
0743739
02/02/20 13:28ID:BU/Y+TfUついでに投票率もわかるようにして頂けると
助かります。
0744名無しさん@お腹いっぱい。
02/02/20 15:06ID:???投票率ってなんだよ。対象分母がわからないのに、なんでそんなもんがわかるんだよ。
と、おきまりの煽り文句入れて於いて。
得票率は、全体の件数と選択項目あたりの票とのかねあいだから、
表示ルーチンで逐次計算する必要があるね。
データを集計するルーチンで逐次カウントするか、集計時にあらかじめ、分子と分母
作っておくか選択するわけだね。
0745名無しさん@お腹いっぱい。
02/02/20 15:10ID:???その質問は、Web制作板ずら。
最初から、
<input type=radio name=name value=1>普通<BR>
<input type=radio name=name value=2>簡単<BR>
にしたら?
0746こっちへ逝ってよし
02/02/20 15:12ID:q+lY2EG2↑と↓どっちのサイトがいい??
http://px.a8.net/svt/ejp?a8mat=C17UJ+8D9CVM+A0+1NJRXD
0747名無しさん@お腹いっぱい。
02/02/20 15:18ID:???ブラクラ
0748739
02/02/20 15:29ID:+agHEvTMほんとに単発質問申し訳ございません。
書き込んだ後に気がつきまして対処ができなくどうしようか困っていました。
#! /usr/local/bin/perl
open(DATA,"dat");
$count
0749739
02/02/20 15:31ID:+agHEvTMのやり方をコピペでためしたらDL状況になってしまいました。
どうすれば動作が可能になるのでしょうか。。。
0750名無しさん@お腹いっぱい。
02/02/20 15:35ID:???シェルから、which perlとして、Perlの在処を調べる。
また、cgiが実行可能かどうかも調べる。
さらに、httpd.confで、perlをexecにしなければいけないかどうかも考える。
大変だね。
0751739
02/02/20 15:42ID:+agHEvTMレスありがとうございます。
フォームにしてみたらできました。
しかし、カウントされません。
0752名無しさん@お腹いっぱい。
02/02/20 16:22ID:???0753名無しさん@お腹いっぱい。
02/02/20 16:30ID:???ソレダ!(◕ฺ∀◕ฺ)
0754739
02/02/20 16:53ID:???0755名無しさん@お腹いっぱい。
02/02/20 21:36ID:mSabJ9Dmttp://www.din.or.jp/~himura/at-works/access/access.html
@niftyで動かしてる人います?replist.cgi?checkでは全部OKと表示される
んですが、パスワード打って解析結果表示させようとすると500エラーが・・。
main.htmlをmain.plにしたり、homepageディレクトリに置いてみたりと
色々やってみましたが、何度やっても「500 内部サーバーエラー」っス(;´Д`)
パーミッションや転送モードを何度も確認してみましたがダメでした・・。
ちなみにkentさんの「Access Repport」はちゃんと動くので、この改造版の
main.htmlが原因なんでしょうか?サポート掲示板閉鎖してるしもうお手上げッス・・
どなたかご教授ください・・。
0756名無しさん@お腹いっぱい。
02/02/20 21:41ID:???それはきっとあなたの設定ミス。
そうでなければ、バグがあるスクリプトを配布している。
0757名無しさん@お腹いっぱい。
02/02/20 22:17ID:ekU1U/e9漢字コードは何がいいんですか?
携帯会社によって違うんですか?
0758名無しさん@お腹いっぱい。
02/02/20 22:17ID:???SJIS。
0759名無しさん@お腹いっぱい。
02/02/20 22:19ID:ekU1U/e9解説サイトご存知でしたら、よろしければお教えください。
0760名無しさん@お腹いっぱい。
02/02/20 22:20ID:???検索。
0761755
02/02/20 22:25ID:m8g7w+mgありがとうございます。マジすか・・もう一度確認してみます。
サーバー別の解説みたいなのに@niftyもあるんですが・・niftyじゃ
無理なのかなぁ・・
0762名無しさん@お腹いっぱい。
02/02/20 23:21ID:ekU1U/e9掲示板できました。ありがとうございます。
0763名無しさん@お腹いっぱい。
02/02/21 01:09ID:+5zgc0Mzさらにアクセス解析をつけてます
普段リファラで引っかかるアドレスは、当然転送URLのアドレスなのですが
たまにリンク元のアドレス(もちろん転送で貼ってもらってる)が引っかかる場合があるのです
もし原因が分かる方がいらっしゃいましたら、
教えていただけないでしょうか…
よろしくお願いします。
0764763
02/02/21 01:11ID:+5zgc0MzそれからTacky's Roomさんの物で同じ結果が出ましたです
0765名無しさん@お腹いっぱい。
02/02/21 01:13ID:???IEはたまにrefferを取りこぼしたりすることがある。
0766763
02/02/21 01:30ID:+5zgc0Mzさっそくありがとうございます。
でも今見てきたところ、そういう風に引っかかってるのが
Netscape 4.〜の方のようなのです
6の場合は普通に転送アドレスで来るようなのですが…
0767あぼーん
02/02/21 01:34ID:F4KoQdcT送信元IPはわかるんですけど、送信元のメールアドレスもわかるっていうCGIを無料でレンタルさしてくれるサイトがありましたら教えてもらえませんでしょうか。
0768名無しさん@お腹いっぱい。
02/02/21 01:47ID:???冷静に考えろ?
お前のメールフォームにはメールアドレス書く欄があるか?
書いてもいないものをどうやって送信するって言うんだい?
0769あぼーん
02/02/21 01:51ID:F4KoQdcTたとえばメールソフトを間接的に使用するっていうCGIとか
0770名無しさん@お腹いっぱい。
02/02/21 01:53ID:???0771名無しさん@お腹いっぱい。
02/02/21 02:01ID:???サーバーサイドで動いてるのにクライアントのメールソフトを制御できるの?
セキュリティホールってやつじゃあ。。。
0772名無しさん@お腹いっぱい。
02/02/21 02:03ID:???メーラーを使う?それなら簡単。
<form action="mailto:cgiChu@uzaishi.ne.jp">
</form>
0773名無しさん@お腹いっぱい。
02/02/21 02:57ID:caqYgqkmすくなくともサーバ側でクライアントの環境をいじりたいとか
思う人って他人のプライバシとか全然関係なしって感じが伝わっ
てくるよ。
そこまでe-mailを確認したいのなら、パスワードで入れないように
して、希望者にメールでパスワードをいれるように全体を変更したら
どうよ。
0774ていうか ◆16H8/cmo
02/02/21 04:57ID:IB+Fv5b6一行ごとにやるのはだるいから、なんか上手い方法ないかな。
教えて〜!!
0775ていうか ◆16H8/cmo
02/02/21 04:57ID:IB+Fv5b60776名無しさん@お腹いっぱい。
02/02/21 04:59ID:???0777名無しさん@お腹いっぱい。
02/02/21 05:00ID:???0778ていうか ◆16H8/cmo
02/02/21 05:03ID:IB+Fv5b6でもナイス突っ込み(w
0779名無しさん@お腹いっぱい。
02/02/21 06:11ID:520+fotT↑こういうのを作りたいのですが。
データベースの数字と画像の矢印がリンクしていて,「次の時間へ」を押すと、画面が切り替わる。
どんなプログラム言語やソフトを使えば、できますか?
0780名無しさん@お腹いっぱい。
02/02/21 09:00ID:???よく考えて好きなセパレータ使え。
0781名無しさん@お腹いっぱい。
02/02/21 09:01ID:???まずはHTMLの勉強だ。クリッカブルマップ。サーバサイドとクライアントサイドがあるからどちらもな。
0782名無しさん@お腹いっぱい。
02/02/21 09:05ID:???自分でサーバー用意するならなんでもいいけど、
数あるサーバーで動くのはperlだろうな。
ActivePerlと、WinならAnHttpd、あるいは適当なhttpd、
あと、とほほのperl入門を読め。
0783名無しさん@お腹いっぱい。
02/02/21 09:15ID:???誤爆ですか?
0784名無しさん@お腹いっぱい。
02/02/21 14:01ID:???デリミタ?
0785名無しさん@お腹いっぱい。
02/02/21 22:00ID:???ローカルのanHTTPdでは、IEでもNNでも正常に動くのですが、
トクトクサーバーにアップすると、NNでは「モジュール違反です」という
表示がでて、オチてしまいます。
IEでは正常です。
どんな原因が考えられますでしょうか。
IEでは全然平気なのですが。
ローカルで動かしてるかぎりはそうはならないのですが。
0786785
02/02/21 22:01ID:???0787名無しさん@お腹いっぱい。
02/02/21 22:02ID:???広告込みのHTMLが変過ぎる。とか。
0788785
02/02/21 22:11ID:P/vFkV3PPerlのせいではなかったです。
言われてぴぴんときてjavascript Offにしてみたら動いた…。
ローカルでは動くんだから広告が悪いのかなぁ。
どうもすいませんでした。Javascriptと判ればスレ違いです。
ありがとう。
0789名無しさん@お腹いっぱい。
02/02/21 23:22ID:uKcyJ5aSログファイルをバイナリデータにしたので処理が速くなった
というような事を書いてあったんですが、
実際にテキストよりもバイナリの方が処理が速いんでしょうか。
0790名無しさん@お腹いっぱい。
02/02/21 23:27ID:???たとえば3という値を保存するとする。
テキストで3を保存すると6bitかかる。
バイナリで3を保存すると2bitですむ。
(これを言うとintは32bitじゃあとかお叱りを受けそうだけど)
後、コンピュータはバイナリでしか数値計算ができないので、数字のテキスト->バイナリ変換作業が必要になる(Perlは裏でやってくれる)。
0791名無しさん@お腹いっぱい。
02/02/21 23:43ID:???ttp://dream.lib.net/room/cgi/e_analize.html
この二つはJavaScript有効になってないと解析してくれないんですか?
JavaScriptオフでもログ取ってくれるやつってないんでしょうか?
ちなみにSSIは使えないサーバなんですが・・無理ですか?
kentさんのやつはオフでもリンク元以外は取ってくれるみたいだけど・・
上の二つもそうですか?
Strictなんで<noscript><img〜ともできないっス・・。
0792名無しさん@お腹いっぱい。
02/02/21 23:47ID:???ログは取れる。reffererが取れないだけ。
Javascriptで生成している部分をHTMLに直接書けばいい。
その代わりreddererはあきらめる。
0793名無しさん@お腹いっぱい。
02/02/21 23:52ID:???そういうこととは別に、ログをバイナリハッシュに変えれば、テキストのログよりも
かなり高速化する。
dbm使うっていうのが近似値だけど。
0794名無しさん@お腹いっぱい。
02/02/22 00:00ID:???質問者でも回答者でもないんだけど、
ログをバイナリハッシュに変えるってどういうこと?
ハッシュのキーをバイナリにして短くするってことなの?
でもハッシュっていうぐらいだから長いキーでも短くなってんだよね、内部的には。
おもしろそうなのでもっと教えて。
0795名無しさん@お腹いっぱい。
02/02/22 00:00ID:???>でもハッシュっていうぐらいだから長いキーでも短くなってんだよね、内部的には。
長くなるならまだわかるが。
0796名無しさん@お腹いっぱい。
02/02/22 00:08ID:???最も簡単に説明するとしたら、テキストのログっていうのは、改行ごとに区切られて
@LINEな配列にシリアルに読み込まれ、並んでいるわけ。
対して、バイナリハッシュは、保存されたデータ構造が%HUSHな状態(連想配列)
にあるので、tieまたはdbmopenで開いたときに、すでに%HUSHな状態として存在できる。
それはちょうど、アナログレコードとCDのような違い。
@LINEから任意な部分を取り出すために必要な労力と、
%HUSHの任意な部分にアクセスするのには、明らかな速度差があるってわけ。
データ件数や扱うデータの質によって様々だけど、使い分ければ速度的に差が出てくるね。
0797794
02/02/22 00:09ID:???うそおん。
ハッシュって長い文字列(ハッシュ配列のキー)とかを不可逆的に圧縮して、それをキーにするにゃないの?
チェックサムみたいなCRCみたいな。(違うけど)。
0798791
02/02/22 00:12ID:???レスありがとうございます。いや実は、上にも書いた
ttp://dream.lib.net/room/cgi/e_analize.html これ設置
してみたんですが、JavaScript有効にしていないとログ取らないん
ですよね・・カウンター機能使ってないからなのかな・・
b1=new Date();
a1=window.screen.height;
a2=window.screen.width;
a3=window.screen.colorDepth;
a4=window.document.referrer;
a5=b1.getTimezoneOffset();
document.write("<img src='./hana.cgi?wh="+a1+"&tz="+a5+"&ww="+a2+"&cd="+a3+"&ref="+a4+"'>");
これなんですが、スクリプトのカウンター機能使わないとログ取れない
とかなんでしょうか?それは関係ないですか?
0800名無しさん@お腹いっぱい。
02/02/22 00:32ID:???一般に、gdbmにしろndbmにしろ、tieで作ったデータは大きくなるよ。
圧縮されてもいません。
直接そのファイルを覗いてみるといいです。
0801名無しさん@お腹いっぱい。
02/02/22 00:33ID:???その辺はCGI設計者の好みと用途でいいと思いますよ。
0802791=798
02/02/22 02:29ID:???くれません。外部ファイルにしてるからですか?
ttp://www.din.or.jp/~himura/at-works/access/readme/index.html
こっちのでも同じでしたヽ(;´Д`)ノ
0803名無しさん@お腹いっぱい。
02/02/22 18:30ID:kB5a0aUWinterQのCGIサーバーに設置してみたら動かないって報告を受けました。
ファイルが見つからないってエラーです。
調べてみたら、ユーザが設置したCGIを呼び出すための上位CGIが存在していて
こいつがPATH_INFOに当たる部分をファイル名だと決め付けているようなんです。
こういうことをしているところはよくあるんでしょうか?
対策はありますか?
他のCGIサーバーを使うか、
PATH_INFOを使わないように修正するくらいしかない気がするんですけど。
0804名無しさん@お腹いっぱい。
02/02/22 18:56ID:s47PnZwK(具体的にはファイルが開けない。それ以外は普通に動く)
改行コードもwindowsにあわせました。
何か考えられる問題はないでしょうか?
0805名無しさん@お腹いっぱい。
02/02/22 19:18ID:???オーバーライドするCGIはよくあるよね。
CGIに限らず、SuEXECでも、そういうことは出来そうな感じがするな。
CGIで自由度が高いことがやりたいんだったら、やっぱりそれなりのサーバを使うしかないと思うよ。
管理人のスキルと度量でだいぶ違うから。
0806名無しさん@お腹いっぱい。
02/02/22 19:19ID:???いっぱいありすぎる。
ActivePerl+jcode.plじゃだめなの?
0807名無しさん@お腹いっぱい。
02/02/22 20:18ID:FVueZxe+レンタルサーバの為、環境は選べないです。
サーバ側の問題もありえるとは思えますけど。。
0809名無しさん@お腹いっぱい。
02/02/22 23:49ID:AR6ek7gHブラウザで抽出条件を指定して、結果をテキストファイルとして
ダウンロードするようなCGIをperlで作りたいのですが可能ですか?
画面に出力するのは当然のように可能なので、できそうに
思っていろいろ調べてるのですが、ヒントにめぐり合えません。
Content-typeをどうにかしたらいいような気もするのですが・・・
何かヒントでも教えてもらえれば助かります。
0810名無しさん@お腹いっぱい。
02/02/22 23:51ID:???多分できない。
スクリプトの中で、一度gzなんかに圧縮して送るといいと思う。
print qq|Content-type: application/x-download\n|;
print qq|Content-disposition: filename="hoge.txt"\n\n|;
# 以下Text表示
0813809
02/02/23 01:40ID:ndSWjFLuありがとうございます!!
さらにContent-dispositionでgoogleしたら、もう少し
ヒントが見つかりました!!
まだ、コード書いてませんができそうです。
本当にありがとうございました。
0814名無しさん@お腹いっぱい。
02/02/23 06:59ID:???掲示板などのログファイルに保存されている
ある一定の文字数をCGIに調べさせて表示するにはどうしたらよいのでしょう?
0815名無しさん@お腹いっぱい。
02/02/23 07:19ID:???ファイルに保存されている文字数を調べて表示させればいいと思うよ。
どこがわからないの?
0816名無しさん@お腹いっぱい。
02/02/23 07:54ID:???説明不足ですみせんでした。
0817名無しさん@お腹いっぱい。
02/02/23 08:54ID:???全部ASCIIならファイルサイズ調べるだけ。
一気読みしてるからメモリ効率悪いけど,日本語まじりならこんな感じかな。
require 'jcode.pl';
open LOG, $logfile;
$/='';
$ascii = '[\x00-\x7f]';
$twoBytes = '[\x8E\xA1-\xFE][\xA1-\xFE]';
$threeBytes = '\x8F[\xA1-\xFE][\xA1-\xFE]';
$data = jcode::euc(<LOG>);
$chars++ while($data =~ /$ascii|$twoBytes|$threeBytes/og);
close LOG;
print "Content-type: text/html\n\n";
print $chars;
参考
http://www.din.or.jp/~ohzaki/perl.htm#JP_Split
http://www.mikeneko.ne.jp/~lab/kcode/jcode.html
http://tohoho.wakusei.ne.jp/wwwperl1.htm#Tokushu
プログラミングPerl改訂版 P79,149
0818名無しさん@お腹いっぱい。
02/02/23 22:01ID:???ファイルはtext形式です。
すごく単純なやり方はないのでしょうか?
0819名無しさん@お腹いっぱい。
02/02/24 21:02ID:dCUXJG5x0820ここもいいよ!
02/02/24 21:19ID:f/OTQkHz0821名無しさん@お腹いっぱい。
02/02/25 03:39ID:orEft5aTああああああああああ(エンター)
あああああああああああああああああ
というように改行を入れると、書き込み確認画面で何故か
ああああああああああ
あああああああああああああああああ あああああああああああああああああ">
になってしまって書き込もうとしても、「本文がありましぇん」と
・・・これはどうしたら直りますか?
0822821
02/02/25 03:41ID:orEft5aT>になってしまって書き込もうとしても、「本文がありましぇん」と
>言われてしまいます。
0823名無しさん@お腹いっぱい。
02/02/25 03:49ID:???スクリプト変えれ。
0824ぷうすけ
02/02/25 10:34ID:sZy5WoHhグラム本体とは別になっています。本体はquiz.cgi、データはxxxxx.cgiとい
う感じにしています。答えを不正に読まれない対策として、データファイル
を.cgiにして、.cgi/へのアクセスも禁止しているのですが、まだ心配です。
パーミッションは現在、本体が755、データの方が644となっています。
このクイズの場合のように、あるファイルの内容を読まれないためには、一般
にどんなことをしておけばよいでしょうか?よろしくお願いします。
0825名無しさん@お腹いっぱい。
02/02/25 10:54ID:???データを暗号化する。
0826名無しさん@お腹いっぱい。
02/02/25 10:55ID:???あとは、パーミッションを600に設定する。それで動かないようなら動くようにしてもらう。
プロバイダに。
0827ぷうすけ
02/02/25 11:21ID:sZy5WoHh基本的にはOKなのですね!?
0828821
02/02/25 11:40ID:XPxruXjPありがとう。ちなみに17氏のやつっス。
スクリプトはいじってないんですが、何故かこの現象が・・
正常な書き込み確認の画面のソースはこうなんですが
名前:hhh
<INPUT TYPE=hidden NAME=FROM SIZE=19 value="hhh">
E-mail<font size="1">(省略可)</font>:
<INPUT TYPE=hidden NAME=mail SIZE=19 value=""><br>
内容:<ul>ああああああああああ <br> あああああああああああああああああ
<input type=hidden name=MESSAGE value="ああああああああああ
あああああああああああああああああ "></ul>
0829821@>>828の続き
02/02/25 11:44ID:XPxruXjP名前:hhh
<INPUT TYPE=hidden NAME=FROM SIZE=19 value="hhh">
E-mail<font size="1">(省略可)</font>:
<INPUT TYPE=hidden NAME=mail SIZE=19 value=""><br>
内容:<ul>ああああああああああ <br> あああああああああああああああああ
あああああああああああああああああ "></ul>
・・となって、<input type=hidden name=MESSAGE〜が表示されてないっス・・閉じタグだけ。
どなたかお助けください。
0830名無しさん@お腹いっぱい。
02/02/25 13:27ID:rzdUuZQhあるホームページから、フォームアクションでCGIを起動し、
その結果を、別の新しい窓に表示するようにするには、
何をどうすれば良いですか。
0831名無しさん@お腹いっぱい。
02/02/25 13:34ID:???で逝けなかったっけ?
0832名無しさん@お腹いっぱい。
02/02/25 14:35ID:UOHqJPQ/ご指導、ありがとうございました。
target=_blankを加えてやってみます。
0833なんか教えて
02/02/25 15:10ID:QYTcZNO9どうすればいいの?
0834名無しさん@お腹いっぱい。
02/02/25 15:55ID:???メールで投票してもらって自分で開票しランキングHTMLを組む。
■ このスレッドは過去ログ倉庫に格納されています