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 に纏めたので、十分に調べた上で質問して下さい。
0690名無しさん@お腹いっぱい。
02/02/17 01:00ID:???その本ボクに買ってくれたら教えてあげるYO!
0691名無しさん@お腹いっぱい。
02/02/17 02:24ID:???まあ待て、お前の態度次第では教えてやらんでもないぞ。
WinMXでオレ様にエロゲーを3、4本落とさせろ。そうすれば
教えてやってもよいぞ。
0692買物カゴ
02/02/17 14:40ID:???$count1= 0;
$count2= 0;
while ($count1 <= 50 ){
$xx= @kazu[$count1];
&trans;
@kazu[$count1] = $xx;
if (@kazu[$count1] ne "") {
$H = 1*@kazu[$count1];
if ($H >= 1) {
$count2++;
$datareg1{$count2}="@shouhinnumber[$count1]*@shouhinmei[$count1]*@bikou[$count1]*@kakaku[$count1]";
$datareg2{$count2}="@kazu[$count1]";
}
}
$count1++;
}
foreach (split(/; /,$ENV{'HTTP_COOKIE'})) {
($key,$value) = split(/=/);
$count1= 1;
while ($count1 <= 20){
$shouhin = "shouhin$count1";
if ($key eq $shouhin) {
$shouhin{$count1}= $value;
@data = split(/::/, $shouhin{$count1});
$data1{$count1} = @data[0];
$data2{$count1} = @data[1];
}
$count1++;
}
}
0693買物カゴ
02/02/17 14:47ID:???$count1= 0;
$count2= 0;
while ($count1 <= 50 ){
$xx= @kazu[$count1];
&trans;
@kazu[$count1] = $xx;
if (@kazu[$count1] ne "") {
$H = 1*@kazu[$count1];
if ($H >= 1) {
$count2++;
$datareg1{$count2}="@shouhinnumber[$count1]*@shouhinmei[$count1]*@bikou[$count1]*@kakaku[$count1]";
$datareg2{$count2}="@kazu[$count1]";
}
}
$count1++;
}
foreach (split(/; /,$ENV{'HTTP_COOKIE'})) {
($key,$value) = split(/=/);
$count1= 1;
while ($count1 <= 20){
$shouhin = "shouhin$count1";
if ($key eq $shouhin) {
$shouhin{$count1}= $value;
@data = split(/::/, $shouhin{$count1});
$data1{$count1} = @data[0];
$data2{$count1} = @data[1];
}
$count1++;
}
}
0694買物カゴ
02/02/17 14:48ID:???行頭を下げて、投稿する方法がわかりません。
あきらめました。とほほ。
ご迷惑をおかけしました。
0695名無しさん@お腹いっぱい。
02/02/17 15:07ID:???市販の書籍のコード晒すの。
0696名無しさん@お腹いっぱい。
02/02/17 18:57ID:???0697名無しさん@お腹いっぱい。
02/02/18 18:17ID:???偶にいるんだよね、こーいうことしちゃう奴。
んでもスライス扱いになるから、意図した動きになるみたいよ。
だから、こーいう書き方したいなら、
($scalar) = @list[1];
とかって書いた方が気持ちよいけど。
0698名無しさん@お腹いっぱい。
02/02/19 04:59ID:???そのソースだと,これくらいしかわからなかった。
@kazuを処理して, %datareg1と %datareg2に結果を入れてる。
そのあとクッキーを読んで,%data1と %data2に結果を入れてる。
0699名無しさん@お腹いっぱい。
02/02/19 11:49ID:h6Vj/zltこの変数を1行毎に処理したいのですがどうしたらいいのでしょうか?
while とか foeach とかでやろうと思っているのですが分かりません
0700名無しさん@お腹いっぱい。
02/02/19 11:51ID:???while($data ne "")
{
$data =~ s/(.*?)\n//;
push(@data,$1);
}
0701名無しさん@お腹いっぱい。
02/02/19 11:52ID:???ごめん。
$data -> $tegamiで。
0702名無しさん@お腹いっぱい。
02/02/19 12:21ID:???速レスありがとうございました!
無限ループさせてしまっていました、、、
助かりました
0703名無しさん@お腹いっぱい。
02/02/19 12:34ID:???役に立ったかな?
$data =~ s/^(.*?)\n//;
の方がより良いかも。
0704名無しさん@お腹いっぱい。
02/02/19 12:58ID:Ls+q3KGPchomp;
$_ ...
}
とか
0705名無しさん@お腹いっぱい。
02/02/19 14:59ID:dKbpdQEsB子さん どうも
A子さん どうも
こんな感じでログファイルに保存してあったとして
B子さんの発言のみをログファイルから読み込んで
表示するにはどのように記載すればよいのでしょうか?
0706Perl勉強中
02/02/19 15:13ID:???while(<OUT>){
@log=split/\t/;
if ($log[0]=B子さん){
print @log;
last;
}
}
かな?
0707名無しさん@お腹いっぱい。
02/02/19 15:16ID:???それだと、if文のところで、$log[0]がすべてB子さんに書き変わる。
0708名無しさん@お腹いっぱい。
02/02/19 15:18ID:???そして、それだと、B子さんが一回でてくるとそこで終了してしまう。
0709名無しさん@お腹いっぱい。
02/02/19 15:19ID:???さらに、openしたOUTはいつクローズしてもらえるかとうずうずしている。
0710Perl勉強中
02/02/19 15:21ID:???じゃぁ
open(OUT,"$logfile");
@file=<OUT>;
close (OUT);
foreach(@file){
@hoge=split/\t/;
if ($hoge[0]=B子さん){
print @hoge;
exit
}
}
でどうですか?
0711Perl勉強中
02/02/19 15:22ID:???open(OUT,"$logfile");
@file=<OUT>;
close (OUT);
foreach(@file){
@hoge=split/\t/;
if ($hoge[0]=B子さん){
print "@hoge\n";
}
}
で
0712名無しさん@お腹いっぱい。
02/02/19 15:24ID:???だから、そのif文だと
もし($hoge[0]にB子さんを代入できたら){@hogeを出力して実行終了}
だろ?
@hoge[0]にB子さんを代入することを阻害する要因が何一つこれっぽっちもない以上
一行目の配列で終了だよ。
0713名無しさん@お腹いっぱい。
02/02/19 15:25ID:???いつ気付くんだろ・・・・
0714Perl勉強中
02/02/19 15:26ID:???open(OUT,"$logfile");
@file=<OUT>;
close (OUT);
foreach(@file){
@hoge=split/\t/;
if ($hoge[0] eq B子さん){
print "@hoge\n";
}
}
こうか?
0715名無しさん@お腹いっぱい。
02/02/19 15:26ID:???そうだ
0716名無しさん@お腹いっぱい。
02/02/19 15:27ID:???B子さんをクォートしなくても良いンか、とか。
0717Perl勉強中
02/02/19 15:28ID:???@file=<OUT>;
close (OUT);
foreach(@file){
@hoge=split/\t/;
if ($hoge[0] == "B子さん"){
print "@hoge\n";
}
}
これでも良し?
0718名無しさん@お腹いっぱい。
02/02/19 15:32ID:???open(OUT,"$logfile");
@file=<OUT>;
close (OUT);
foreach(@file) {
@hoge = split(/\t/,$_);
if ($hoge[0] =~ /B子さん/) { print $_; }
}
0719名無しさん@お腹いっぱい。
02/02/19 15:33ID:???文字にはeqじゃないの? ==でどうなるかわからんけど。
foreach内単に
print if (/^B子さん/);
ではダメなのだろうか?
OUTって名前が気持ち悪いのは俺だけ?
0720名無しさん@お腹いっぱい。
02/02/19 15:33ID:???それだとどうかしらん。
0721名無しさん@お腹いっぱい。
02/02/19 15:35ID:???ぜんぜんおっけーっしょ?
0722名無しさん@お腹いっぱい。
02/02/19 15:43ID:???0723名無しさん@お腹いっぱい。
02/02/19 15:44ID:???while(<IN>){
print if /^B子さん\t/;
}
close IN;
0725705
02/02/19 15:51ID:???こんなに○
すいません間違えました。
0726705
02/02/19 16:01ID:???追加の質問で
B子さんの名前の場所と
コメントの場所を調整するにはどうすればいいのでしょうか?
B子
どうも
こんな感じです。
0727Perl勉強中
02/02/19 16:23ID:???open(OUT,"$logfile");
@file=<OUT>;
close (OUT);
foreach(@file){
@hoge=split/\t/;
if ($hoge[0] eq "B子さん"){
print "$hoge[0]<br>$hoge[1]<br>";
}
}
又は
open(OUT,"$logfile");
@file=<OUT>;
close (OUT);
foreach(@file){
@hoge=split/\t/;
if ($hoge[0] eq "B子さん"){
@hoge=~s/\t/<br>/g;
print "@hoge<br>";
}
}
でどうでしょ?
0728名無しさん@お腹いっぱい。
02/02/19 16:45ID:???脳内で完結しないで試してから書き込むように。
#!perl
open IN, "<$logfile" or die;
while(<IN>){
if(/^B子さん\t/){
s/\t/<br>\n/;
print;
}
}
close IN;
0729名無しさん@お腹いっぱい。
02/02/19 17:05ID:???s/^(B子さん)\t/\1<br>\n/;
0730名無しさん@お腹いっぱい。
02/02/19 17:08ID:???0731名無しさん@お腹いっぱい。
02/02/19 17:58ID:???0732名無しさん@お腹いっぱい。
02/02/19 17:59ID:???その場合は\1じゃなく$1奨励な。
0733名無しさん@お腹いっぱい。
02/02/19 18:04ID:???あ、ほんとだ。
外で\でも通っちゃうのか
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は裏でやってくれる)。
■ このスレッドは過去ログ倉庫に格納されています