スクリプト改造工房 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を用意すればなお良し)
を必ず明記しよう。
0238nobodyさん
02/03/16 18:05ID:???Yahooで個人的に調べてみろよ。
IPを表示してある掲示板に沢山見つかるよ。
キリ番とか。◆0z.4Is5Eが運営してるサイトも見つけれる。
0239nobodyさん
02/03/16 18:06ID:???IPを表示してある掲示板が沢山見つかるよ。○
鬱だ。
0240nobodyさん
02/03/16 18:07ID:???暖かくなってきたし。
0241nobodyさん
02/03/16 18:08ID:???ログファイルを隠匿しても、ワード検索からIPアドレスで検索できる。
疑わしいヤツがあったらやってみ。
ワード検索を開いて、検索ワードにIPを指定。
DNSで逆引きできなかったから、210.160.204.152で記録されてるよ。
0242241
02/03/16 18:09ID:???http://www.pweb.ne.jp/~fpm2/trip_yybbs/yybbs.cgi?mode=find&word=210.160.204.152
0245nobodyさん
02/03/16 18:32ID:???厨のいう「改造版YY-BBS」を検索した。
http://www.goo.ne.jp/default.asp?MT=%C5%EA%B9%C6%B5%AD%BB%F6%A4%CE%BA%EF%BD%FC%A4%CB%BB%C8%CD%D1%A1%A2%B1%D1%BF%F4%BB%FA%A4%C78%BB%FA%B0%CA%C6%E2%A1%A3%28%A4%CA%A4%AF%A4%C6%A4%E2%C5%EA%B9%C6%B2%C4%29&SDB=PG&top=gtop&_v=2
ここから>>241-242の方法で探して行けば、スグ見つかると思われ
0247nobodyさん
02/03/16 19:43ID:???YY-BBSにこのトリップ機能をつけるにはどこにこのコードを
付け足せばいいんでしょうか?
### --- ログ書き込み処理 --- ###
sub regist {
|
略
|
#トリップ機能
$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);
}
こんな感じにしてみたんですが書き込みのときに名前を「名無しさん#aaaa」
でやったんですがそのまま「名無しさん#aaaa」と表示されてしまいます・・
どこを直せばいいんでしょうか?
全てはここから始まった。
0250nobodyさん
02/03/16 19:46ID:???0251nobodyさん
02/03/16 19:49ID:???夏希と言う名前でサイトを運営しないか_?
0252nobodyさん
02/03/16 19:50ID:???0254nobodyさん
02/03/16 20:03ID:???うわっ、また来た(w
よほど気になるんだな(w
マジレスするが、2ちゃんねらーは飽きっぽいぞ
そんなにビクビクするなよ
0255nobodyさん
02/03/16 20:18ID:???0258nobodyさん
02/03/16 20:27ID:y977yMpX0260nobodyさん
02/03/16 20:33ID:???0262nobodyさん
02/03/16 20:53ID:???0263nobodyさん
02/03/17 13:56ID:???0265nobodyさん
02/03/17 17:44ID:Bnq/Fh92このclick countに二つフィールドを追加(num1、name1 数字は予約語避け)とし
URLとnum1が一致した場合に一つ足していくと言う風にしたいんです。
どなたか手ほどきよろしくお願いします。
(引数がcount.php?j&num1=http://plebian.comみたいになればなお嬉しいです)
0266265
02/03/17 22:56ID:rVGr2spx2chのBBSは半角を使用しても文字化けがおこらないのに
なぜKENT氏のYYBBSなどは化けるのでしょうか?
いろいろな掲示板のソースを眺めてみたんですが
原因がわかりませんでした。
どなかご教授お願いします。
0267266
02/03/17 23:01ID:???0268nobodyさん
02/03/17 23:08ID:???他のは知らんけどYYBBSはEUCとかJISが来ても自動的に変換する。
半角カナとかが入ってるとこの変換に失敗することがあるからダメなの。
0269266
02/03/17 23:08ID:???0270266
02/03/17 23:10ID:???まみません。○
>>268
ありがとうございます。
そこで今コンバータしている所をとったらできたのですが
何か問題がありますでしょうか?
0271266
02/03/17 23:10ID:???すみません。○
はぁ。
0272nobodyさん
02/03/17 23:16ID:???2chだと「ERROR、SJISで書いてちょ」とか言われてはじかれるけど。
0273nobodyさん
02/03/18 00:07ID:???コントロール文字の入力テスト
0274nobodyさん
02/03/18 00:11ID:???写爵叱失、ホ偲漆柴A。ゥ」・・
0275nobodyさん
02/03/18 00:13ID:???(IJ]68$B$N(IC=D$B#o#k!)(B
0277nobodyさん
02/03/18 00:17ID:???Tn0畸5_P[k0・c0f0ス0・ケ0n0
0279nobodyさん
02/03/18 13:38ID:???0280nobodyさん
02/03/18 16:42ID:???>>185ボクもトリップをつけてみました。
しかし、>>198に書かれてる通り、
書き込み後の名前をクッキーから読み込むのではなく、
変換されたトリップ(◆〜)をvalueにしてしまっています。
同じアドレスを再び開きなおすと、今度はクッキーを読み込み、
#aaaaになります。
これを防ぐために、書き込んだ後に1回リロードしたらいいのかな?
と素人考えで思いついたのですが、具体的にどうしたらいいのか思い当たりません。
どうすればいいのか、どなたかお願い致します。
0281280
02/03/18 16:43ID:8bBBEqYSageます
変なやり方かも知れないけど自分の場合クッキーセットするところに
#トリップ機能
$in{'name'} =~ s/◆/◇/g;
$in{'name'} =~ s/\x23(.+)$/ "◆".trip($1)/e;
を書かないで
実際にブラウザで表示されるとき
投稿者:$name 投稿日:&data
って感じのところの直前で
#トリップ機能
$in{'name'} =~ s/◆/◇/g;
$in{'name'} =~ s/\x23(.+)$/ "◆".trip($1)/e;
をすると変換されるしクッキーには「#aaaa」ってのが入るよ
でもこのやり方だとワード検索とかのときも変換してから表示させないと
ワード検索したときにトリップがそのまま#aaaaで表示されちゃうから注意
$nameで投稿者名を表示する前にトリップを変換してから表示させれば出来るんじゃないかな
0285nobodyさん
02/03/19 08:29ID:???0287287 ◆JvhKfLlY
02/03/19 17:15ID:LQTKhYRQhttp://storm.s3.xrea.com/petroom/pet.cgi
上のCGIで、datファイルに登録者のホスト名も記録して
管理モードから見れるようにしたいのです。
今の管理モードは、こちらです。
http://storm.s3.xrea.com/petroom/x/?pass=0123&mode=enter
ページ下部にある、「ユーザーデータを個別に削除する」というボタンを押していただければ
分かると思いますが、
今現在の管理モードでは
登録者の名前・ポイント の2つしか分からないようになっているのですが、
これを
登録者の名前・リモートホスト・ポイント という形で表示させたいのです。
一応、CGIをテキストにしてアップロードしました。
pet.cgi
http://storm.s3.xrea.com/petroom/x/pet.txt
管理モード
http://storm.s3.xrea.com/petroom/x/index.txt
自分はあまりCGIに詳しくない為、どこを弄ったら良いのかよくわかりませんでした。
もしよろしければ、ご教授下さい。
よろしくお願い致します。
0288nobodyさん
02/03/19 22:16ID:???ざっと見たところ、以下の部分を書き替えるよろし!(行番号:更新コード)
[pet.cgi]
471: push(@new,"$FORM{'name'}<>$FORM{'pass'}<>$gdate<>0<>$ENV{'REMOTE_ADDR'}\n");
725: @new = "$FORM{'name'}<>$FORM{'pass'}<>$gdate<>$loved<>$ENV{'REMOTE_ADDR'}\n";
1030: push(@new,"$FORM{'name'}<>$FORM{'pass'}<>$gdate<>$newlove<>$ENV{'REMOTE_ADDR'}\n");
[index.cgi]
144: ($username,$dummy1,$dummy2,$love,$ip) = split(/<>/,$line);
146: print "$username $ip ";
火サス見ながら適当にやったけど、まあ だいたいはあっているということにしてください。
余談ですが、ソース中に「質問等はサポート掲示板まで。」とあったのですが、質問した?
0289288
02/03/19 22:31ID:???環境変数:REMOTE_HOST は、ない場合も考えられるので、勝手にこちらで
リモートIPアドレスに仕様変更しています。まずかった?
0290287 ◆JvhKfLlY
02/03/20 11:40ID:fM3Af/c8ありがとうございました!!
今からやってみます。
また結果は報告します。
それから、サポートの方に以前質問したのですが、
「改造についての質問には答えられない」という返答でした・・・。
0291nobodyさん
02/03/20 11:49ID:???キリがないからな。まぁ仕方ないこと。
0292287 ◆JvhKfLlY
02/03/20 11:57ID:fM3Af/c8やってみたのですが、datファイルにはIPアドレスが記録されましたが
管理モードからは見る事ができませんでした・・・
0293287 ◆JvhKfLlY
02/03/20 12:04ID:???print "$username $ip ";
でなくて
print "$username ";
print "$ip ";
と書きかえたら表示されました。
有り難う御座いました。
0295nobodyさん
02/03/22 00:14ID:???0296nobodyさん
02/03/22 19:20ID:3SNeop08ttp://www5.cds.ne.jp/~aid/foolcgi/06.html
の文章変換CGIで変換した言葉をフォームに出力するにはどうしたら
いいですか?
CGIをテキスト化↓
http://www.h2.dion.ne.jp/~i-deai/sozai/bunhen.txt
お願いします。
0297nobodyさん
02/03/22 19:32ID:???sub pr_html{
print $bunsyo;
}
を
sub pr_html {
print "<TEXTAREA>$bunsyo</TEXTAREA>";
}
に変えるとどう?
0298296
02/03/22 20:23ID:3SNeop08できました。ありがとうございます。
0299nobodyさん
02/03/22 21:00ID:???ロリ会員制サイトの作り方教えて下さい。
HOGE.LRw World
http://www3.to/hogelrw
0302nobodyさん
02/03/24 00:23ID:0C88n1+t上のスクリプトなんですがレスにレスが付けれるようになっているのですが、
レスを消すとレスのレスは表示されなくなるだけでログファイルに残っています。
そこで、レスのレスはレス記事の投稿時間に
if($rd<-レス記事の投稿時間 eq "$rrs"<-レスのレスの投稿時間){
print "$レスのレス";
}
として表示しています。
これをヒントにレス記事が削除されたら
レスのレスまで削除されるように使用としたのですが
失敗して出来ませんでした。
この辺りで削除をしているんですが
## 削除キーによる記事削除 ##
@new=();
foreach $line (@lines) {
$dflag = 0;
($num,$k,$dt,$name,$email,$sub,$com,$url,$host,$pw) = split(/<>/,$line);
if ($FORM{'del'} eq "$dt") {
$dflag = 1;
$encode_pwd = $pw;
$del_num = $num;
if ($k eq '') { $oyaflag=1; }
} elsif ($oyaflag && $del_num eq "$k") {
$dflag = 1;
}
if ($dflag == 0) { push(@new,$line); }
}
どなたかレス記事も削除するとレスのレスも同時に削除されるようにする方法を
ご教授頂けませんでしょうか?
宜しくお願いします。
0303nobodyさん
02/03/24 03:21ID:KxmQdHuE0304顔も名前も出さずに毎月100万円
02/03/24 05:04ID:NXQRuNy9Future-Web(フューチャーウェブ)登場
なんと10,000円単位の収入
●10,000円単位の高収入
1件につき最大10、000円の高額収入。月収100万円以上も可能。
●画期的なビジネス!
インターネットを利用したこれまでにない斬新で画期的なビジネスです。
●誰でも出来ます!
インターネットが出来る環境の方なら誰でも参加可能です。
●専門的な知識は一切不要!
ビジネスに必要なツールはすべて当社で用意いたします。また、サポ
ートも万全です。
●詳細は今すぐHPをご覧ください。
http://www.future-web.tv/7823/
0305nobodyさん
02/03/24 05:23ID:???すごいっ!
「レス」って何回言った?
0306nobodyさん
02/03/24 10:38ID:TSVLSL9a19回 あってる?
日付($dt)と比べてどうするw
× if ($FORM{'del'} eq "$dt") {
○ if ($FORM{'del'} eq "$num") {
それにしても無駄が多そうなコードだな・・・
0308302
02/03/24 14:30ID:Cxn1YG42しかし$form{'del'}のvalueは日付になっているので
たぶんこのままでいいのかと思われます。。。
問題なのはログの順番か
× foreach $line (@lines) {
○ for ($i = $#lines; $i >= 0; $i--) {
$line = $lines[$i];
reverseしてもいいし
0310nobodyさん
02/03/24 15:01ID:Cxn1YG42やってみましたが500 Internal Server Errorが出てしまいました。
やはり無理なのでしょうか?
0312302
02/03/24 15:43ID:8BkMvwhrそれは失礼しました。
ソースはこちらに上げておきました。
http://www.geocities.com/rfregar/comedy_bbs.txt
↑です。いかがでしょうか?
## 削除キーによる記事削除 ##
@new=();
foreach $line (reverse(@lines)) {
〜省略〜
}
reverse(@new);
要するにログ見れば分かるんだけど
親レスより前に子レスが保存されてるのにもかかわらず
"親レスが見つかった後に"子レスを探すから、当然見つからなくて
削除できないわけ
日付をキーにする理由がよくわからんが、そこからして設計ミスかも
0314302
02/03/24 16:00ID:8BkMvwhrhttp://www.geocities.com/rfregar/comedy_bbslog.txt
313の方法をもう一度やってみます。
0315302
02/03/24 16:07ID:8BkMvwhrレスを削除するとレスのレスも削除するようにはなりましたが、
次の書き込みで
ログが正しくありません。
(v2.5以前のログの場合は変換の必要があります)
と出てしまいます。
0316302
02/03/24 16:08ID:???0317nobodyさん
02/03/24 16:12ID:???www.ace-cgi.jp/cgi/bbs/110/bbs1/bbs110.cgi
こいつにトリップ機能つけて欲しいんですけど。
0319302
02/03/24 16:17ID:???0321nobodyさん
02/03/24 16:19ID:???0322302
02/03/24 16:36ID:???出来ました。
http://www.geocities.com/rfregar/bbs110.txt
これです。
0323302
02/03/24 16:39ID:???0326302
02/03/24 16:49ID:???いえいえお役に立ててなによりです。
>>325
改造したソースですか。
私も本家でやってみましたら出来ました。
あとは自分でやってみることにします。
ヒントをありがとうございました。
0327302
02/03/24 16:59ID:8BkMvwhrすみません。
本家ならできるつもりでいたのですが、出来ませんでした。
## 削除キーによる記事削除 ##
@new=();
foreach $line (reverse(@lines)) {
〜省略〜
}
reverse(@new);
〜省略〜はどこからどこまでを略したのでしょうか?
本家で出来るって
また試しちゃったよ・・・ログ番号ばっか増やしちゃって悪いけどw
ttp://www23.freeweb.ne.jp/family/d_i_y/cgi-bin/comedy/comedy_bbs.cgi
ttp://www23.freeweb.ne.jp/family/d_i_y/cgi-bin/comedy/comedy_bbs.log
>>313のは勘違いだから違うよ
ログの中でちゃんと親レスの後に子レスが来てるでしょ?
だから、削除処理周りの改造コードだけでも貼り付けてみ
いじってないなら問題あるわけないし
0329302
02/03/24 17:44ID:8BkMvwhrttp://www23.freeweb.ne.jp/family/d_i_y/cgi-bin/comedy/comedy_bbs.cgi
削除画面にtest1がありますよね?
あれがレスのレスです。
残ってしまっているような。
おれは「親レス書く→レス付ける→親レス消す→ちゃんと子レスごと消える」って
やっただけ
# あとチャット状態になってるからsage進行しない?
0331302
02/03/24 18:12ID:???そうだったんですか。
操作方法は
1.親記事を書く。
2.レスを付ける。
3.レスのレスを付ける。
4.レスのみ削除
でやってみました。
するとレスのレスだけ残ってしまいます。
私はレスを削除すると
レスのレスも同時に削除するように改造をしたいと考えています。
でき(略
# 了解しました。
0332やっと理解した
02/03/24 18:16ID:???@new=();
foreach $line (@lines) {
$dflag = 0;
($num,$k,$dt,$name,$email,$sub,$com,$url,$host,$pw,$col,$rt) = split(/<>/,$line);
# ↑変更
if ($FORM{'del'} eq "$dt") {
$dflag = 1;
$encode_pwd = $pw;
$del_num = $num;
if ($k eq '') { $oyaflag=1; }
}
elsif ($FORM{'del'} eq $rt) { # 以下3行、追加
$dflag = 1;
}
elsif ($oyaflag && $del_num eq "$k") {
$dflag = 1;
}
if ($dflag == 0) { push(@new,$line); }
}
0334324
02/03/24 18:41ID:???忙しいところすいませんが、さっきトリップ付けるのを依頼したものですけど、
メルアド欄を記入しないとトリップはおろか名前まで出てこなくなるみたいなんですが…
■ このスレッドは過去ログ倉庫に格納されています