トップページ⇒php
1001コメント363KB

スクリプト改造工房 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を用意すればなお良し)
を必ず明記しよう。
0240nobodyさん02/03/16 18:07ID:???
祭り(オプ
暖かくなってきたし。
0241nobodyさん02/03/16 18:08ID:???
KENT氏のYY-BBS系の掲示板は、
ログファイルを隠匿しても、ワード検索からIPアドレスで検索できる。

疑わしいヤツがあったらやってみ。
ワード検索を開いて、検索ワードにIPを指定。
DNSで逆引きできなかったから、210.160.204.152で記録されてるよ。
024224102/03/16 18:09ID:???
例
http://www.pweb.ne.jp/~fpm2/trip_yybbs/yybbs.cgi?mode=find&word=210.160.204.152
0243nobodyさん02/03/16 18:23ID:???
>>234
皮肉ですよ。それ。
0244nobodyさん02/03/16 18:30ID:???
>>243
皮肉ではないと。
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の方法で探して行けば、スグ見つかると思われ
0246nobodyさん02/03/16 18:37ID:???
>>245
それが終わったら、yybbs.cgiで検索だな
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」と表示されてしまいます・・
どこを直せばいいんでしょうか?
全てはここから始まった。
0248nobodyさん02/03/16 19:44ID:???
>>247
しつこいな。
0249nobodyさん02/03/16 19:46ID:???
>>248
うるさい◆0z.4Is5E
0250nobodyさん02/03/16 19:46ID:???
朝の答えは不満?
0251nobodyさん02/03/16 19:49ID:???
◆0z.4Is5E君は
夏希と言う名前でサイトを運営しないか_?
0252nobodyさん02/03/16 19:50ID:???
それとも、もうしてるのかな??
0253 ◆0z.4Is5E 02/03/16 20:00ID:???
どうでもいいがもうあきらめてくれ ┐(´ー`)┌
0254nobodyさん02/03/16 20:03ID:???
>>253
うわっ、また来た(w
よほど気になるんだな(w
マジレスするが、2ちゃんねらーは飽きっぽいぞ
そんなにビクビクするなよ
0255nobodyさん02/03/16 20:18ID:???
http://google.yahoo.co.jp/bin/query?p=210.160.204.152&n=10&hc=0&hs=0
0256nobodyさん02/03/16 20:19ID:???
>>254
ワロタ。こりゃ決定だな。
0257nobodyさん02/03/16 20:21ID:???
>>253
どうでもいいんだな?
0258nobodyさん02/03/16 20:27ID:y977yMpX
age
0259nobodyさん02/03/16 20:28ID:???
>>258=0z.4Is5E

>>256

何が決定なんだ?
0260nobodyさん02/03/16 20:33ID:???
259=0z.4Is5E
026125602/03/16 20:35ID:???
>>259
あーごめんごめん。
このスレに関係ない。
0262nobodyさん02/03/16 20:53ID:???
どうでもいいけどスレの主旨から外れすぎ。
0263nobodyさん02/03/17 13:56ID:???
厨以外の相談歓迎age!!
0264nobodyさん02/03/17 15:40ID:???
>>263 死ね。
0265nobodyさん02/03/17 17:44ID:Bnq/Fh92
PHP+MySqlなんですが、http://scripts.plebian.com/project/click+count
このclick countに二つフィールドを追加(num1、name1 数字は予約語避け)とし
URLとnum1が一致した場合に一つ足していくと言う風にしたいんです。
どなたか手ほどきよろしくお願いします。
(引数がcount.php?j&num1=http://plebian.comみたいになればなお嬉しいです)
026626502/03/17 22:56ID:rVGr2spx
えーと改造というか質問です。
2chのBBSは半角を使用しても文字化けがおこらないのに
なぜKENT氏のYYBBSなどは化けるのでしょうか?
いろいろな掲示板のソースを眺めてみたんですが
原因がわかりませんでした。
どなかご教授お願いします。
026726602/03/17 23:01ID:???
すみません。266でした。
0268nobodyさん02/03/17 23:08ID:???
2chはSJISの文字列しか来ないと仮定してデータのやり取りをしてる。
他のは知らんけどYYBBSはEUCとかJISが来ても自動的に変換する。
半角カナとかが入ってるとこの変換に失敗することがあるからダメなの。
026926602/03/17 23:08ID:???
簡単に解決しました。すみせんま。
027026602/03/17 23:10ID:???
すみせんま。×
まみません。○
>>268
ありがとうございます。
そこで今コンバータしている所をとったらできたのですが
何か問題がありますでしょうか?
027126602/03/17 23:10ID:???
まみません。×
すみません。○
はぁ。
0272nobodyさん02/03/17 23:16ID:???
JISやEUCで書き込む人がいたら化けるはず。
2chだと「ERROR、SJISで書いてちょ」とか言われてはじかれるけど。
0273nobodyさん02/03/18 00:07ID:???
ふーん。
コントロール文字の入力テスト



0274nobodyさん02/03/18 00:11ID:???
日本語EUC文字の入力テスト
写爵叱失、ホ偲漆柴A。ゥ」・・
0275nobodyさん02/03/18 00:13ID:???
JIS文字コードの入力テスト
(IJ]68$B$N(IC=D$B#o#k!)(B

0276nobodyさん02/03/18 00:14ID:???
>>275
・がESCか。わかりやすい。
0277nobodyさん02/03/18 00:17ID:???
Unicodeの入力テスト
Tn0畸5_P[k0・c0f0ス0・ケ0n0
0278nobodyさん02/03/18 03:18ID:???
他でやれ アフォ

>>266の誤字ワラタ つーかアフォ
0279nobodyさん02/03/18 13:38ID:???
引き続き、厨以外の相談歓迎age!!
0280nobodyさん02/03/18 16:42ID:???
話題になったばかりで申し訳ないのですが、
>>185ボクもトリップをつけてみました。
しかし、>>198に書かれてる通り、
書き込み後の名前をクッキーから読み込むのではなく、
変換されたトリップ(◆〜)をvalueにしてしまっています。

同じアドレスを再び開きなおすと、今度はクッキーを読み込み、
#aaaaになります。

これを防ぐために、書き込んだ後に1回リロードしたらいいのかな?
と素人考えで思いついたのですが、具体的にどうしたらいいのか思い当たりません。

どうすればいいのか、どなたかお願い致します。
028128002/03/18 16:43ID:8bBBEqYS
sageで質問してしまいました。
ageます
0282nobodyさん02/03/18 18:05ID:???
>>280
改造やめれば。
そんなスキルで改造されるスクリプトがかわいそう。
0283nobodyさん02/03/18 18:10ID:???
>>282
それを言っちゃ、このスレの存続に関わる(w
0284 ◆0z.4Is5E 02/03/18 19:54ID:???
>>280

変なやり方かも知れないけど自分の場合クッキーセットするところに

#トリップ機能
$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:???
◆0z.4Is5E が心を入れ替えてるぞ(w
0286nobodyさん02/03/19 12:05ID:???
>>284
>変なやり方かも知れないけど
たしかに変だ。
アホみたいだよ。
0287287 ◆JvhKfLlY 02/03/19 17:15ID:LQTKhYRQ
はじめまして。質問させてください。

http://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:???
>287
ざっと見たところ、以下の部分を書き替えるよろし!(行番号:更新コード)

[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 ";

火サス見ながら適当にやったけど、まあ だいたいはあっているということにしてください。

余談ですが、ソース中に「質問等はサポート掲示板まで。」とあったのですが、質問した?
028928802/03/19 22:31ID:???
追加しておきますが、「リモートホスト」を表示させたいようですが、
環境変数:REMOTE_HOST は、ない場合も考えられるので、勝手にこちらで
リモートIPアドレスに仕様変更しています。まずかった?
0290287 ◆JvhKfLlY 02/03/20 11:40ID:fM3Af/c8
>>288
ありがとうございました!!
今からやってみます。
また結果は報告します。

それから、サポートの方に以前質問したのですが、
「改造についての質問には答えられない」という返答でした・・・。
0291nobodyさん02/03/20 11:49ID:???
>290
キリがないからな。まぁ仕方ないこと。
0292287 ◆JvhKfLlY 02/03/20 11:57ID:fM3Af/c8
>>288
やってみたのですが、datファイルにはIPアドレスが記録されましたが
管理モードからは見る事ができませんでした・・・
0293287 ◆JvhKfLlY 02/03/20 12:04ID:???
と思ったら自分でなんとかなりました。
print "$username $ip ";
でなくて
print "$username ";
print "$ip ";
と書きかえたら表示されました。

有り難う御座いました。
0294nobodyさん02/03/20 20:19ID:???
>>293
簡単じゃん。
0295nobodyさん02/03/22 00:14ID:???
$thread->age();
0296nobodyさん02/03/22 19:20ID:3SNeop08
質問させて下さい

ttp://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:???
>296
sub pr_html{
print $bunsyo;
}
を
sub pr_html {
print "<TEXTAREA>$bunsyo</TEXTAREA>";
}
に変えるとどう?
029829602/03/22 20:23ID:3SNeop08
>297
できました。ありがとうございます。
0299nobodyさん02/03/22 21:00ID:???

ロリ会員制サイトの作り方教えて下さい。

HOGE.LRw World
http://www3.to/hogelrw
0300nobodyさん02/03/22 21:41ID:???
>>299
板違い
0301nobodyさん02/03/23 01:38ID:???
>>299
気違い
0302nobodyさん02/03/24 00:23ID:0C88n1+t
http://www23.freeweb.ne.jp/family/d_i_y/cgi-bin/comedy/comedy_bbs.cgi
上のスクリプトなんですがレスにレスが付けれるようになっているのですが、
レスを消すとレスのレスは表示されなくなるだけでログファイルに残っています。

そこで、レスのレスはレス記事の投稿時間に
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:KxmQdHuE
age
0304顔も名前も出さずに毎月100万円02/03/24 05:04ID:NXQRuNy9
    
Future-Web(フューチャーウェブ)登場
なんと10,000円単位の収入    

●10,000円単位の高収入
 1件につき最大10、000円の高額収入。月収100万円以上も可能。
●画期的なビジネス!
 インターネットを利用したこれまでにない斬新で画期的なビジネスです。
●誰でも出来ます!
 インターネットが出来る環境の方なら誰でも参加可能です。
●専門的な知識は一切不要!
 ビジネスに必要なツールはすべて当社で用意いたします。また、サポ
 ートも万全です。
●詳細は今すぐHPをご覧ください。
  http://www.future-web.tv/7823/
0305nobodyさん02/03/24 05:23ID:???
>302
すごいっ!
「レス」って何回言った?
0306nobodyさん02/03/24 10:38ID:TSVLSL9a
>>305
19回 あってる?
0307 02/03/24 13:10ID:???
>>302
日付($dt)と比べてどうするw

× if ($FORM{'del'} eq "$dt") {
○ if ($FORM{'del'} eq "$num") {

それにしても無駄が多そうなコードだな・・・
030830202/03/24 14:30ID:Cxn1YG42
>>307さんご回答ありがとうございます。
しかし$form{'del'}のvalueは日付になっているので
たぶんこのままでいいのかと思われます。。。
0309 02/03/24 14:44ID:???
よく見るとそうね・・・妙な設計
問題なのはログの順番か

× foreach $line (@lines) {
○ for ($i = $#lines; $i >= 0; $i--) {
   $line = $lines[$i];

reverseしてもいいし
0310nobodyさん02/03/24 15:01ID:Cxn1YG42
>>309さん(307さんでしょうか?)
やってみましたが500 Internal Server Errorが出てしまいました。
やはり無理なのでしょうか?
0311 02/03/24 15:34ID:???
この程度のことが無理なわけない
全角スペースまでコピーしちゃったとか?

ソースどっかに上げてくれればもっとハッキリするんだけど
031230202/03/24 15:43ID:8BkMvwhr
>>311
それは失礼しました。
ソースはこちらに上げておきました。
http://www.geocities.com/rfregar/comedy_bbs.txt
↑です。いかがでしょうか?


0313 02/03/24 15:51ID:???
reverse使って簡単にこれでどう?

## 削除キーによる記事削除 ##
@new=();
foreach $line (reverse(@lines)) {

    〜省略〜

}
reverse(@new);

要するにログ見れば分かるんだけど
親レスより前に子レスが保存されてるのにもかかわらず
"親レスが見つかった後に"子レスを探すから、当然見つからなくて
削除できないわけ

日付をキーにする理由がよくわからんが、そこからして設計ミスかも
031430202/03/24 16:00ID:8BkMvwhr
ログファイルはこれです。
http://www.geocities.com/rfregar/comedy_bbslog.txt
313の方法をもう一度やってみます。
031530202/03/24 16:07ID:8BkMvwhr
313の方法で試したのですが
レスを削除するとレスのレスも削除するようにはなりましたが、
次の書き込みで
ログが正しくありません。
(v2.5以前のログの場合は変換の必要があります)
と出てしまいます。
031630202/03/24 16:08ID:???
ログの更新処理でミスが出ていると思うのですが。
0317nobodyさん02/03/24 16:12ID:???
http://www.ace-cgi.jp/cgi/bbs/110/index.html
www.ace-cgi.jp/cgi/bbs/110/bbs1/bbs110.cgi

こいつにトリップ機能つけて欲しいんですけど。
031830202/03/24 16:15ID:???
>>317
それは私が引き受けますね。
031930202/03/24 16:17ID:???
タイプはどれですか?
0320nobodyさん02/03/24 16:18ID:???
>>318
ありがとうございます!
0321nobodyさん02/03/24 16:19ID:???
タイプは一番上のBBS(1)風でお願いします。
032230202/03/24 16:36ID:???
>>317
出来ました。
http://www.geocities.com/rfregar/bbs110.txt
これです。
032330202/03/24 16:39ID:???
そういえばタイプとか関係ありませんでした(笑
0324nobodyさん02/03/24 16:42ID:???
>>322
ほんとにありがとうございました。

>>323
そうでしたか。笑
0325 02/03/24 16:44ID:???
>>314
ダメだ・・・完全に寝ぼけてる。>>313は嘘w

このスクリプトに問題なくない?
本家で試したらきれいに消えたし
>>314が改造したソースを上げないと意味ないかも
032630202/03/24 16:49ID:???
>>324
いえいえお役に立ててなによりです。
>>325
改造したソースですか。
私も本家でやってみましたら出来ました。
あとは自分でやってみることにします。

ヒントをありがとうございました。
032730202/03/24 16:59ID:8BkMvwhr
>>325
すみません。
本家ならできるつもりでいたのですが、出来ませんでした。
## 削除キーによる記事削除 ##
@new=();
foreach $line (reverse(@lines)) {

〜省略〜

}
reverse(@new);
〜省略〜はどこからどこまでを略したのでしょうか?
0328 02/03/24 17:33ID:???
>>327
本家で出来るって
また試しちゃったよ・・・ログ番号ばっか増やしちゃって悪いけど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のは勘違いだから違うよ
ログの中でちゃんと親レスの後に子レスが来てるでしょ?

だから、削除処理周りの改造コードだけでも貼り付けてみ
いじってないなら問題あるわけないし
032930202/03/24 17:44ID:8BkMvwhr
>>328
ttp://www23.freeweb.ne.jp/family/d_i_y/cgi-bin/comedy/comedy_bbs.cgi
削除画面にtest1がありますよね?
あれがレスのレスです。

残ってしまっているような。
0330 02/03/24 17:55ID:???
これはどう操作した?
おれは「親レス書く→レス付ける→親レス消す→ちゃんと子レスごと消える」って
やっただけ

# あとチャット状態になってるからsage進行しない?
033130202/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); }
}
033330202/03/24 18:30ID:???
>>307
332の方法でうまく出来ました。
ありがとうございました。

033432402/03/24 18:41ID:???
>>302
忙しいところすいませんが、さっきトリップ付けるのを依頼したものですけど、
メルアド欄を記入しないとトリップはおろか名前まで出てこなくなるみたいなんですが…
033530202/03/24 18:49ID:???
>>324
はずかし〜。
小1時間まってくださいね。
マジでやりとげますので。
033632402/03/24 18:55ID:???
>>335
いえいえ、こちらこそ何度もすいません。
メルアド欄が書き込み必須項目になってたので、僕も最初気付きませんでいた。
033730202/03/24 18:56ID:???
>>324
このデザインの場合、メールアドレスを環境設定にて「入力必須項目」に指定して下さい。
と書いてありますけど。
033830202/03/24 18:57ID:???
これはどうすれば必須じゃなくなるのでしょうか?
033932402/03/24 18:58ID:???
アップロードしたあとで管理のところに
書き込み必須項目・・・name,content,mail
とかありましたけど。
■ このスレッドは過去ログ倉庫に格納されています