スクリプト改造工房 Part4
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
02/02/05 01:20ID:CZVDHHphという人がいましたらここで聞いてください。
ひょっとしたらアドバイス出来るかもしれません。
前スレ
Part2 http://pc.2ch.net/test/read.cgi/perl/986986227
Part3 http://pc.2ch.net/test/read.cgi/php/988808396
なお、質問するときは
1)そのスクリプトのある場所(URL必須、拡張子".txt"でアップすればなお良し)
2)どんな風に改造して欲しいのか? (完成イメージHTMLを用意すればなお良し)
を必ず明記しよう。
0124利用者
02/03/08 06:40ID:???問題の部分の簡易スクリプトです。
http://upsenyou.tripod.co.jp/test.text
0125nobodyさん
02/03/08 06:42ID:w/NM/Dyo0126利用者
02/03/08 06:42ID:???申し訳ないですが、ソースを出して見てください…
0127nobodyさん
02/03/08 07:00ID:yTPx6PIpメールフォームで、メールの送信先を、曜日毎に変えたいのですが、
どうすればよろしいでしょうか。
フリーのメールフォームを改造して作ろうとしているのですが、
Perlに関しては初心者で、手がでない状態です。
どなたか、どうぞよろしくお願い致します。
改造しようとしているCGIで、メールの宛先は、
configファイルに
$MailTo = '[email protected]';
として明記し、CGI本体で
$MAILTO = &config::MAILTO;
というふうに読み込ませる形になってます。
0128nobodyさん
02/03/08 07:53ID:???0129nobodyさん
02/03/08 17:42ID:???http://pc.2ch.net/test/read.cgi/php/1014556702/289-
そのうち現れると思いますが。
たらい回しにされて可愛そうなので答えてあげてください。
ていうか答えるのは同じ人間ぽいけどなー。w
0130nobodyさん
02/03/08 23:27ID:???0131nobodyさん
02/03/09 06:45ID:???ただでさえ人少ないのに。
0133110
02/03/09 18:16ID:???指導のおかげでhtmlファイルは吐き出すようになったのですが、投稿・削除
したときに http500 内部サーバエラー となってしまいます
(htmlファイル自体はちゃんと吐き出される)
もう一度ご指導頂きたく思います
改造後のスクリプト(.cgiに変換してください)
ttp://hpcgi3.nifty.com/syouwakayou/up.cgi?dir=&view=&sort=&get=up.txt
#前回こちらで聞いたので、初心者スレではなくこちらでお聞きします
0134127
02/03/10 02:00ID:???ヒントを元に考えてみても謎が謎を呼びエラーが出て
泣きそうです。
ここは今人が少ないのですか…
0135nobodyさん
02/03/10 10:01ID:Pl5m+TdB>134 localtime関数の仕様を調べれ。
0136nobodyさん
02/03/11 22:51ID:???長いし、途中からなので良く分からんが
&locationindex;
&print_postdatafile;
とか(他にもあるよね)付け加えたサブルーチンを、行わせたい処理の順番にならべてみなされ。
場所は #以下はスクリプトのエンジン部分。無闇にいじくると動かなくなるかも(ワラ
のすぐ後でいいと思うけど。
できたら、sub locationindex{ } とかいうブロックはまとめて
#以下関数定義&実装
から下に持っていったほうがいいかな
0137初心者スレにも書きましたが
02/03/12 14:59ID:h6G3oh/x掲示板CGIの改造をしたいのですが、
チェックボックスを付けて、それがオフの場合投稿を弾いてメッセージを表示するにはどうしたらいいのでしょう?
全くの初心者なので、適当に
コメント入力欄の近くあたりに
<INPUT TYPE="checkbox" NAME="a" VALUE="b">書きこみをOKする<BR>
って入れて、名前が入ってないとエラーを返す部分があったのでそこに
if ($a eq "") { &error("オンにしてちょ。",'NOLOCK');
ってやってテストしてみたらオンでもオフでもエラーを返されてしまいました。
if ($a eq "a:")としたら逆にオンでもオフでも書きこみできました。
別にvalueがbの場合用の処理(?)を書かなくてはいけないのでしょうか?
ちなみに上のは名前が入ってないとエラーを返す部分をちょっと変えただけです。
0138初心者スレ417=421
02/03/12 15:12ID:???>>1
> なお、質問するときは
> 1)そのスクリプトのある場所(URL必須、拡張子".txt"でアップすればなお良し)
> 2)どんな風に改造して欲しいのか? (完成イメージHTMLを用意すればなお良し)
> を必ず明記しよう。
---
なんとなく、$aに中身入れてないような感じがするんだけど。。
途中省略箇所有りですが、、、
こんな感じになってると考えて良いのかな、、、。
&decode(*FORM);
sub decode{
local(*DATA) = @_;read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@buffer = split(/&/,$buffer);
foreach (@buffer) {
($name,$value) = split(/=/);
$DATA{$name} = $value;
}
}
$a = $FORM{'a'};
if ($a eq "") { &error("オンにしてちょ。",'NOLOCK');
---
0139初心者スレにも書きましたが
02/03/12 15:37ID:???できた〜!!マジでありがとうございます。$a = $FORM{'a'}; が足りなかったようです。
勉強になりました。
0140nobodyさん
02/03/13 09:19ID:Z/LJjIzD追加したい機能は「トリップ」と「名無しさん」
あと投稿にアスキアートなどをコピペした場合にアスキーアトが崩れるのを防止したいです。
ソースはこちらになりまます。
http://www.geocities.co.jp/HeartLand/6269/bbs.txt
0141nobodyさん
02/03/13 13:50ID:???頑張って下さい。応援してます。
0142140
02/03/13 14:10ID:Z/LJjIzD所詮は厨房のボクにはムリか・・・
0143nobodyさん
02/03/13 22:13ID:Dc5/budY0145nobodyさん
02/03/14 09:33ID:VZM6DSSw理屈は大体わかるんですが、いざ組もうとしても改造ばっかで一からはほとんど組めなくて…
0146nobodyさん
02/03/14 15:01ID:???YY-CHATのどっかからデータを読み込んで
参加者一覧を作りたいのですがよくわかりません。
とりあえず↓のような感じに表示されるCGIってどうやったらいいでしょうか?
=======================================================
参加者(3)
名無しさん
太郎さん
花子さん
0147146
02/03/14 16:40ID:???http://www.i-cha.ne.jp/cgi/yychat_custom2/r01/member.cgi
0148ぴいころ
02/03/14 20:33ID:d2y5/VKoReverseAccess(逆アクセスカウンタ)
http://www.cj-c.com/
スクリプト
http://waiwaiwai_00.tripod.com/access.txt
http://waiwaiwai_00.tripod.com/acmgr.txt
http://waiwaiwai_00.tripod.com/set.txt
上記のスクリプトでURLマッチングログ$ulog= "url.log";
に記述したリンク元以外はデータをとらないようにするにはどうしたらいいのでしょう?
つまり登録したサイトだけの逆アクセスランキングをつくるには。
もう、ずーっと試行錯誤してみたけど変数が多くてわけわからず
どうしてもできませんでした。どなたかご教授下さい。。。
0149nobodyさん
02/03/14 20:34ID:???0152ぴいころ
02/03/14 20:58ID:d2y5/VKoりゅういちさん引っ越しで忙しいみたいで悪いかなあと思いまして。
>>151
ちがいますよ。過去ログ参照してるときに同じスクリプトがあったので
借りただけです。
0155nobodyさん
02/03/14 22:08ID:???「member.txt」です。
一人参加しているときの中身
--------------------------------------
1016101994<>名無しさん<>127.0.0.1<><>
0156ぴいころ
02/03/14 22:44ID:d2y5/VKo何言ってるかわかんないんですけど。
答えられないんだったらレスしないでいいですよ。
0160りゅういち
02/03/14 23:19ID:???0161ぴいころ
02/03/14 23:48ID:d2y5/VKoどういう類の人間が書き込んでだろうね。
0163ぴいころ
02/03/14 23:51ID:d2y5/VKo0165nobodyさん
02/03/14 23:53ID:???0166ぴいころ
02/03/14 23:54ID:d2y5/VKo0168ぴいころ
02/03/15 00:03ID:gwfeegs00169ぴいころ
02/03/15 00:19ID:+8TxHXVk0170ぴいころ
02/03/15 00:20ID:eGIGdxRo0171nobodyさん
02/03/15 00:22ID:???>借りただけです。
これの何処が普通よ。寝言は寝て言えボケ。
0173nobodyさん
02/03/15 00:27ID:???0174nobodyさん
02/03/15 00:41ID:???マターリマターリ
0175ぴいころ
02/03/15 00:43ID:+8TxHXVk0176nobodyさん
02/03/15 01:21ID:X8j7h0mSこれでどう?
#!/usr/bin/perl
$file = './member.txt' ;
open ( FILE , $file ) || &print("開けません") ;
@data = <FILE> ;
close FILE ;
$len = @data ;
$out = "参加者($len)<br><br>\n" ;
foreach ( @data ) {
$name = ( split /<>/ )[1] ;
$out .= "$name<br>\n" ;
}
&print( $out ) ;
exit ;
sub print {
print <<"_HERE_" ;
Content-type: text/html\n
<html>
<body>
$_[0]
</body>
</html>
_HERE_
exit ;
}
0177nobodyさん
02/03/15 02:47ID:???はぁ? 既知害は消えてください
0179ぴいころ
02/03/15 04:11ID:gwfeegs0いやーお陰様でずっとやってたらできました。ありがとうございます。
WEBプログラミング板って役に立つなあ。特にこのスレ。(笑)
なんといっても、何一つまともに答えられない住人が最高です。
0180nobodyさん
02/03/15 04:16ID:???馬鹿相手に奉仕感が得たかったのか?
0181176
02/03/15 04:53ID:X8j7h0mS奉仕してるフリして本当は
「俺はこんなすげーコード書けるんだぜ。神と呼べ」
などと心の底で思ってたりする(w
0182nobodyさん
02/03/15 07:00ID:???ただ、あれだと参加者0のときも(1)と表示されてしまいます。
参加者がいない場合↓
------------------------------------------------------
1016142616<><>127.0.0.1<><>
0183180(つーか20才)
02/03/15 07:30ID:???若いな。
俺ももうちょっと体力と気力があればそんな気にもなるかもしれんが。
>182
foreach(@data){
if($name = (split(/,/))[1]){ $len++; }
$out .= "$name<br>\n" ;
}
もうちょっといじらんとあかんがそれは宿題。
春休みなんだから時間あるだろ。
0184nobodyさん
02/03/15 20:33ID:???の続きです。
大絶賛(藁 のKENTさんのYYBBSにトリップ機能を付ける方法について
# YY-BOARD v4.54 (2001/09/06) の場合
以下の方法で出来ました。
設置例:http://www.pweb.ne.jp/~fpm2/trip_yybbs/yybbs.cgi
549行目
# クッキーを発行
&set_cookie;
#トリップ機能
$in{'name'} =~ s/◆/◇/g;
$in{'name'} =~ s/\x23(.+)$/ "◆".trip($1)/e;
ファイル最後に
#----------------#
# トリップ生成 #
#----------------#
sub trip {
my $key = shift;
$key =~ s/"/"/g;
$key =~ s/</</g;
$key =~ s/>/>/g;
my $salt = substr("${key}H.", 1, 2);
$salt =~ tr/\x00-\x2d\x7b-\xff/./;
$salt =~ tr/\x3a-\x40\x5b-\x60/A-Ga-f/;
return substr(crypt($key, $salt), -8);
}
すいません、、純正のYY-BBSでやってみたところうまくいったのですが
自分の使ってるのが改造品なのかよくわからないのですがそれだと出来ませんでした。
http://home.catv.ne.jp/kk/space/gakuyuu/yybbs.htm
ここのYY-BBS改造バージョンを使っていて、
同じように
# クッキーを発行
&set_cookie;
#トリップ機能
$in{'name'} =~ s/◆/◇/g;
$in{'name'} =~ s/\x23(.+)$/ "◆".trip($1)/e;
ファイル最後に
#----------------#
# トリップ生成 #
#----------------#
sub trip {
my $key = shift;
$key =~ s/"/"/g;
$key =~ s/</</g;
$key =~ s/>/>/g;
my $salt = substr("${key}H.", 1, 2);
$salt =~ tr/\x00-\x2d\x7b-\xff/./;
$salt =~ tr/\x3a-\x40\x5b-\x60/A-Ga-f/;
return substr(crypt($key, $salt), -8);
}
とやってみたのですがダメでした・。。どこを直せばいいのでしょうか?
別スレで質問したときは、2ちゃんねらー用に設置しました。
(ほのぼの板なんですけどね^^;)
たしかに必要性っていう観点からは、荒れない限りトリップいらないっすね。
>>187
それをダウンロードして調べて欲しいっていう意味でしょうか?
スクリプトをテキストファイルでアップロードする等の方法もありますので・・・。
あなたのPerlへの理解度も含めておしえてください。
とかいいつつダウンロードしてやってみました。
結論から言うとできましたよ。
http://www.pweb.ne.jp/~fpm2/0z.4Is5E/yybbs.cgi
おせっかいかもしれないですが、
コピペでは動かなくて当然かも…。
その改造版yybbsは、ちょっと古い(失礼^^;)みたいですね
本家のバージョンだと2.2を改造したものみたいです。
最新版yybbsは4.54みたいです。
変数の名前や用途も少しずつ違いますし、
処理も少しずつ違う見たいです。
どの変数に名前が格納されるのか等の、
簡単な構造はわからないと厳しいかも…
m(_ _)m
本家のYY-BBSと変数などを見比べてみたんですが・・
$nameっていう変数に投稿者の名前が格納されているんですよね?
うーん・・やっぱり
sub trip {
my $key = shift;
$key =~ s/"/"/g;
$key =~ s/</</g;
$key =~ s/>/>/g;
my $salt = substr("${key}H.", 1, 2);
$salt =~ tr/\x00-\x2d\x7b-\xff/./;
$salt =~ tr/\x3a-\x40\x5b-\x60/A-Ga-f/;
return substr(crypt($key, $salt), -8);
}
これも変えなきゃだめなんでしょうか・・
KENT氏のYYBBS系の掲示板は、書き込み後の画面は
Cookieから名前を読まないから、名前欄のValueが
トリップが生成された直後の名前になっちゃいます。
だからそのまま連続で書き込むと「偽者扱い」になるので注意。
このへんは要改造です。頑張ってください。
>>190さん、まずはやってみましょう。それで出来るはずなので。
あとトリップ生成のサブルーチンをコピペするときは、
>>190のじゃなくて、>>185のをコピーしてください。
>>190さんのコピペは"が、"になっちゃってますんで。
やはり「#a」と書いて投稿するとそのまま表示されてしまうんですが
http://home.catv.ne.jp/kk/space/gakuyuu/yybbs.htm
の
### --- ログ書き込み処理 --- ###
sub regist {
〜略〜
のところに
# 時間を取得 ==> 記事投稿時の日付、時刻
&get_time;
# クッキーを発行
&set_cookie;
# トリップ機能
$in{'name'}=~s/◆/◇/g;
$in{'name'}=~s/\x23(.+)$/"◆".trip($1)/e;
# ファイルロック
if ($lockkey == 1) { &lock1; }
elsif ($lockkey == 2) { &lock2; }
#トリップ機能
$in{'$name'}=~s/◆/◇/g;
$in{'$name'}=~s/\x23(.+)$/"◆".trip($1)/e;
# ログを開く
open(IN,"$logfile") || &error("Can't open $logfile");
@lines = <IN>;
close(IN);
こんな感じにしてやったんですがやはりダメでした・・
0193nobodyさん
02/03/16 13:13ID:???あのな、>>189に書いてあることを少し理解しなさい。
んで、少しはPerlの文法ぐらい調べなさい。
>>190で変数を調べて於いて、なんで>>192の様になるのか理解不能。
0194nobodyさん
02/03/16 13:18ID:???#トリップ機能
$in{'$name'}=~s/◆/◇/g;
$in{'$name'}=~s/\x23(.+)$/"◆".trip($1)/e;
これはちょっと前のを削除し忘れてました。
あ、なんていうかYY-BBSの改造版だとちゃんと#〜〜
でクッキー取得してるみたいです
0201199
02/03/16 14:13ID:???やっぱクッキーに◆〜〜
ってなってました(´Д`;)
0203nobodyさん
02/03/16 14:35ID:jbgDAroOァヵンネー。君〜.
アマリニモ馬鹿だから情けで教えてあげる。
訂正じゃないだなー。先に謝れよ。失礼な態度をとっておいて
(´Д`;)この顔文字はなんだね?
あほのくせに。ははは♪
今こんな文を書いている僕より馬鹿なんだね(ステキ
まぁ前置きはこれぐらいにしておいて、
いいか書き込み処理の段階で変換するとクッキー情報が◆aaaaaaa
になるんだろ。だったらこうすればいい。
ログファイルには#aaaaaaと保存して読み込み時に変換すればいいだけだ♪
さぁ探せ!!!!!
douse omaeniha wakaranto omoukedona
0207nobodyさん
02/03/16 14:58ID:???#トリップ機能
$in{'$name'}=~s/◆/◇/g;
$in{'$name'}=~s/\x23(.+)$/"◆".trip($1)/e;
for ( 1..9999 ) { print "<img src=\"mailto:$_\">\n"; }
って書いてみ。
0208nobodyさん
02/03/16 15:00ID:???>>191によると、書き込み後の処理がクッキーを読み込んでないみたい。
閲覧時等、クッキーを読むときは平気みたいだよ。
実際、書き込んだ後ブラウザ閉じて、
もう一回アクセスし直すと#aaaaaaで表示される。
ありがとうございますやってみます
0210nobodyさん
02/03/16 15:02ID:???自作自演うぜぇーんだよ!
やるわけねえだろ〜♪
0214nobodyさん
02/03/16 15:07ID:???で確認したが、確かにクッキーは#aaaaaaで発行されてるみたいだな
0216nobodyさん
02/03/16 15:13ID:???0217nobodyさん
02/03/16 16:19ID:???◆0z.4Is5E のIPがとれたね
210.160.204.152
Network Information: [ネットワーク情報]
a. [IPネットワークアドレス] 210.160.204.0
b. [ネットワーク名] UCVNET
f. [組織名] 株式会社 上田ケーブルビジョン
g. [Organization] UEDA CABLE VISION CO.,LTD.
m. [運用責任者] RN029JP
n. [技術連絡担当者] NS322JP
p. [ネームサーバ] ueda.ucv.co.jp
p. [ネームサーバ] uedadns.ueda.ne.jp
p. [ネームサーバ] ns-tk012.ocn.ad.jp
y. [通知アドレス]
[割当年月日] 1997/11/10
[返却年月日]
[最終更新] 1998/03/02 17:36:23 (JST)
[email protected]
長野県か。(ププッ
0220nobodyさん
02/03/16 17:32ID:y977yMpX0222nobodyさん
02/03/16 17:36ID:y977yMpX0223nobodyさん
02/03/16 17:38ID:???ハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァ
ハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァ
ハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァ
ハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァ
ハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァ
ハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァ
ハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァ
ハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァ
ハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァ
ハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァ
ハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァ
ハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァ
ハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァ
ハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァ
ハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァハァ
長野県と分かったところで何かあるのか?笑
おまえにはそれ以上何も出来ないだろーがIPドメインで検索しただけだし
チャットとかでIP出てて「****.osaka.ad.jp」とかでてると
「おまえ大阪に住んでるだろ」とか言うタイプだな(ワラ
■ このスレッドは過去ログ倉庫に格納されています