スクリプト改造工房 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を用意すればなお良し)
を必ず明記しよう。
0478474
02/04/08 23:08ID:5LgVRzDyどういうことですか?
0480nobodyさん
02/04/09 18:23ID:10B4imLY$ref = $ENV{'HTTP_REFERER'};
if ($ref eq "") { print"氏ねやカス!"\n; }
でどう?
0481nobodyさん
02/04/09 18:24ID:???$ref = $ENV{'HTTP_REFERER'};
if ($ref eq "") { print"氏ねやカス!\n"; }
0482age
02/04/10 21:49ID:???0483質問すんません
02/04/10 21:51ID:???0486nobodyさん
02/04/11 13:44ID:???この掲示板にて
レスが一定数を超えると
返信フォームでもレスがつけられないようにし、
なおかつお知らせが出るようにしたいです。
現状
http://members.tripod.co.jp/fukudakanbouchoukan/a.html
↓
このような感じにしたいです。
http://members.tripod.co.jp/fukudakanbouchoukan/b.html
お願いします。
0487nobodyさん
02/04/11 16:55ID:???設定項目の適当なところに追加
# 1スレッドの最大記事数
$res_max = 10;
670行目以降にある返信フォームのとこをいじる
# 関連記事出力
print "- 以下は、記事NO. <B>$in{'no'}</B> に関する<a href='#RES'>返信フォーム</a>です -<hr>\n";
$count=0; # ***** この行追加 *****
while (<IN>) {
($no,$reno,$date,$name,$mail,$sub,$com,$url) = split(/<>/);
(このへん省略)
print "<font color=$sub_color><b>$sub</b></font> 投稿者:<b>$name</b> 投稿日:$date $url <font color=$sub_color>No\.$no</font><br>\n";
print "<blockquote>$com</blockquote><hr>\n";
++$count; # ***** この行追加 *****
}
}
close(IN);
続きは >>488
0488nobodyさん
02/04/11 16:56ID:???# タイトル名
if ($resub !~ /^Re\:/) { $resub = "Re\: $resub"; }
# ***** ↓ここから *****
if ( $count >= $res_max ) {
print "返信が多くなってきたため、新規投稿で新スレを建ててください。<br><br>\n";
print "<a href=\"$script\">掲示板に戻る</a>\n";
} else {
# ***** ↑ここまで追加 *****
print <<"EOM";
<a name="RES"></a>
print "</td></tr></table></form>\n";
print "</blockquote>\n</body>\n</html>\n";
} # ***** この行追加 *****
exit;
}
#----------------#
# デコード処理 #
#----------------#
おわり
0490nobodyさん
02/04/12 17:54ID:Rf4zpV9vhttp://tackysroom.com/sample/smp_tackynote992.cgi
上記日記CGIを、特定の記事数ごとに表示するにはどうしたらよいでしょうか?
設定では月ごとか1日のみかどちらかしか選択できなくて、
1日ごとだと表示が面倒で、月ごとの表示だと重くなってしまうので…
ソースは
http://moe43.tripod.co.jp/cgi/tackynote.txt
です。どなたかよろしければ知恵を貸してやって下さい。
0491nobodyさん
02/04/12 21:43ID:???http://tackysroom.com/sample/smp_tackynotesp.cgi
一週間づつの表示ができる新しいVersionのがあるみたいですけど
これじゃダメなんですか?
0492490
02/04/12 22:29ID:???完全にこちらのミスです。
お手数をおかけして本当に申し訳ありませんでした。
わざわざ教えて下さってありがとうございました。
これからは初歩的(と言うのもバカバカしい…)ミスをしないように気を付けます…
0493nobodyさん
02/04/12 23:00ID:OHj6Fi0Khttp://sirizamurai.s4.xrea.com/sample/r_board.cgi
ここで配布されているr_boardというスレッドフロート式掲示板なのですが
レスをした後にスレのトップではなく掲示板のトップへ戻るように改造できないでしょうか?
0494nobodyさん
02/04/13 06:57ID:a/Dbri8Bワードパッドで開くような、でかいスクリプトを改造する気がしない
#---------------------------------------------------------------main
&decode;
&count;
if (-e "$mainte") { &error('メンテナンス中です。しばらくお待ちください。'); }
if ($in{'command'} eq "write") { &write; }
elsif ($in{'command'} eq "reswrite") { &reswrite; }
elsif ($in{'command'} eq "remove") { &remove; }
elsif ($in{'command'} eq "rjump" ) { &rjump; }
elsif ($in{'command'} eq "download") { &download; }
else { &html; }
exit;
#---------------------------------------------------------------html
を、どうにかしたらいいんじゃない?
0495nobodyさん
02/04/13 07:54ID:???そんなもん、レスの処理の後に Location で飛ばせばいいだけのことだろ。
>494
きみはプログラミングにメモ帳つかってる初心者だろ。
0497nobodyさん
02/04/13 14:44ID:VMPYMAwGが、フォームに入力した日本語が、どうしてもうまく表示されません。
cgi-lib.plというのが悪いような気がするのですが…。
これって、定番のライブラリですが、
うまく日本語化する方法はないのでしょうか?
やってることは、
require './jcode.pl';
と書いて、
&ReadParse(cgi-binでやる)
の後とかその中とかに、
&jcode'convert(*val,'sjis');
と書いたり、いろいろ試したのですが、ダメ。
1週間、ずーといろいろやったのですが、
どうしても、うまく行きません。
0498nobodyさん
02/04/13 14:46ID:???>>1
なお、質問するときは
1)そのスクリプトのある場所(URL必須、拡張子".txt"でアップすればなお良し)
2)どんな風に改造して欲しいのか? (完成イメージHTMLを用意すればなお良し)
を必ず明記しよう。
0499nobodyさん
02/04/13 14:50ID:VMPYMAwGcgi-lib.plというのは定番ライブラリで、
定番的処理の方法があるんじゃないかと
思って、質問しているのですが…。
どんなスクリプトにも対応できる
標準的なやり方ってないんですか?
0500nobodyさん
02/04/13 14:57ID:VMPYMAwGダメなものですか?
# Convert %XX from hex numbers to alphanumeric
$key =~ s/%([A-Fa-f0-9]{2})/pack("c",hex($1))/ge;
$val =~ s/%([A-Fa-f0-9]{2})/pack("c",hex($1))/ge;
# 次の1行追加
&jcode'convert(*val,'sjis');
# Associate key and value
$in{$key} .= "\0" if (defined($in{$key})); # \0 is the multiple separator
$in{$key} .= $val;
0502nobodyさん
02/04/13 15:44ID:???0503501
02/04/13 16:14ID:???ちなみに495は俺じゃないぞ
0504nobodyさん
02/04/13 17:40ID:???cgi-lib.plって初めて知ったよ。
で、作者様のページのサンプル
http://cgi-lib.berkeley.edu/ex/simple-form.html
で、ちゃんと日本語入力できて表示できてるんだけど・・・
やっぱおまえさんが自力で書いた部分に問題があるんじゃないかと。
0506500
02/04/13 18:24ID:VMPYMAwGたしかに、表示されました。
ということは、jcode.plは
なんのためにあるんですか?
0508nobodyさん
02/04/13 19:10ID:???r_boardの件
801行の
$in{'command'} = 'read';
を削除です
>497
r_boardのデコードサブルーチン
sub decode {
my ($name,$value);
&ReadParse;
while (($name,$value) = each %in) {
if ($name ne "file") {
&jcode'convert(*value, "sjis", "", "z");
$value =~ s/\&/&/g;
$value =~ s/</</g;
$value =~ s/>/>/g;
$value =~ s/\"/"/g;
$value =~ s/\r\n/<BR>/g;
$value =~ s/\r|\n/<BR>/g;
}
$in{$name} = $value;
}
}
0509nobodyさん
02/04/14 02:16ID:???0510500
02/04/14 04:56ID:ej0dAZG8レスありがとうございます。
初心者なもんで、苦労しましたが、
日本語がうまく表示されない原因は他にありました。
(メタキャラクタをはじくようなサブルーチンがあった。
これで1週間以上ムダにした)
なお、504さんがいうように、
jcode.plなしでも日本語表示できるのですが、
これは、jcode.plは使わなくてもいいということでしょうか?
0513nobodyさん
02/04/14 12:42ID:???無視できない奴
0514nobodyさん
02/04/14 14:15ID:IPbdNQdj丸見えなんですが。
0516nobodyさん
02/04/14 17:05ID:???DBのフィールドが数値型の場合はどこを変更すればいいですか?
http://www.lint.ne.jp/~tomo/asp/lint.ne.jp/dbacc/addasp.htm
0520nobodyさん
02/04/14 19:13ID:SYUFOo/Djcode.plなんかいらないよね〜
あれ、なんで必要なのか知ってる人いる?
0521520
02/04/14 19:14ID:SYUFOo/D0522500
02/04/14 21:04ID:ej0dAZG8ほんとにいらないの?
でも、なんか心配。
0523507
02/04/14 21:38ID:???ブラウザから入力された漢字コード(IEならSJISかな。i-modeは
確実にSJIS)を、変換したい(UNIXなら大抵EUC。メールに入れて
送る時はJIS)ときに使うだけで、変換しないなら要らないよ。
0524ほほ
02/04/15 09:53ID:7Ngfgl5Fhttp://www.kent-web.com/bbs/sample/light.cgi
このcgiに
http://yassu.no-ip.com/haikyo/cgi-bin/log.cgi?room=001
のようにURL指定すると画像張り付くようなことがしたいです。
どのようなソースをどこに付け足せばよいですか教えてください。
漏れがどうにかしてやる!
待ってろ!
デコード処理の近くにある。まず変数を増やせ
$gazou = $FORM{'gazou'};
記事んとこをこうしろ。
print "<IMG SRC=\"$gazou\"><BR><blockquote>$comment<P>$url</blockquote><hr>\n";
URL欄のしたに画像フォームを追加。
<tr><td nowrap><b>画像</b></td>
<td><input type=text size="$url_wid" name=gazou value="http://"></td></tr>
これでどうだ?
0529ほほ
02/04/15 18:38ID:QFUtae+hレスありがとうございます。
>デコード処理の近くにある。まず変数を増やせ
デコード処理がどこだか良くわかりません。
>記事んとこをこうしろ
記事のところというのもどこだかわかりませんでした。
結局わかったのは最後だけです。
前後の行なども書き加えてください。よろしくお願いします。
0531525
02/04/15 21:31ID:rpk7woSOちょっと間違いがあったようです
このままだとエラーが発生することが判明しました。
あと2,3日余裕をくだされば完璧に仕上げさせていただきます。
0532ほほ
02/04/15 22:13ID:5SzFKIQt2.3日でもかまいません。本読んでるんですけど、そこまでたどり着けませんので
よろしくお願いします。
0533525 ◆l0DtPXyM
02/04/16 18:00ID:???出来ました。
http://okunao.tripod.co.jp/light.txt
light.txtをlight.cgiにリネームしてください。
0534ほほ
02/04/16 20:39ID:vj/x5Q1yCGI実行してみました。ビジュアルはほぼ希望どうりです。
ありがとうございます。
あともう少しわがままを聞いてください。
コメントをスペース1っこで画像を貼り付けていったときに
2重投稿エラーが出ると思います。貼り付けた画像を元に
2重投稿エラーを避ける事はできますか?
あとlight.cgiは投稿した後リセット押さないでブラウザでリロードすると
すぐに2重投稿エラーになってしまいます。このへんも回避できますか?
もし、時間があるようでしたらよろしくお願いします。
0536ほほ
02/04/16 21:38ID:B2D4dIFXはい。毎回違う画像を貼ります。
img src っていうのを毎回書くのが面倒なので
できれば画像のとこはURLだけ書き込めばと思ってます。
0537525 ◆l0DtPXyM
02/04/16 21:58ID:???<IMG SRC="***">は書かなくてもURLだけで出来るはずですが、、、
それとご希望の修正をして再うpしました。
そちらでテスト願います。
0538525 ◆l0DtPXyM
02/04/16 21:59ID:???http://okunao.tripod.co.jp/
の二つのファイルを***.cgiにリネームしてみてください。
0539525 ◆l0DtPXyM
02/04/16 22:12ID:???名前が過去と一緒だと再投稿できないことが判明しました。
これより先はちょっと私には改造できないかもしれません。
ここまでが私の限界です。
0540ほほ
02/04/16 23:30ID:ji+16LdMやって見ました
ブラウザ窓2つ開けて交互に貼り付けて交互に
リロードすると前貼ったやつを貼ってしまいます。
とりあえず当初の希望はできましたのでありがとうございました。
お時間がありましたら、よろしくお願いします。
0542nobodyさん
02/04/17 02:23ID:???それは回避不可。
掲示板自身にリンクはって「リロード」とか書いときなさい。
0544nobodyさん
02/04/17 19:35ID:pUwmOFzdTBOARD004 と TBOARD006 を使っているのですが・・・
鯖屋さんから『CPU占有率90%Over』と言われCGIの停止命令をうけました。
数種類のCGIチェッカーでチェックしてみたのですが、これといって問題はありませんでした。
デザイン/機能的にお気に入りのCGIなので・・・
CPU占有率が軽減できるように最適化(と言うんですかね?)していただけない
ものでしょうか?
よろしくお願いします。
0545nobodyさん
02/04/17 19:48ID:???余談だけど、UNIXでアクティブなプロセスが1こしか無い場合、
そのプロセスのCPU占有率は限りなく100%に近づくものです。
また、複数のプロセスがアクティブな場合、特別なことをしなければ、
各プロセスが均等に占有します。
なので、CPU占有率90%Overと言われても、「あたりまえじゃ!」としか
言いようがありません。鯖変えたほうがいいかも。
0546544
02/04/17 20:38ID:???板違いなのですが・・・
鯖屋さんに言ったんですよ・・・『んじゃ、引っ越せってことですか?』と。
月1,2回はもめるんですよ。対応(っていうかってメールの内容)もムカツクし・・・
何時も(偽装)ヒラ謝りをしながら気を使うんですよね。
契約も残ってるし自ら出て行くのも納得いかないし
よさげな鯖屋さんも見つからないし・・・
print "負けたくないんですよ!鯖屋に!";
でもPerlはprint分位しかわからない。ので
0547544
02/04/18 00:15ID:DhPOYyDw同じような掲示板CGIはあるが…あのCGIでないとコンテンツがしっくりこないんだよ。
サイトの中ではあのCGIが生命線だし今までのカキコ内容は宝なんだよ。
まじで最適化キボンヌ。新コードで再チャレンジしたいんだ。
Webprog板住人さん鯖屋さんにリベンジさせてください。
まじ宜しくお願いしますわ。
0548nobodyさん
02/04/18 04:22ID:???掲示板CGIでそう負荷がかかるとは思えない。
アクセスが万単位であったり大量の書き込みがあったり改造してたりするのでなければ
いちゃもんつけられてるだけと思われ。
0551nobodyさん
02/04/18 20:47ID:Xv+8+6gt自分の知恵の無さに泣きを見ました(w
改造依頼なのですがThe Roomさんのところの
Light Chat ( ttp://dream.lib.net/room/cgi/e_lchat.html )で、
JavaScriptモードOFFにて発言時にフォーカスがsubmitへ逝ってしまってBSで
削除ができなくなってしまいます。
KENT-WEBさんの PONNY CHATのようにフォーカスを固定できないものでしょうか?
PONNY CHAT ttp://www.kent-web.com/chat/ponny.html
CGIからの制御は難しいようですがFormを上手く組みなおせば、できそうと思ったのですが。
アドバイス、よろしくおねがいします。
0552nobodyさん
02/04/19 19:26ID:3rqw4z8cこの掲示板のCGIのことで教えてもらいたいことが2つあります。
1.レスを記入するボックスは本来1行なのですが
これを2行にするにはどうすれば良いのでしょうか?
2.投稿するとタイトルやレスの頭に[1]・[2]・[3]と
順番に数字が入るのですが、これを表示させなくする方法を教えてください。
0553nobodyさん
02/04/19 21:32ID:???1.の質問はperlでは無くHTMLの改造だな<INPUT TYPE="text">を<TEXTAREA>にしなさいな
ただし改行コードを削除している可能性があるので文字列置換を削除しなければならないかも、、、
投稿やレスの頭につく数字はスカラー変数を削除しなさいな
0554552
02/04/20 07:35ID:ilcuvKZu色々やったのですが上手くいかないので、もう少し詳しく教えてください。
「文字列置換を削除」についても…。
ごめんなさい。
0555動作確認もせずにレス
02/04/20 09:13ID:???1)
547行目の<input>を667行目の<textarea>ように。
改行処理はされてるみたい(1133行目)。レイアウトは適当に調整してちょ。
2)
タイトル:521行目 \[$temp2[0]\] を削除
レス: 469行目 \[$temp1[0]\] を削除
$temp1とか$temp2とかは止めてホスィ…
0557心優しい553
02/04/20 13:26ID:7YSAp/x0改造してやったぞ
http://okunao.tripod.co.jp/upboard.txt
.cgiにリネームしてな
0558552
02/04/20 13:44ID:Hi5ZuXLw547行目とか1133行目とか言われて、また困ってしまいました。
エディタは何を使ってらっしゃるんでしょうか???
>>556
ごめんなさい。HTMLはちょっとしか分からないのにまた来ちゃいました。
レスを書くボックスを
<TEXTAREA NAME="res" ROWS=2 COLS=50 WRAP=off class="input"></TEXTAREA>
っていうデザインに変更させたいんですよ〜。ボックスの中の色はデフォルトのままで。
どなたかお暇でご親切な方、書き加えるもの、書き加える場所、消すもの等
手取り足取り教えてください。お願いしますm(__)m
何度も何度もすみません。
0559552
02/04/20 13:47ID:Hi5ZuXLw>>553
どうもありがとうございました。
見させてもらいます。
0560心優しい553
02/04/20 13:53ID:???<TEXTAREA NAME="res" ROWS=2 COLS=50 WRAP=off class="input"></TEXTAREA>
へは自分で改造してね
まぁ、この漏れも1年前はHTMLの知識なんてほとんど無かった、、、
いろんなスクリプトを自分で改造していきながら知識を付けて逝ったので
君も頑張りたまえ。
0561nobodyさん
02/04/21 02:26ID:???しつこい! 親切ぶりやがって。
ソースはもらったからもう用はないねー。
0564nobodyさん
02/04/21 11:45ID:???0565nobodyさん
02/04/23 08:29ID:???0566nobodyさん
02/04/25 12:53ID:DUGv6Dx1perlはまったく未知の世界ながら、見よう見真似でいじっています
フリーのCGIをほんのちょっとだけ
カスタマイズしよう(選択項目を増やそう)と奮闘中なのですが
よくわかりません
ネットサーフレスキューさん
ttp://www.rescue.ne.jp/の「ゲストブック」なんですが
今ある記入項目に加えて、たとえば誕生日とか出身地とかも
出力できるようにするには、どうしたらいいんでしょうか
基本のままなら設置、動作は確認済みです
0567566
02/04/25 12:58ID:???項目の入れ替えは可能なんですが、増やすことができません
下手にいじると変数名と値がずれて出力されてしまうんです
ご教授お願いします
0568nobodyさん
02/04/25 15:52ID:???# index.html 適当なところに
<tr>
<th nowrap bgcolor="#ff5555">血液型は?</th>
<td nowrap bgcolor="#5555ff"><select name="bloodtype" size=1><option value="" selected>未選択<option>A型<option>B型<option>AB型<option>O型</select></td>
<th nowrap bgcolor="#ff5555">出身地は?</th>
<td nowrap bgcolor="#5555ff"><select name="hometown" size="1">
<option value="" selected>未選択
<option>北海道<option>青森<option>秋田<option>岩手<option>宮城<option>山形<option>福島<option>栃木
<option>新潟<option>群馬<option>埼玉<option>茨城<option>千葉<option>東京<option>神奈川<option>山梨
<option>長野<option>岐阜<option>富山<option>石川<option>静岡<option>愛知<option>三重<option>奈良
<option>和歌山<option>福井<option>滋賀<option>京都<option>大阪<option>兵庫<option>岡山<option>鳥取
<option>島根<option>広島<option>山口<option>香川<option>徳島<option>愛媛<option>高知<option>福岡
<option>佐賀<option>大分<option>熊本<option>宮崎<option>長崎<option>鹿児島<option>沖縄<option>日本以外
</select></td>
</tr>
# regist.pl 25行目
print DB "$date_num\t$date_now\t$FORM{'name'}\t$FORM{'email'}\t$FORM{'sex'}\t$FORM{'address'}\t$FORM{'bloodtype'}\t$FORM{'hometown'}\t$FORM{'age'}\t$FORM{'access'}\t$FORM{'homepage'}\t$FORM{'comment'}\t$HTTP_USER_AGENT\t$host\n";
# regist.pl 50-58行目の適当なところに以下の2行追加
&jis("血液型: $FORM{'bloodtype'}"); print OUT "$msg\n";
&jis("出身地: $FORM{'hometown'}"); print OUT "$msg\n";
# search.pl 80行目
($num,$date,$name,$email,$sex,$address,$bloodtype,$hometown,$age,$access,$homepage,$comment,$agent,$host) = split(/\t/,$select);
# search.pl 94-100行目の適当なところに以下の2行追加
if ($bloodtype ne '') { print "<li>血液型 $bloodtype<br>\n"; }
if ($hometown ne '') { print "<li>出身地 $hometown<br>\n"; }
0569nobodyさん
02/04/25 16:00ID:???# index.html
<th nowrap bgcolor="#ff5555">血液型は?</th>
<td nowrap bgcolor="#5555ff"><select name="bloodtype" size=1><option value="" selected>未選択<option>A型<option>B型<option>AB型<option>O型</select></td>
の変わりに
<th nowrap bgcolor="#ff5555">誕生日</th>
<td nowrap bgcolor="#5555ff"><input type=text name="birthday" size=30></td>
# regist.pl 25行目
$FORM{'bloodtype'} の変わりに $FORM{'birthday'}
&jis("血液型: $FORM{'bloodtype'}"); print OUT "$msg\n";
の変わりに
&jis("誕生日: $FORM{'birthday'}"); print OUT "$msg\n";
# search.pl 80行目
($num,$date,$name,$email,$sex,$address,$bloodtype,$hometown,$age,$access,$homepage,$comment,$agent,$host) = split(/\t/,$select);
の変わりに
($num,$date,$name,$email,$sex,$address,$birthday,$hometown,$age,$access,$homepage,$comment,$agent,$host) = split(/\t/,$select);
if ($bloodtype ne '') { print "<li>血液型 $bloodtype<br>\n"; }
の変わりに
if ($birthday ne '') { print "<li>誕生日 $birthday<br>\n"; }
0570nobodyさん
02/04/25 16:35ID:???http://www.ij.oit.ac.jp/WWW/CGI/index.html
これ読めば一撃で分かるよん。
0571566
02/04/25 19:06ID:???できました!ありがとうございます!
しかもindex.htmlまで追加してくださって・・・
恐縮です
ところで怖くて確かめていないんですが、
search.pl80行目とregist.pl 25行目の配列順序は
必ず同じでないといけないんでしょうか
・・・いけないんですよね
とりあえず570のサイトを熟読してまいります
本当に本当に助かりました!
0573nobodyさん
02/04/25 23:49ID:???$message =~ s/\r/<br>/g; の下にでも
$message =~ s/<br><br>/<p>/g;
を追加かな
0574nobodyさん
02/04/26 22:59ID:hL3nAspRここで配付されているYY-BORAD 4.54ベースのスクリプトなのですが。
ttp://blue.ribbon.to/~rustyblue/bbs.html
このように親記事のNo.横の返信フォームへのリンクを切り、
記事のすぐ下の返信フォームを表示させレスができるようにしたいのです。
(レイアウト汚いのと下部の広告がウザイは堪忍して下さい)
どこをどうやれば良いのかサパーリなので、どなたか御教授お願いします。
0575574
02/04/26 23:01ID:???○ 記事のすぐ下に
0576nobodyさん
02/04/27 01:47ID:???bbs.htmlにフォームを追加して、それに対する処理を変えてやればいいんじゃない?
基本的には>>568-569とやることは同じだと思うが。。
0577nobodyさん
02/04/27 08:13ID:???uho!氏が改造したものを参考にしたらどうだ?
■ このスレッドは過去ログ倉庫に格納されています