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

【 スクリプト改造工房 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化済み)
056455803/01/07 17:17ID:sAGCj5os
>>559さん

見事にローテーション回りました♪
ありがとうございますm(_ _)m
>そんなクソソース読む気がせん。
やっぱり酷いスクリプトなんっすか?
もともとFFAの改造らしいですが。
「劇ぱわ」を改造したはる人の間ではわかりにくいと評判のようです(w
0565名無しさん@お腹いっぱい。03/01/07 20:08ID:???
>>564
スクリプトいじれもしねぇ〜くせにガタガタ抜かしてんじゃねぇ〜。この真性包茎が!
0566nobodyさん03/01/07 20:21ID:2QX2iHj7
初めまして。
ご指導を仰ぎたく書き込ませていただきます。
>>34でも挙げられているエースさんの履歴風掲示板、
http://www.ace-cgi.jp/cgi/sch/005/index.html
(サンプル:ttp://www.ace-cgi.jp/cgi/sch/005/sample/sch005.cgi)を
サッカーチームの日程紹介に利用したいと思っていますが、
1月が一番上、12月が一番下と、これから来る月が
下方に表示されるようにしたいのですが、
どのようにアレンジすればよろしいでしょうか。
また、上のフレーム上部にタイトル画像を表示させたい場合はどの位置に
$titleを記入すればよいのでしょうか。

お手数をおかけして申し訳ございませんが、
ご回答いただければ幸いです。なにとぞよろしくお願いいたします。
056755803/01/07 21:25ID:sAGCj5os
>>565

なっ、なぜわかった!?
0568名無しさん@お腹いっぱい。03/01/07 21:56ID:0U86HUrj
>>567
最もらしい顔して書き込んでればみんな職人さん!ってわけではないのだよ。
ソース以前にこんなスクリプト使う奴の気がしれん。ネパワでよくみかけるが。
0569名無しさん@お腹いっぱい。03/01/07 22:00ID:???
>>566
なぜソースをあげないのかと小一時間・・・。34のファイルはすでに消えているし
あったとしても圧縮ファイルじゃほとんどの人は読まないよ。君がtxtで
うpしなよ。
057055803/01/07 22:05ID:sAGCj5os
>>568

いや、真性包茎のほうでつが...<なぜわかった!?

冗談はさておき、連勝中のチームでのローテが上手く回らない事が判明しました。(ToT)
症状をまとめるため、もう少し試合重ねてみます。
(今のところ、数連勝していると投手の打順が8や7になって、野手として試合参加してしまいます)
0571nobodyさん03/01/08 18:22ID:???
>>562-563それはどこにかけばいいんですか?
0572nobodyさん03/01/08 18:52ID:???
>>571
取り敢えず最終行で良いんじゃねぇの?
てか、これ位も判らないんじゃ話にらん
少しはPerl勉強して出直してこい
0573nobodyさん03/01/08 19:58ID:/YJAwlvJ
発言ランキングを表示するところをつくれば表示されますよね?
0574nobodyさん03/01/08 22:24ID:???
お邪魔します。

http://kano.feena.jp/erial/ealis2/
こちらで配布されている掲示板、ealisv2.59なんですが
一定のレス数を超えると古いレスから隠れるよう改造したいのです。
自分なりにいろいろやってみたとか言うつもりはありません
まったく知識はなくコピペしかできません。
>>1の注意事項(3)少しは自分で考えること。に違反してしまいますがどうか宜しくお願いします。

掲示板サンプル
http://kano.feena.jp/cgi/sample/e25/ealis.cgi
ソースはこちらに
http://henachoko.homeip.net/uploader/updata/20030108220620.txt
0575名無しさん@お腹いっぱい。03/01/09 00:34ID:???
>>570
ずっとそのままなら手術だな(藁
0576nobodyさん03/01/09 00:37ID:???
>>574
# ealis_cfg.cgi
以下の行を追加
$INI{'res_view'} = 5; # レスの表示数

# ealis_let-std.pl
sub lettering 内にあるif文を書き換える
if ($oyaflag) {
    #この中はそのまま
} else {
    if($flag != 2) { print "<br><hr width=\"95%\" size=1 class=r noshade>\n"; $flag = 2;}
    $resflag = 1;
    if (@res >= $INI{'res_view'}) {
        shift @res;
    }
    push @res, join("\t", $name, $color, $ipaddr, $font, $comment, $date);
}

以下を追加
sub printres {
    foreach (@res) {
        my($name, $color, $ipaddr, $font, $comment, $date) = split /\t/;
        print qq[\t<table border=0 cellspacing=0 cellpadding=0><tr><td nowrap valign=top>\n].
              qq[\t<font color="$color"><b>$name</b><!-- $ipaddr --> ></font></td>\n].
              qq[\t\t<td$font><font color="$color">$comment</font>\n].
              qq[\t\t<span class="stamp">($date)</span></td></tr></table>\n];
    }
    $resflag = 0;
    @res = ();
}
0577nobodyさん03/01/09 00:38ID:???
(続き)
# ealis.cgi
106行目あたりにある if($flag){ &reswindow($_[0]);} の上に
if($resflag) { printres(); }
を追加。119行目あたりにもあるので同様に。
057857403/01/09 02:37ID:???
>>576-577
すいませんファイルが足りなかったようで、ありがとうございます。

そのように書き換え・追加したのですが
記事が表示されなくなりました。

ealis_let-std.plのソース
http://henachoko.homeip.net/uploader/updata/20030109021601.txt
ealis.cgiのソース(追加した所以外省略)
http://henachoko.homeip.net/uploader/updata/20030109021527.txt

ealis_cfg.cgiに関してはこのように追加しました。
## ■システム設定

$INI{'allowtag'} =0;# タグの許可(0or1)
$INI{'res_sort'} = 1;# 返信がつくと親記事をトップへ移動 (0or1)
$INI{'autolink'} = 1;# 自動リンク (0or1)
$INI{'ipview'} = 0;# 現在のIP表示(0or1)
$INI{'refcheck'} = 0;# 他サイトから投稿排除する時に指定 (0or1)
$INI{'show'} = 8;# 1ページ当たりの記事表示数 (親記事)
$INI{'res_view'} = 5; # レスの表示数
#$INI{'gzip'} = '/bin/gzip';

なにか間違えてますでしょうか?
ご迷惑をおかけしますがよろしくお願いします。
0579nobodyさん03/01/09 02:56ID:???
KENTさんのとこのpatioにトリップつける改造が紹介されてたんですが
ttp://rightstuff.cool.ne.jp/test_site/patio/patio.cgi?mode=view2&f=44&no=10-11
同じほうほうでyybbsに組み込むことってできますかね?
0580nobodyさん03/01/09 03:53ID:???
>>578
あー、スマン。書き方が悪かった。
sub printres はifの中じゃなくて、
ファイルの一番下にでも書いて欲しかった。ってことで
http://henachoko.homeip.net/uploader/updata/20030109021601.txt
の48-54行目を消せばいける。あと25行目の else の閉じ括弧が無いので
それもつけること。
0581nobodyさん03/01/09 05:56ID:???
>>579
まずは自分でやってみる。上手くいかなかったら、はじめてここで質問する。

自分で出来ること(チャレンジ)を端折るな。じゃなきゃ、いつまでたっても
質問廚だぞ。
058257803/01/09 14:28ID:???
>>580
すいません理解力に乏しくて。
48-54を削除し閉じ括弧を付けましたところ
うまく行きました。
感謝します、ありがとうございました。
0583nobodyさん03/01/09 19:18ID:+NBXZYwN
>>562さんおしえて
0584nobodyさん03/01/10 00:40ID:???
>>583
そのトリップを付ける改造方法を紹介してるトコで聞いてみれば?
058548603/01/10 02:34ID:???
同じスレで何度も質問して申し訳ございません。
この掲示板はユーザーがここの書き込みを削除したり、
編集したり出来るようにパスワードをうち込めるのですが、
そのパスワードを管理人用のマスターパスでも削除や編集が出来るようにしたいんです。

http://www2.csc.ne.jp/~nga/light.txt
http://www2.csc.ne.jp/~nga/admin.txt
http://www2.csc.ne.jp/~nga/init.txt

上記の3つがソースなのですが、
改造するのは一番上のメインスクリプトだけだと思いますので他は必要ないと思います。
管理者用パスはadmin.txtにしか設定されていませんので
light.txtの最初の方に$pass = '0123';をいれて、
記事削除の467行目あたりと記事修正の532行目あたりを
改良して色々試してみたのですがどうしてもうまくいきません。
わからないながらも簡単な改良のように思えるので、
またこのスレのお世話になりにきてしまい恥ずかしいかぎりです。
教えて頂ければ幸いです。
058648603/01/10 02:34ID:???
>>507
レス遅くなりました。
複数修正チェック入れさせていただきました。
どんどん機能が増してきて凄く嬉しいです。ありがとうございました。

>>508
パス丸出しでしたw
念の為パスワード変えました。ご指摘ありがとうございました。
0587nobodyさん03/01/10 04:27ID:???
>>585
大まかには理解しているようなのでヒントだけ。
sub decrypt はパスワードが正しければ1、そうでなければ0を
返すようになっている。これをパスワードが正しい、もしくは
管理パスと同じ場合に1を返すようにすれば良い。
0588nobodyさん03/01/10 10:31ID:a9CYRt8t
ワードラップ表示のない掲示板を設置しています。
改行を入れずに記入されると、表示がびよぉ〜んと伸びて、ブラウザを右にスクロールしないと読めなくなります。

普通は、表示のほうでワードラップさせるのでしょうか。

そこで考えているのですが・・・。
掲示板書き込みの、内容チェックルーチンの後ろに、自動整形ルーチンを
持たすようにしたいんです。
昔のMS-DOSの時にあった fin という外部コマンドみたいな機能です。
付け加えたいのは、
.br といった、改行を入れる埋めこみコマンド(一つだけ)
禁則処理
引数で、桁を指定
引数で、インデント桁を指定(これで四角い文書になる)

引数のわたし方ですが、チェックボックスでも作るのがいいでしょうか?

こうした機能がすでに書かれたサブルーチンがどこかにあったら見てみたいのですが、
ご存じないでしょうか?
0589bloom03/01/10 10:51ID:KGaolIdm


http://www.agemasukudasai.com/bloom/
0590nobodyさん03/01/10 11:00ID:???
>>587
管理パスは平文でスクリプトに書いている。
sub decryptは通さないでそのまま比較すればいい。
if ($in{'pwd'} eq $pass)
059159003/01/10 11:28ID:???
>>486,585
sub decrypt {
local($inp, $log) = @_;
の下に
if ($inp eq $pass) {return(1);}
を追加したらどうやろ
059258603/01/10 15:18ID:???
>>587
大まかには理解していると言っていただけて嬉しいです。
最初はほんとにさっぱりわからなくてHTML部分の改造以外できなかったのですが、
毎日わからないながらも試行錯誤していたら少しだけですがわかってきました。
だんだん覚えていくので凄く楽しいです。

>>590
パスを書かないのがif ($in{'pwd'} eq "")だったのでそこにパスを入れれば
「もしもパスが入力されていたら」になるかなぁと思って
それと同じような文を書いたんですけど、結局出来なかったんです。
惜しかったんでしょうか。

>>591(590)
その一行を追加しただけで出来ました!
簡単とは思ってはいましたが一行で済むとは思いませんでした凄いです!
私が考えていた所と全く焦点が違っていた事に驚いてます。
何度も質問したのでもう一度ここのお世話になるか凄く迷ったのですが、
質問してよかったです。(皆様にはお手数かけましたが)
本当にありがとうございました。m(_ _)m
0593nobodyさん03/01/10 17:57ID:ViB4peHI
発言ランキングのつけかたおしえてください
0594nobodyさん03/01/10 18:02ID:???
>>593

>>1を読んでYO

質問するときは以下の点に注意して書いて下さい

(1) そのスクリプトの内容と置いてある場所を明記する (txtファイルでUPすればなお良い)
(2) どんな風に改造して欲しいのか? (完成イメージHTMLを用意すればなお良し)
(3) 出来るだけ詳しく書くこと。少しは自分で考えること。できれば御礼も言ったほうが良い

※答えてくれないからといって逆ギレする厨はお断り
0595nobodyさん03/01/11 01:14ID:???
>>593は少々イジけているんだろ。
すんなり誰も教えて(改造して)くれなかったから。

自分でドコまでやったのか
それを示せばいい答えが返ってくるかも知れないぞ
0596nobodyさん03/01/11 03:55ID:???
>>593はPerl判らないから全部コピペで完全に動作する所まで説明しないと判らないんだろう
って、言うかどう言うのを希望なのかHTMLすら出さないから
HTMLもタグ打じゃ書けないヨカーン
0597nobodyさん03/01/11 12:28ID:???
発言ランキングの奴はcomchatの奴をつかいたいです。
0598nobodyさん03/01/11 13:10ID:???
>>597
KENT氏のCOMCHATについている発言ランキングを
自作のスクリプトに使用したいってことか?

・・・勝手に使えばいいぢゃないかYO
0599nobodyさん03/01/11 13:30ID:???
comchatなんて、元々ゆいちゃっとからのパクりが多いから、全然OKだろう。
0600nobodyさん03/01/11 22:44ID:???
ネットサーフしててあるところの掲示板で見かけたのですが

掲示板の書き込みで

”>”のような引用を使うとその一文の文字色が変わり
背景色がつけられて 目立つ

ようなのを見かけたのですが

どうすればできるのでしょうか?
背景色は外部スタイルシートでしょうか?

よろしくおねがいします

テキストは
ttp://www23.tok2.com/home/fura/yybbs.txt
です。
(トクトク仕様で見づらいですがソースで確認お願いします)

よろしくおねがいします
0601背景中央っこ03/01/11 23:15ID:h7Wygp1p
perl掲示板の壁紙について質問があります。
現在、
 {
  print "<body background=\"背景イメージ" bgproperties=\"fixed\"
 }
となっていて、壁紙はリピートになっているのですが、
この壁紙を「中央に1つだけ表示」するにはどうしたらよろしいのでしょうか?
CSSでいうと
.Wallpaper {
background-attachment: fixed;
background-image: url(背景イメージ);
background-repeat: no-repeat;
background-position: center center;
}
の様にしたいのです。
よろしくお願いします。
0602nobodyさん03/01/12 00:39ID:???
>>600
そのyybbs.txtはそのままでも動作しているの?
同じエラーが沢山でていたが・・・トクトクでは動くのかな。。まぁぃぃゃ。。。

背景色を変える方法はスタイルシートやTABLEタグを使ったりすると思います。

アップしたyybbs.txtの
611行目に
$comment =~ /(^|(?:<br>))((>|>)(?:(?!<br>).)*)/\1<FONT color=#ffffff style="background-color:#666666">\2<\/FONT>/g;

577行目
$com =~ /(^|(?:<br>))((>|>)(?:(?!<br>).)*)/\1<FONT color=#ffffff style="background-color:#666666">\2<\/FONT>/g;

543行目
$comment =~ /(^|(?:<br>))((>|>)(?:(?!<br>).)*)/\1<FONT color=#ffffff style="background-color:#666666">\2<\/FONT>/g;

を追加するようなやり方でも可能です。
0603nobodyさん03/01/12 00:51ID:???
>>602
ぉ! 間違えてる。。
sも抜けてるし・・・
s/(^|<br>)((>|(?:>))(?:(?!<br>).)*)/\1<FONT color=#ffffff style="background-color:#666666">\2<\/FONT>/g;
です。。
0604nobodyさん03/01/12 01:27ID:???
>>601
そのprint文にスタイルシートを追加では
なにか問題があるのでしょうか?

print '<body background="背景イメージ" bgproperties="fixed" style="background-repeat: no-repeat; background-position: center center;">';
0605nobodyさん03/01/12 12:06ID:eJ8Igs3E
今ホムペつくってるんですけど、a.htmというページがあるとしてそこに5人
きてるとします、それでその人数を、b.htmに表示したいんです。
それでhttp://shena.myako.net/strangelady/cgijs/imakoko/imakoko.html
っていうのをみつけたんですがこれはa.htmにきている人数をa.htmにしか表示できないみたい
なんです、このスクリプトを変更してb.htmにでも人数を表示するということはできませんか?
もしそういうことができるなら誰かアドバイスください★
0606nobodyさん03/01/12 12:47ID:???
>>605
以下のように書いてありますが、何か?日本語読めますか?
CGIファイルをサーバーにアップロードして、ページには1行書き加えるだけ
<script language="JavaScript" src="imakoko.cgi"></script>
0607nobodyさん03/01/12 12:52ID:???
>>605
a.htmlを見ていると思われる人数を
b.htmlに表示することは可能です
マルチポストなので私は改造しませんけれど
0608nobodyさん03/01/12 12:54ID:???
>>605
おまえね、誘導されてきたなら元スレにお礼言ってから
こっちでも誘導されてきましたって挨拶するべきでしょ?
060992703/01/12 13:02ID:???
タッキーズルームのpulinplinkに背景固定のスタイルシートを加えたいんだけど、
どのへんいじったらいいかわかりません。誰か教えてください。
0610nobodyさん03/01/12 13:05ID:???
>>609
>1読んでURL晒せ
0611nobodyさん03/01/12 13:17ID:???
>>609
420行目にbodyタグのCSSとかが在るからそこを書き換え
てか、次からはCGIのテキストをUPするか最低限配布場所のURLを明記しましょう。
0612nobodyさん03/01/12 13:19ID:eJ8Igs3E
>>606
あ〜今からお礼いいにいってきます!&誘導されてきました。
んとぉ〜b.htmに<script language="JavaScript" src="imakoko.cgi"></script>
をはると、b.htmを見てる人もカウントされてしまうんです。
a.htmみている人をb.htmに表示したいんです。
0613nobodyさん03/01/12 13:22ID:???
>>609
タッキーズルームへ逝ったけどpulinplinkというタイトルのCGI見つからなかった
pulinplinkでgoogleで検索しても見つからなかった

0614nobodyさん03/01/12 13:29ID:???
>>613
試しにみてみたら・・・あるじゃん
ぷりんぷりんく pulinplink.cgi って。。
0615nobodyさん03/01/12 13:31ID:eJ8Igs3E
>>607
すみません。マルチポストってマナー違反ってしりませんでした。
すみませんがおしえてもらえませんか?どうしてもしたいんです。
おねがいします。もぉ、おこっちゃったかなぁ…
0616nobodyさん03/01/12 13:34ID:???
>>614
ありがとう
0617nobodyさん03/01/12 13:34ID:???
>>615
板違い
どっか初心者板へ逝って
061860903/01/12 13:37ID:???
>>611
ありがとうございます。
いろいろやってみたけどできなかったです。もうちょっとやってみます。

>>614
説明わかりにくくてすいません
0619nobodyさん03/01/12 13:39ID:???
>>615
ん? 607・・・って私ですか(笑
全然怒ってはいないですよ。昼飯食べてくるからその後で・・・よければ。
0620nobodyさん03/01/12 13:47ID:???
>>615
これ読んでおいて
http://pc3.2ch.net/test/read.cgi/hp/1042273042/123

躾けが行き届いてない厨を誘導してすみません
面倒見てやってください。>スレ住人
0621nobodyさん03/01/12 14:20ID:???
>>615
まずimakoko.cgiの88〜90行目の
  foreach $line(@out){
    print "document.writeln(\"$line\");\n";
  }
の行頭に#を挿入してコメントアウト。

次に48行目に以下をコピペ
if ($ENV{'QUERY_STRING'} eq 'b') {
  @NEWDATA;
  foreach $line(@DATA) {
    ($time,$host) = split(/\,/,$line);
    if (($time_now - $tmax) < $time && $host ne $myhost){
      push(@NEWDATA,$line);
    }
  }
  $count = @NEWDATA;
  @OUT = ("今hogeページに$count人の人がいます");
  if ($font){
    unshift(@OUT,$font);
    push(@OUT,"</font>");
  }
  print "Content-type: text/plain\n\n";
  print "<!--\n";
  foreach $line(@OUT){
    print "document.writeln(\"$line\");\n";
  }
  print "//-->\n";
  exit;
0622nobodyさん03/01/12 14:20ID:???
>>621
そして、a.htmlでは普通にスクリプトを呼び出して
b.htmlではimakoko.cgi?bのように?bを追加して読み込んでください。

<script language="JavaScript" src="imakoko.cgi?b"></script>

もっとスマートに改造できるのですが・・・とりあえずこれでも可能です。。
0623nobodyさん03/01/12 14:22ID:???
>>621
あ、exti;の後にもう1つ}がいります。。
exit;
}
0624nobodyさん03/01/12 14:24ID:eJ8Igs3E
>>622ほんとですか!やってみます!こんなやつにわざわざありがとうございます。
あ!このbってのはb.htmだからbなんですか?
それともなんかの。。。
0625nobodyさん03/01/12 14:36ID:???
>>624
そうです。b.htmlでしたから、bとしてみただけです。他意はありません。。

49〜59行目を以下で置き換えるだけでも同様です
こちらの方が少しはスマートです。。

if ($ENV{'QUERY_STRING'} ne 'b') {
  @NEWDATA = ("$time_now\,$myhost\,\n");
}
foreach $line(@DATA) {
  ($time,$host) = split(/\,/,$line);
#  if (($time_now - $tmax) < $time && $host ne $myhost){
  if (($time_now - $tmax) < $time){
    push(@NEWDATA,$line);
  }
}
if ($ENV{'QUERY_STRING'} ne 'b') {
  if (!open (DATA,">$logfile")) { &output("エラー!:ログファイルのパーミッションは666になってますか?");}
    print DATA @NEWDATA;
  close(DATA);
  &output(undef);
  exit;
}
0626nobodyさん03/01/12 14:37ID:???
>>625
蛇足です。。コメントアウトしていたのを忘れていました。。

if ($ENV{'QUERY_STRING'} ne 'b') {
  @NEWDATA = ("$time_now\,$myhost\,\n");
}
foreach $line(@DATA) {
  ($time,$host) = split(/\,/,$line);
  if (($time_now - $tmax) < $time && $host ne $myhost){
    push(@NEWDATA,$line);
  }
}
if ($ENV{'QUERY_STRING'} ne 'b') {
  if (!open (DATA,">$logfile")) { &output("エラー!:ログファイルのパーミッションは666になってますか?");}
    print DATA @NEWDATA;
  close(DATA);
  &output(undef);
  exit;
}
0627nobodyさん03/01/12 15:01ID:3kq2ylQl
おしえてください!発言ランキングのつけかた
KENTのところにあるCOMCHATの発言ランキングをつけたいです。
0628nobodyさん03/01/12 15:07ID:???
>>624
imakoko.cgi?bって呼び出すのは適当すぎますし
imakoko.cgi?countって呼び出したページの人数をカウントして
imakoko.cgiだけで呼び出した時に人数を表示するほうが、より良いですね。

あと
@OUT = ("今このページに$count人の人がいます");
のメッセージも自分流に書き換える必要がありそうです。
無理に書き換える必要はありませんけれど、、
宿題として・・・?? でわでわ!
0629nobodyさん03/01/12 15:30ID:z75wTlqT
ありがとうございます!早速やってみます!ありがとうございます!!
063056603/01/12 17:34ID:0R5jZ1Nf
>>566にてエースさんのスクリプト改造について
アドバイスをお願いした者です。
>>569さん、行き届かず申し訳ありませんでした。

以下にスクリプトをテキストで上げましたので、
改めてご指導よろしくお願い申し上げます。
ttp://lipservice.tripod.co.jp/ace.txt
0631nobodyさん03/01/12 17:56ID:???
>>630

ace.txtの70行目に
@DATA = reverse(@DATA);

タイトルは64行目の
print "</td>\n";
の後に
print "<td bgcolor=#CCCCCC align=center>$title</td>\n";
を挿入で表示できます。
0632nobodyさん03/01/12 18:00ID:???
>>631
っと、タイトルは画像でしたね。。
$titleを<img src="画像">に置き換えるか

57行目の
print "<table width=100% cellpadding=3 cellspacing=0 border=0><tr>\n";
後に
print "<td align=center><img src="画像"></td></tr><tr>\n";

とでも記入してください。。
0633nobodyさん03/01/12 18:09ID:???
>>632
失礼、、画像タイトルは55行目を以下のように変更です。
print qq{<center><img src="画像"></center>\n};
0634nobodyさん03/01/12 18:38ID:???
>>631
@DATA = reverse(@DATA);
データを削除したり編集したりしている内に表示順がおかしくなるねぇ
reverse行は取り消して

73行目の
foreach $line (@DATA){

foreach $line (sort @DATA){
で解決かな?
0635nobodyさん03/01/12 19:06ID:/hVM4GRx
お絵かきけいじばんの、画像を保存するのを無理やりgifに変換するにはどうしたらいいのかを考えるすれに変わりました
063660003/01/12 19:44ID:???
>>602>>603
を元にできました。どうもでした。
ただ全角の引用の”>”には対応するのですが
半角の”>”にも対応させるにはどうすればいいでしょうか?
半角を使う人もいるので・・・

よろしくおねがいします
0637nobodyさん03/01/12 19:55ID:???
>>636
?ああ2chに書き込んだときに>に変換されてしまったのね。。

s/(^|<br>)((>|(?:>))〜
の>を&gt;と半角で置き換えて。。

>>635
ttp://www.imagemagick.org/www/perl.html
0638nobodyさん03/01/12 19:58ID:???
>>637
>って言っても
<br>はそのままだYO
念のため
063960003/01/12 20:16ID:???
>>637
できますた。
どうもでした
0640nobodyさん03/01/12 22:01ID:???
ttp://sugachan.dip.jp/download/joyful.php
ここのスクリプトのHTMLVerなんですが
1ページ目を0.htmlではなくindex.htmlで吐かせたいのですが
どこを変えればよいのでしょうか?
0641背景中央っこ@60103/01/12 22:42ID:U7D7FDnd
>>604さんへ

できました!
あたしはperlは無知なので助かりました。
簡単な質問にも丁寧に回答していただいてありがとうございました!
0642nobodyさん03/01/12 23:10ID:???
>>640
2・3日待って貰えば
ユーザーの方でファイル名設定できるようにします.
0643nobodyさん03/01/12 23:37ID:???
>>641
PerlつーよりHTMLだわな。
0644nobodyさん03/01/12 23:44ID:HvHiIRir
◆◇◆◇◆最新情報◆◇◆◇◆
http://yahooo.s2.x-beat.com/linkvp/linkvp.html
0645566=63003/01/13 00:16ID:???
>>631-633さん、>>634さん

どうもありがとうございます!希望通りの表示になりました。
お時間を割いていただいて恐縮です。
たった1ワード入れるだけで変わるものなんですね。
何を勘違いしたのか数字を入れたりしていました...

いまはは曜日表示の追加と下部に表示される記事部分を
一番上の日付ぶんが最初に来るように調整してみています。
自分でスクリプトをすべて書けるようになったら
とても気持ちがよいでしょうね。がんばります。
0646nobodyさん03/01/13 02:26ID:???
>>640
更新しておきますた
0647nobodyさん03/01/13 05:00ID:???
>>627
>>562-563を書いた者だが…。
「発言ランキングのつけかた」なんて漠然と言われても、
「発言ランキングとして動作するコードを書け」としか答えようが無い。
そしてできなかったのなら、自分でどこまでやったのかを書くこと、と
言われてるだろ…。全くPerlができないのなら最初に具体的な仕様を
書くこと。そうしていれば>>562-563のような無駄なコードは書かずに済んだわけで。
こっちだって時間を割いてスクリプトを書いてるんだから。
まぁ乗りかかった船だから一応教えるけどさ…。
0648nobodyさん03/01/13 05:00ID:???
31行目あたりに
# 発言ランクファイル
$rankfile = './rank.dat';

# 発言ランクログ保存日数
$limit = 7;
を追加。
324行目あたりに elsif の閉じ括弧があるのでその下に更に
elsif ($act eq "ranking") {
    viewranking();
}
を追加。
675行目あたりにある </tr> と </table> の間に
<tr><td> </td>
<td>
<form method="post" action="./ichat.cgi" target="frame2">
<input type="submit" value="発言ランキング" class="button">
<input type="hidden" name="act" value="ranking">
<input type="hidden" name="name" value="$name">
<input type="hidden" name="color" value="$color">
<input type="hidden" name="lines" value="$lines">
<input type="hidden" name="reloadtime" value="$reloadtime">
<input type="hidden" name="hrindi" value="$hrindi">
</form>
</td>
</tr>
を追加。
835行目あたりにある close (IO); の下に
ranking();
を追加。
0649nobodyさん03/01/13 05:01ID:???
ファイルの一番下に
sub ranking {
    my $rflag = 0;
    my @new;

    open RNK, "+<", $rankfile or error("Open Error : $rankfile");
    eval { flock RNK, 2; };
    while (<RNK>) {
        my($r_name, $r_kaisu, $r_time) = split /<>/;
        if (time - $r_time > $limit*24*60*60) { next; }
        if ($r_name eq $name) {
            $rflag = 1;
            $r_kaisu++;
            $_ = "$r_name<>$r_kaisu<>" . time . "<>\n";
        }
        push @new, $_;
    }
    if (!$rflag) { unshift @new,"$name<>1<>" . time . "<>\n"; }

    truncate RNK, 0;
    seek RNK, 0, 0;
    print RNK @new;
    close RNK;
}
0650nobodyさん03/01/13 05:09ID:???
sub viewranking {
my %count;
hphead();
print qq#[<a href="./ichat.cgi?act=reload&name=$name&color=$color#.
qq#&lines=$lines&reloadtime=$reloadtime&hrindi=$hrindi">#.
qq#チャットに戻る</a>]\n#.
qq#<center>\n#.
qq#<h3>$title</h3>\n#;
open IN, "<", $rankfile or error("Open Error : $rankfile");
print qq[<P>- 以下は $limit日以内の発言を対象としたランキング一覧です -\n].
qq[<P><table border=1 cellspacing=0>\n].
qq[<tr><th>順位</th><th>おなまえ</th><th>発言回数</th></tr>\n];
while (<IN>) {
my($name,$count) = split /<>/;
$count{$name} = $count;
}
my $rank1 = 0;
my $rank2 = 1;
my $count_tmp = 0;
foreach (sort { ($count{$b} <=> $count{$a}) || ($a cmp $b)} keys(%count)) {
($count{$_} == $count_tmp) || ($rank1 = $rank2);
print "<tr><td>No\.<b>$rank1</b></td><th>$_</th><th>$count{$_}</th></tr>\n";
$count_tmp = $count{$_};
$rank2++;
}
print "</table></small></center>\n</body></html>\n";
exit;
}
を追加して終了。
ちなみにサブルーチンはKENTのやつからもってきただけ。
(ただ、無駄な部分は省いた。)
# 長くてスマソ... 今度からインデントやめます。
0651645に追記です。03/01/13 05:31ID:???
>>645で報告させていただきましたが、
sortを記入すると曜日ごとにソートされまとまって表示されるのに気づき、
reverseを記入してみたらうまくゆきました。
0652nobodyさん03/01/13 11:07ID:???
>>651
スクリプト改造お疲れさまです。

sortを使用した場合、ログデータをそのまま並び替えています。
デフォルトの状態では〜.datファイルが
年<>月<>日<>タイトル<>本文<>
年<>月<>日<>タイトル<>本文<>
・・・

のフォーマットで保存されています。
曜日ごとに並び替えられてしまったのは
曜日<>年<>月<>日<>タイトル<>本文<>

みたいに曜日をデータの先頭に挿入しているため
曜日毎に並び替えてしまったのかな、と推察しています。

reverseの使用で対処できるとのことでなによりですが
reverseしてデータを表示するルーチンの後に
もう一度reverseして@DATAの内容を元に戻しておくことを勧めます。
もちろん問題がでていないようなら必要ありませんけれど。。

@DATAをreverseしたままの場合は
他のルーチンのロジックも少し弄る必要があるかも知れません。
あしからず。
0653nobodyさん03/01/13 17:17ID:9dWOZyTE
>648のようにやりまして、エラーが発生しました
324行目あたりに elsif の閉じ括弧があるのでその下に更に
elsif ($act eq "ranking") {
viewranking();
}
っていうところなんですけど、elsif (($act eq "mainframe") || ($act eq "changeframe")){
の↓にかけばいいんですよね?elsif ($act eq "ranking") {viewranking();}{このように
0654nobodyさん03/01/13 19:12ID:???
>>653
俺の言ってるelsifの閉じ括弧っつーのは
elsif (($act eq "mainframe") || ($act eq "changeframe")){
  #元からあったコード
} ←これ。

なのでその下に追加すれば良い。
別に改行しなくてもいいんだけど、>>648で書いている行番号は
改造を行った後のものだから混乱するかも。
あとエラーが出たのならエラーメッセージを出せばなお良い。
0655nobodyさん03/01/14 00:48ID:hZLDsUe8
kentwebのスレッド式掲示板webpatioのスレッド名の文字数制限をなくしたいのですが
どなたか方法をお教え願えませんでしょうか?
0656nobodyさん03/01/14 01:22ID:???
# コメント文字数チェック
if (length($in{'comment'}) > $max_msg*2) {
&error("文字数オーバーです。<br>
全角$max_msg文字以内で記述してください");
}
0657nobodyさん03/01/14 01:27ID:???
>>655
>>656
init.cgiに
# コメント入力文字数(全角換算)
$max_msg = 800;

・・・スレッド名の文字数じゃなくてコメントの文字数なのかYO
065865503/01/14 01:54ID:hZLDsUe8
>>656-657
コメントの文字数ではなくてスレッドの題名の文字数です。
宜しくお願いします。
0659nobodyさん03/01/14 02:09ID:???
ここはSの依頼者とMの回答者が仲良く助け合うスレッドですか。
0660nobodyさん03/01/14 04:06ID:???
>>658
patio.cgiの464行目
<td><input type=text name=sub size=30 value="$resub" maxlength=30>
maxlengthの値を変えましょう
perlばかりみていたYO。。。

>>659
(≧∇≦)ブァッハハ!
066165503/01/14 04:52ID:hZLDsUe8
>>660
無事改造できました。いやー助かりました。
どうもありがとうございました。
0662nobodyさん03/01/14 05:52ID:H5j11McP
http://www6.ocn.ne.jp/~endou/index2.html
0663nobodyさん03/01/14 14:10ID:VUdpm8ck
ttp://fitness.s7.xrea.com/index3.php
これをWinXPサーバで動かしたいのですが
rejpeg repng regifがどうもLinux専用らしいのです
Windows版 rejpeg repng regifってどこかにありませんか?
0664nobodyさん03/01/14 16:06ID:???
>>663
無い
■ このスレッドは過去ログ倉庫に格納されています