【 スクリプト改造工房 PART 5 】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/08/01 18:19ID:???#================================
# スレッドの説明
#================================
「スクリプトを改造したいけどやりかたわかんないよー」という人がいましたら
ここで聞いてください。ひょっとしたらアドバイス出来るかもしれません。
質問するときは以下の点に注意して書いて下さい
(1) そのスクリプトの内容と置いてある場所を明記する (txtファイルでUPすればなお良い)
(2) どんな風に改造して欲しいのか? (完成イメージHTMLを用意すればなお良し)
(3) 出来るだけ詳しく書くこと。少しは自分で考えること。できれば御礼も言ったほうが良い
※答えてくれないからといって逆ギレする厨はお断り
#================================
# 過去のスレッド
#================================
【PART1】行方不明
【PART2】http://pc.2ch.net/test/read.cgi/perl/986986227/
【PART3】http://pc.2ch.net/php/kako/988/988808396.html (HTML化済み)
0376nobodyさん
02/11/21 21:21ID:qQxlYNfmttp://genesis.vis.ne.jp/
こちらで配布されているCHAMELEON BOARDを、
レスが付いたら親記事ごと一番上に表示するようにしたいです。
お手数ですがご教授宜しくお願いいたします。
0378nobodyさん
02/11/22 17:52ID:JgWrpTOL設定変更用のシステムとか作ればいいんじゃないの?
ていうか、自分がそういうサービスを利用する上でほしい機能を作っていけばいいじゃん。
あと表示だけじゃなくメールで設定情報は送ってあげたほうが親切かもな。
0379376
02/11/22 22:42ID:???レスどうもです。
やっぱり駄目そうですか・・・。
素人考えで155行目からの
foreach (@lines) {
($no,$number,$title,$name,$mail,$url,$comment,$del,$date,$icon,$color) = split(/<>/,$_);
if ($number eq '0') { push(@line,"$_"); }
}
ここに追加すりゃなんとかなるかなと思い触ってたんですけど、
自分自身のperlの知識が浅すぎてどうにもならなくなってます。
0380nobodyさん
02/11/22 23:40ID:???それってさ、RES投稿を確認してRES対象の親記事のNOが付いている親記事自身とその親記事に今までに付いたRES記事を取り出してその一番下にRES投稿の記事をくっつければいいんじゃないの?
で、取り出すときに関係ない他の記事は@oldかなんかに突っ込んどいて保存する時に新記事郡、旧記事郡の順で書けば実質一番上に来た事になるけど、プログラム自体を見てない漏れには解りません。
まぁ頑張れや。
0382神さまおながいします
02/11/23 20:45ID:???ttp://you-make.com/Mz-World/MAL/cgi-bin/cf/kboard.cgi
このタイプなんですが、全体のフォントの書式を変える事は出来ないのでしょうか?
グーグルで色々調べたのですが、素人全開のため良く分かりませんでした・・。
どうか御知恵を貸して頂けないでしょうか?宜しくお願いします。
一応テキストにしてUPさせていただきました。
http://members.tripod.co.jp/kamisamaonagaisimasu/onagaisimasu.txt
0383nobodyさん
02/11/23 21:05ID:???フォントの書式ってなんだ?
とりあえず、下の方の
body{
scrollbar-3dlight-color:$form_color;
scrollbar-arrow-color:$form_color;
scrollbar-base-color:$bg_color;
scrollbar-darkshadow-color :$bg_color;
scrollbar-face-color:$bg_color;
scrollbar-highlight-color:$bg_color;
scrollbar-shadow-color:$form_color;
}
ってところに好きなスタイル追加してみ。
0384nobodyさん
02/11/23 22:07ID:QZcZ5A23http://www.yabbforum.com/
0385ありがとうございますた
02/11/23 22:24ID:???ありがとうございます。出来ました。
マジで感謝です。
これで何とか年を越せそうです。
0386nobodyさん
02/11/23 23:36ID:B4pvccDxの掲示板なのですが、HTML書き出しだとクッキーが使えないはずです。
でも、2chではHTML書き出しなのにクッキーが対応しています。
どうやって、対応させてるのでしょうか?
対応させる方法を教えてください。お願いいたします。
0387nobodyさん
02/11/24 02:23ID:DDSdv1W7javascript
よって板違い。ソースでも読んで来い。
0388nobodyさん
02/11/24 09:25ID:???いま使っているツリー型掲示板のレスがつくと記事を上にトップに上がる機能は
やはり掲示板によってプログラムは違ってくるのでしょうか?
共通のルーチンなどはないのでしょうか?
0392nobodyさん
02/11/24 10:10ID:???>>388
&time;
$match=0;
@new2=();
@tmp=();
foreach (@lines) {
($kno,$knumber) = split(/<>/);
if ($number eq "$kno") {
$match=1;
push(@new2,$_);
}
elsif ($number eq "$knumber") {
push(@new2,$_);
}
0393nobodyさん
02/11/24 10:10ID:???$match=2;
push(@new2,"$no<>$number<>$title<>$name<>$mail<>$url<>$comment<>$del<>$date<>$icon<>$color<>\n");
push(@tmp,$_);
}
else { push(@tmp,$_); }
}
if ($match == 1) {
push(@new2,"$no<>$number<>$title<>$name<>$mail<>$url<>$comment<>$del<>$date<>$icon<>$color<>\n");
}
push(@new2,@tmp);
open(LOG,">$log");
print LOG @new2;
close(LOG);
if (-e $lockf) { unlink($lockf); }
&management;
YYBBSからコピペ。これで一応できる。
0394nobodyさん
02/11/24 10:11ID:???↓
($kno,$knumber,$ktitle,$kname,$kmail,$kurl,$kcomment,$kdel,$kdate,$kicon,$kcolor) = split(/<>/,$lines[1]);
0396376
02/11/24 23:33ID:???無知な私にご教授ありかとうございます。
今すぐにでも試したいのですが、前の書き込みの後に急遽入院しちゃいまして(汗
退院か外泊時にでも試したいと思います。ありがとうございました。
0397397
02/11/25 02:14ID:???スクリプトの改造についてお伺いします。(ファイルに直リンできません(^^;)
訪問時にHTTP_USER_AGENTに特定の文字列が入っていると指定のページに飛ばす
(たとえば"MSIE 4.0"を含む場合./deny.htmlに飛ばす)にはどうしたらいいでしょうか?
0398nobodyさん
02/11/25 09:35ID:TeZapJEOスクリプトいじらんでも.htaccess使えばいい。
0399397
02/11/25 15:22ID:???ありがとうございます・・・しかし残念ながらうちのサーバーでは
SetEnvIfとErrorDocumentが使えないのでこういうことはできません。
やはりスクリプトそのもで制限するしかないんです。
SetEnvIf User-Agent "J-PHONE" UA
SetEnvIf User-Agent "DoCoMo" UA
Order Allow,Deny
Allow from all
Deny from env=UA
ErrorDocument 403 /~testtest/aaa/403.html
0400初心者
02/11/25 17:49ID:iBc9Rrdbランキングサイトを運営しているのですが、総合ランキング
のカテゴリを作りたいのですがどの様に各々のランキング
から引き抜いて総合ランキングが出来るのか分かりません。
何卒お教えて下さい。お願い致します。
0401nobodyさん
02/11/25 18:34ID:???0402nobodyさん
02/11/25 21:27ID:???による記事LINKをYY-BOARDに取り付けたいのですが
KENT-WEBのwebpatioを参考にやってみましたが
変数の違い等々より挫折・・。
良かったら、教えていただきたいのですが
判るかた。宜しくお願いします。
0403nobodyさん
02/11/25 22:07ID:rY+1ONaWで配布してる掲示板なのですが、
サンプルでは、『全部読む 最新50 1-100 板のトップ リロード』って表示されてますが、
自分で設置すると『全部読む 最新50 1-100 板のトップ リロード』が表示されません。
0404nobodyさん
02/11/25 22:10ID:???0405nobodyさん
02/11/26 19:24ID:???のアプロダをHTML書き出しにしたいのですが、どうすればできるのでしょうか?
0407nobodyさん
02/11/26 23:57ID:GahKTPLAこれをWindowsベースのApache1.3+ActivePerlで動かしていたのですが、
Cookieが文字化けしてしまいます。
超初心者ですいません
改善できませんでしょうか、お手数ですがよろしくお願いします。
0408408
02/11/26 23:58ID:???http://herz.pobox.ne.jp/cyder/doc/script/ori04/top.html
こちらでした
0409親切な人
02/11/27 00:00ID:???ヤフーオークションで、凄い人気商品、発見!!!
プランテック製の「 RX-2000V 」を改造済み
にした、アイティーエス製の「 RX-2000V 」↓
http://user.auctions.yahoo.co.jp/jp/user/neo_uuronntya#.2ch.net/
ヤフーオークション内では、現在、このオークション
の話題で、持ちきりです。
ヤフー ID の無い方は、下記のホームページから、
購入出来る様です↓
http://www.h5.dion.ne.jp/~gekitoku/#.2ch.net/
0410nobodyさん
02/11/27 01:11ID:gzMOh9EH行数で区切ってdat化するのがどうも気持ち悪いんだよね。
スレッド数(たとえば10スレッド)で1datって感じに出来ないかな。
要するにこの部分の$log_file(行数)を別のものに置き換えればいいと思うんだけど。
# 規定の行数をオーバーすると次ファイルを自動生成
if ($#past > $log_line) {
$past_flag=1;
最近ようやくほんの少しづつ読めてきたかなぁという程度で、
じゃあ何と置き換えるのかって考えると混乱する一方。
なにかアイディアがあったら協力願います。
0411nobodyさん
02/11/27 01:24ID:gzMOh9EHなんとか自力で改造できたのでご報告。
シンプルなaska.cgiで実験を繰り返してたらなんとかなったよ。
configに
$now = time;
$newtime = '3600'; #1時間の場合
$newimg = '<img src=./gazou/new.gif>';
を書いて、
if ($newtime >= ($now - $xtime)) { $vnewimg = $newimg } else { $vnewimg = '' }
を記事の読み込み部分の$urlの処理の下あたりに入れる。
それでsplit(/<>/);のところに $xtime をやっぱり $url, の後ろに割り込ませておく。
そしたら新着画像を表示させたいところに $vnewimg を書き入れる。
sub get_time の一番最後に $xtime = $now; を入れる。
あとは書き込み部分でやっぱりsplit(/<>/)で見当をつけて $xtime を割り込ませる。
なんとなく並んでる変数とログファイルの中身を見比べてると、
あ、ここに割り込ませればいいのかな?ってカンが働くはず。
カナーリ初心者の俺が言うんだから間違いなし!
つーことで、レスくれた人たちありがとうでした。
0412nobodyさん
02/11/27 19:30ID:BLcNdMdKhttp://www.kent-web.com/bbs/joyful.html
添付Fileを親記事は必須にして、返信は添付ファイル無しでもOK
という風にするにはどうすればいいでしょうか?
0413初心者王
02/11/27 21:42ID:???二重投稿禁止にしたいのですが、改造方法を教えて下さい。
http://watson.milkcafe.to/download/dl2.html
KENTさんのJoyful Noteの改造版で画像アップロードも可能なので
出来れば画像の多重投稿も制限したいのですが><
贅沢はいいません。。。レスの多重投稿制限を〜〜ぜひぃ( ´Д⊂ヽ
0414初心者王413
02/11/28 07:29ID:???KENTさんのCGI改造配布サイトに丁度良いスクリプトがあったので拝借。
いちお報告すると↓こんなかんじでバッチリでした。
#----------------#
# ログ書込処理 #
#----------------#
この項目の# 連続投稿チェックの次に
# 二重投稿チェック
$flag=0;
foreach (@lines) {
($no2,$reno2,$date2,$name2,$mail2,$sub2,$com2) = split(/<>/);
if ($in{'name'} eq $name2 && $in{'comment'} eq $com2) {
$flag=1; last;
}
}
if ($flag) { &error("二重投稿です。蹴りますが何か?"); }
0415nobodyさん
02/11/28 11:32ID:???ログ全部から多重チェックするのか?
for (@lines){
my(undef,undef,undef,$name,undef,undef,$com) = split(/<>/);
&error("二重投稿です。初心者の癖に浮き過ぎです。") if($in{'name'} eq $name && $in{'comment'} eq $com);
}
0417初心者王413
02/11/28 16:05ID:???0418nobodyさん
02/12/01 18:39ID:???精度は下がるけど配列の先頭の要素だけで検討するのがいいかと思ったり。
ログが多くなると死ねます。
my(undef,undef,undef,$name,undef,undef,$com) = split(/<>/,$lines[0]);
if($in{'name'} eq $name && $in{'comment'} eq $com){&error("二重投稿イッテヨシ");}
0419nobodyさん
02/12/04 03:50ID:???どうやって足せばいいんでしょうか?
頭と最新5レスを表示したいのですが
0420nobodyさん
02/12/06 12:27ID:q7PjCrztサーバに保存するファイル名に、投稿された時間を反映させるには(img200212061220.jpgのように)、
複雑な改造が必要ですか?
0421nobodyさん
02/12/06 16:48ID:???ファイル名に反映するだけなら。
多分記事のデータにファイル名も保存しているだろうから
つじつまあわせるようにしないといけないけど。
どの程度をもって複雑と言っているのかわからんし。
0422nobodyさん
02/12/06 16:55ID:lbFI8Saaなぜか特定ディレクトリ内のファイルが動かなくなりました。
どなたか動くように改善していただけませんですか?
http://www.onpuch.jp/files/onpuch.zip ←スクリプトはここからダウソできます
0424nobodyさん
02/12/06 17:11ID:???日本人の荒しに2byte文字のAA等を貼り付けられて
困っています。投稿から2byte文字を確実に蹴る正規表現って
どうやればいいんでしょうか。スペースとか"'などの記号
は使えるようにしておきたいです。
0425nobodyさん
02/12/06 17:19ID:???う・・・・
ちなみに、そのスクリプトの作者に聞いたところ、「サポートは一切しません」と返されますた。
今までも度々動かなくなることはあったけど、そん時は自分で何とかしてきました。
でも今回ばかりはまじでヤバイっす。
1point.jpとxreaではもうぜんぜん駄目。
0429nobodyさん
02/12/06 18:11ID:???http://www.din.or.jp/~ohzaki/perl.htm#JP_Exist
0430nobodyさん
02/12/06 18:18ID:???やっぱり厨(;´Д`)
http://pc.2ch.net/test/read.cgi/php/1039165841/l50
0431nobodyさん
02/12/06 18:51ID:???糞単発してるよ・・・最近カスが多いね(´Д`;)
0433nobodyさん
02/12/06 21:21ID:???0434nobodyさん
02/12/07 10:46ID:AGlpmR8Q0435nobodyさん
02/12/07 11:05ID:???0436nobodyさん
02/12/07 11:57ID:???0437nobodyさん
02/12/07 23:35ID:???http://www.aikis.or.jp/~s-suzuki/cgilabo/
一応センタリング、スケジュール追加ボタンの追加はできたのですが、
2つ目の予定を自動で改行と始めに入ってしまう半角スペースの削除ができません。
0438nobodyさん
02/12/08 22:03ID:???素人の付け焼刃では上手く動作しませんでつ。。
宜しければご教授お願い致します。
ttp://www.kokobbs.com/ahhan/
0440nobodyさん
02/12/08 22:34ID:???以前やってみたんですが、
スレ立てフォーム周りにアイコン部分を埋めてみるだけで宜しいのでしょうか。。
色々とスクリプト弄ってみたんですが力の限界です(w
後一歩のところまでは来てるヨカンがするのですが。。
0441nobodyさん
02/12/09 01:01ID:???あとはsplitとpushの部分に$iconを入れないとだめだろう。
全く見てないので全くあてずっぽうだけど。
その一山を超えるとぐっと面白くなるから、がんばってみ。
0442nobodyさん
02/12/09 17:14ID:9ucXAnkGサイト登録時に追加でラジオボタンで選択したものをランキングに画像表示
させるようにしたいのですが、(Yomiサーチでいうと相互リンクの選択
みたいなかんじ)どのようにしたら良いのかお教え下さい。
また、ランキングページの左側にカテゴリーのテーブルをおきたいのですが
何度か挑戦してみましたが、うまくいきませんでした。よろしければ、
ご教授お願い致します。
0443440
02/12/09 21:50ID:???う〜ん・・・プログラムというのは難しいです。。
付け加え方を根本から間違ってるかもしれないです(w
0444nobodyさん
02/12/09 22:32ID:???黙って鮭定でも食ってろ!
0446443
02/12/12 22:57ID:???素人が簡単に改造できるようなものじゃないですねぇ(笑)
スッパリとあきらめてver.up待ちます。
ご助言くださった方ご迷惑をおかけ致しますた〜
Current List: 1 - 3
Page: [1] [2] [3]
の"[1] [2] [3]"の部分を
<< Previous | Next >>
などと改造する方法を教えてください。
0448447
02/12/14 06:45ID:???max = get_maxresult();
whence = get_listwhence();
for (i = 0; i < PAGE_MAX; i++) {
if (i * max >= n)
break;
if (is_htmlmode()) {
if (i * max != whence) {
printf("<a href=\"");
fputs(dn, stdout);
fputc('?', stdout);
print_query(qs, i * max);
printf("\">");
} else {
printf("<strong>");
}
}
printf("[%d]", i + 1);
if (is_htmlmode()) {
if (i * max != whence) {
printf("</A> ");
} else
printf("</strong> ");
}
if (is_allresult()) {
break;
}
}
}
このフォームを使うと添付ファイルも送信可能のようですが
sendmail未対応のサーバーの場合送信不可能ですよね。
なので一時記録用フォルダーにファイルを常時残しておいて
時々FTPでDLしたり出来ないかと思ってます。
もしご教授頂ける方居ましたらお願いします。
0450nobodyさん
02/12/16 22:07ID:tbIe581Bメッセージのところも改行が「・」で、「>」が&gt;になったりしてしまいます。
どこをどう直すべきでしょうか?
>>451がソースです
0451nobodyさん
02/12/16 22:07ID:tbIe581B#------------------メール送信機能-------------------------#
open(MAIL,"| /usr/sbin/sendmail -t") || &error("送信できません。");
print MAIL <<"_MAIL_";
From: xxx\@xx.xx
To: xxxxxx\@xxxx.ne.jp
MIME-Version: 1.0
Subject: 投稿がありました
X-Mailer: Sendmail
Content-type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit
投稿がありました。
名前:$name
題名:$subject
メールアドレス:$mail
ホームページ:$url
メッセージ:$msg
---------------------------------------
投稿者情報
IP:$ip
ホスト:$host
---------------------------------------
_MAIL_
close(MAIL);
#--------------------メール送信機能------------------------#
よろしくお願いします。
0452nobodyさん
02/12/16 22:28ID:tbIe581Bメッセージのところも改行が「・」で、「>」が&gt;になったりしてしまいます。
どこをどう直すべきでしょうか?
>>750がソースです
0453nobodyさん
02/12/16 22:30ID:tbIe581B2重投稿スマソ
0456yani ◆saNSktNEdQ
02/12/16 23:11ID:/GE+8J7v思うんだがどうだろう。
0457451
02/12/16 23:33ID:tbIe581B教えてください
0458455
02/12/16 23:43ID:???どっか、メーラー機能付きのフリーの掲示板かなんかさがしてきて、
それがどんな風に送ってるのか調べてみろって。
ここはアドバイスをする場所であって、回答そのものを書く場所じゃあない。
0459yani ◆saNSktNEdQ
02/12/16 23:50ID:/GE+8J7v>>451
(1)スクリプト中の日本語がJISになってないか、
(2)またはsendmailが妙な面倒を見てくれているかどちらか?
いずれにせよ、個人的にはMIMEを宣言するならsubjectもBASE64エンコードするのが筋だと思う。
(1)だったらEUCで書いて、nkfとか、jcode.pl, Jcode.pmを使うのがいいのかな。
5.8だと pragma encodingがサポートされているけど。
(2)だったら、本文もヘッダもBASE64エンコードか。
0460451
02/12/17 23:50ID:gzYXlHgBEUCはエディタを持ってないんで…
BASE64等聞いたことはあるんですがやり方がよくわからんのです。
0462451
02/12/18 00:28ID:ZpDIFVLh変数が入り組んでてわからんのです
0464マリモーマ ◆jbBCmetwgw
02/12/18 06:29ID:rjGaYRoUsub send{
if($mailon == 0){return;}
$m_url = "アドレス http://" . $url;
$m_cn = "件名" . $ken;
$m_name = "名前 " . $name;
$m_com = "コメント " . $te . "<br>" . $te2 . "<br>" . $te3;
$m_aiu = "アイコン" . $aiu;
&jcode'convert(*m_name,'jis');
&jcode'convert(*m_url,'jis');
&jcode'convert(*m_cn,'jis');
&jcode'convert(*m_com,'jis');
&jcode'convert(*m_aiu,'jis');
$mail_head .= "プログラム名 :掲示板\n";
$mail_head .= "送信日 :$date\n";
$mail_head .= "IPアドレス :$ENV{'REMOTE_ADDR'}\n";
$contents .= "名前 :$m_name";
$contents .= "メッセージ :\n\n$m_com\n";
open(MAIL,"| $sendmail $mail") || &error("メールが送れません");
print MAIL "From: $FORM{ma}\n";
print MAIL "Subject: $m_cn\n";
print MAIL "\n$m_name\n";
print MAIL "\n$m_url\n";
print MAIL "\n$m_aiu\n";
print MAIL "\n$m_com\n";
close(MAIL);
}
0465451
02/12/18 21:21ID:ZpDIFVLh$m_name = "名前 " . $name; のように??
KENTのCGIですか・・・
JCODEなどの使い方がわからないんですよね・・
0466マリモーマ
02/12/19 07:29ID:82rcnvnesendmail用に jcode.plで 変換してるだけだよ
0468nobodyさん
02/12/20 03:20ID:fpLfXsGv>>310さんと同じKENTWEBさんのchat roboの改造なんですが、
このチャットは2人以上が入室するとロボットが黙るようになっています。
それを、2人以上入室しても喋るようにはできないでしょうか?
概要 www.kent-web.com/chat/robo.html
微妙な改造をしていますが、cgiのテキストファイル
http://jadore.jp/~sermot/robo.txt
よろしくおねがいします。
0469nobodyさん
02/12/20 03:34ID:XVaLbHjJ# 在室者が1名のとき、又は名前を呼ばれた時に返答する
の直下のifブロックを撤去して
$regist_flag=1;
にしたらいいんじゃない?
0470マリモーマ
02/12/20 07:04ID:rQl0YSG9まだ初心者なもんで あまりわかってないんだ
0471nobodyさん
02/12/20 11:35ID:sQRsVps7その戦いの歴史は、まさに近代兵器の見本市だった
田代砲にはじまる数々のスクリプト兵器を経て到達した、97式アラファトマシンガン
これはまさに最終兵器として、猛威を振るった
しかし、ついにTIMEはこれらの兵器全てを完膚無きまでに無効とする
パプリカの設置に成功した
武器を奪われた我々に残されたもの ・・・それは「チョップ!」
手動で一撃一撃叩き込む「チョップ!!」地味で威力も極限まで小さな「チョップ!!!」
ただそれだけと、なってしまった!
だが、チョップといえども決してバカには出来ないということを!
そしてこのような手段にまで出たTIMEを今一度!
我が2ちゃんねらーの総意を込めたチョップを以て、叩き壊したい!!
有志たちの参戦を、ひとりでも多くの戦士の挑戦を待つ!!!
http://live.2ch.net/test/read.cgi/festival/1040349157/
0472468
02/12/20 13:35ID:fpLfXsGvごめんなさい、どうも505エラーが出ます。
# 在室者が1名のとき、又は名前を呼ばれた時に返答する
if ($_[0] eq "comment" && $now_member <= 1) { $regist_flag=1; }
の、 if ($_[0] eq "comment" && $now_member <= 1) を
削除するということでしょうか?
0473nobodyさん
02/12/20 13:57ID:ehxtG+cI&& $now_member <= 1
を取れ。それ以上は君には無理っぽい。
0474nobodyさん
02/12/20 13:58ID:bSnvNs3jif ($_[0] eq "comment" && $now_member <= 100) { $regist_flag=1; }
ここの数字大きくするだけでもいいと思われ。 ↑
0475468
02/12/20 14:37ID:fpLfXsGv474さんの方法でやってみました。うまくいったくさいです。
無知で申し訳ないです……ありがとうございました。
■ このスレッドは過去ログ倉庫に格納されています