トップページ⇒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を用意すればなお良し)
を必ず明記しよう。
0002名無しさん@お腹いっぱい。02/02/05 01:37ID:DnrYj3PG
www.azworks.org/~az/ さんのunico diary systemを使いたいのですが、
日付を1日もしくは半日ずらして表記させるにはどうすればいいでしょうか?
例えば、2/5の深夜(午前)に書き込んで、表示画面で2/4と表示させたいのです。


http://members.tripod.co.jp/gumboll/u_diary.txt
にアップしてみました。時間表記をさせるらしきところに★をつけておきました。
よろしくお願いします。
0003 02/02/05 01:44ID:???
time
 ↓
time - 60 * 60 * 12; # 半日の例 1日なら24hだから「24」ね
0004202/02/05 01:52ID:???
>>3さん
即レスありがとうございます、うまく行きました!
嬉しいです。ありがとうございました!
0005ナナシンボ02/02/06 17:04ID:dTW/dCg2
皆様お久しぶりです。
なんとか新着情報をトップページに表示する方法はわかったのですが、

open (IN,"./log/new_ys.cgi") || &error('オープンエラー','指定された書込みファイルが開けません。');
@LINES = <IN>;
close (IN);

このままだと必要以上に新着サイトが表示されてしまいます。
なんとかして表示できる件数と紹介文の文字数を指定できないでしょうか?
もしも可能な方がおられましたらご教授ください。
0006ナナシンボ02/02/06 17:21ID:dTW/dCg2
追加です。サポート掲示板のをコピペですが。。。
# 新着サイトのデータを読み込む
open (IN,"./log/new_ys.cgi") || &error('オープンエラー','指定された書込みファイルが開けません。');
@LINES = <IN>;
close (IN);
# 表示したい場所に配列する。
foreach ( @LINES ) {
($Dno,$Dtitle,$Durl,$Dmark,$Dsyoukai,$Dkanricom,$Dkt,$Dtime,$Dbana_url,$Dpt,$Dip,$Dkey,$Ddate,$Dname)=split(/<>/,$_);
で
$Dkt=$_;
$Dkt=$dkt{$_};
if(length($dkt{$_}) > $CUT eq "s"){
$cu=$CUT-3; $dkt{$_}=substr($dkt{$_},0,$cu); $dkt{$_}.="...";
}
こんな感じのを加えて必要以上の文字列の場合は最後を...にしたいのです。
0007ナナシンボ02/02/06 17:31ID:dTW/dCg2
すごく一人でレスなんですが、カットはできてしまいました。
以外に簡単でした。
もう少し頑張ってみます。
0008ナナシンボ02/02/06 17:38ID:dTW/dCg2
あの解決してしまいました。。。
又,宜しくお願いします<(_ _)>
0009名無しさん@お腹いっぱい。02/02/06 18:44ID:???
>>4-8
お疲れヽ(´ー`)ノ
0010名無しさん@お腹いっぱい。02/02/10 16:19ID:EP30XMzI
perlに付け足してアクセスログをとる方法なんですが、
ブラウザの種類(携帯は機種も)、IP、SSID、日付、訪問回数等を
取得できる方法ありませんか?
今は
# 適当なファイルをopenして
open(LOG,'>>logfile');
# 情報を書き込む
print LOG "$ENV{'DATE'} $ENV{'HTTP_USER_AGENT'} $ENV{'REMOTE_HOST'} $ENV{'REMOTE_ADDR'}\n";
# ファイルをクローズ
close(LOG);
ってやってるんですが、1回のアクセスで同じ情報が数回残るんです。
ちなみに掲示板のCGIの上のほうにつけてるんですが。
0011名無しさん@お腹いっぱい。02/02/10 16:47ID:???
>>10
前来てたよね。
確か何もかもわからないとか言って散々遊ばれた。。。
0012名無しさん@お腹いっぱい。02/02/10 16:55ID:???
>>10
表示 1回。
書き込み 1回。
リロード 1回。

同一IPアドレスからは連続して情報を書き込まないようにすれば。
0013名無しさん@お腹いっぱい。02/02/10 16:55ID:???
それじゃ解りまへん
自分が取りたい所で取れば良し
0014名無しさん@お腹いっぱい。02/02/10 16:55ID:???
>>11
はい、来てました。
どうしても知りたかったのでこちらに質問させていただきました。
わかる人よろしくおねがいします。
0015名無しさん@お腹いっぱい。02/02/10 16:55ID:???
>>10

>>12な俺も既に回答は放棄してるよ。
もう少し具体的に書かないと。
0016名無しさん@お腹いっぱい。02/02/10 16:55ID:???
それ改造してんだろ? つーかSSID何かログれんのか?
自分で書いて何処でどう動いてるか分からんのか?
改造だったら改造スレにソース上げれば教えてくれるかもな
0017名無しさん@お腹いっぱい。02/02/10 17:27ID:Y1Zoz0Lg
ttp://tackysroom.com/sample/smp_updown.cgi
のエレベーター掲示板に
ttp://botan.sakura.ne.jp/~ruuzu/rebbs/rebbs.cgi?mode=res&no=33&inyoumode=35#toukou
のように引用ボタンを取り付け、テキストエリアに引用を表示したいのですがよろしくお願い致します。

エレベーター掲示板のソース
http://www.geocities.co.jp/Milkyway-Lynx/2562/UPDOWN.txt
おおまかに余分な所を取ったソース
http://www.geocities.co.jp/Milkyway-Lynx/2562/UPDOWN2.txt
0018名無しさん@お腹いっぱい。02/02/10 20:59ID:???
上のはどっかで見たぞ コピペ返しか?  w

>>10 コード見たら解りそうだが君の財布に幾ら入ってるかは誰も答えられない
今の情報で最善のレスは、一行づつずらして全部試せ、くらいだろうね
0019名無しさん@お腹いっぱい。02/02/10 21:03ID:???
>>17
全然見てないけど。。
引用ボタンはまあ適当に付けて、
レス返信画面でボタンチェックして、

ログ開いて、s/<br>/>><br>/g;
じゃダメ??  ダメか・・・

00201002/02/10 23:10ID:???
>>18
一行づつずらして全部試せとはどこのことですか?
あまりよく理解できまいんですが?
0021名無しさん@お腹いっぱい。02/02/11 00:18ID:???
あゆ板の設定の仕方がのってるページないでしょうか?
0022名無しさん@お腹いっぱい。02/02/11 00:46ID:???
>>21
煽られないうちにDownload板に行った方がいいよ。
0023名無しさん@お腹いっぱい。02/02/11 00:55ID:???
>>20
馬鹿
>>21
馬鹿
>>22
馬鹿
>>23
馬鹿
>>24
馬鹿
0024<丶`∀´>←バカ02/02/11 00:58ID:???
<丶`∀´>←バカ
0025名無しさん@お腹いっぱい。02/02/11 05:03ID:???
>>20-24
(・∀・)バーカ
002618 02/02/11 16:24ID:???
>20
理解っつうかネタなんだけど 
君が>10に書いた事をコードの一番上から一行づつずらして貼り付けて
テストしてみればと言う事、3000行のコードなら3000回繰り返しね
どっかに書いてたが、いい回答はいい質問から
コピペの意味が解らなかったらPC初心者板で聞いてみよう

# 俺は消えるので後の人よろしく
0027名無しさん@お腹いっぱい。02/02/11 17:08ID:???
>>26 俺もどっかで答えたんだけどコイツ駄目だよ
多分割れ板かなんかの恥ずかしいスクリプトの改造なんだろう
書けない読めないコードは出さないじゃどうしようも無い
よって放置ケテーイ
0028名無しさん@お腹いっぱい。02/02/13 05:21ID:wBlXKE9R
あげ
00291702/02/14 18:32ID:???
>>19
ありがとうございました。
引用ボタン適当に付けて、ログ呼んで
">$comment3";
s/>/>/g;
s/<br>/\r>/ig;
で上手く出来ました。
0030もにた02/02/14 21:08ID:74mkviDH
ホームページを携帯電話から更新できるようにしたいと思い
http://www.bsp-net.com/
さんの
http://www.bsp-net.com/soft/MobileWebEditor.html
を使いたかったのですが
いかんせん、編集したいhtmlファイルのサイズが大きいため
携帯で全部表示されないわ、パケット代かかりまくるわで
困ってしまいました。
そこで、htmlファイル内に何か特定のコメント文を仕込んで
それをcgiが認識して、その部分のみを表示・編集できたら
いいなと考えてるんですが・・・

<html>
<body>
hogehoge
<!--[start]--!>
この部分を表示して編集できる
<!--[end]--!>
hogege
</body>
</html>

こんな感じで改造したいのですが、どうすればいいでしょうか?




0031名無しさん@お腹いっぱい。02/02/14 21:12ID:JQ2Gyegk
>30
p-inとザウルスが、3ヶ月分のパケット代で買えるよ。
0032もにた02/02/14 21:19ID:74mkviDH
>31
いや、まぁそれはごもっともなんですが。
ハードを買うことへの抵抗と、基本料金が・・・
貧乏学生なんで、cgiで済ませたいという安直な考えです。
すいませんがよろしくお願いします。
0033名無しさん@お腹いっぱい。02/02/15 02:50ID:SfH5n30w
プログラム経験なしの厨房です、すみません。

掲示板の「発言を下に下に伸ばしていける」スクリプトにしたいのですが、
勘でいろいろいじって「下へ伸びる形」にはやっとできたものの、
ログの最大書き込み行数を超えた時に超えた分を消していくこと
(最大行数$max_msgsを超える文の書き込み)ができなくて、困っています。

スクリプトはここhttp://www.geocities.co.jp/PowderRoom-Rose/8246/wwwboard.txtにあります。

とほほさんのところの過去ログhttp://tohoho.wakusei.ne.jp/lng/199904/99040143.htmを調べたり、

「wwwboard.tmp を作成する時点で、メッセージの個数($current_msgs)を求めて
おいて、.tmp から .dat へのコピーの際に、$current_msgs から
$max_msgs を引いた個数分、読み飛ばしを行えばよいでしょう」

という助言も戴いたのですが、具体的にどのように書けばいいのかがわからなくて……不勉強で申しわけないです、おしえてください。
0034賛成の反対の反対ナノだ!02/02/15 04:15ID:???
> 33 その助言の内容からすると以下のようになるが、追加内容の末尾改行がないけど書き替えた?
   #
   # Append messages.
   #
   open(IN, "wwwboard.dat");
   while (<IN>) {
       print OUT;
   }
   $current_msgs= $.; ### ADD NEW
###〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
   #
   # Copy .tmp to .dat
   #
   open(IN, "wwwboard.tmp");
   open(OUT, "> wwwboard.dat");
   $msgs = 0;
   while (<IN>) {
       next if $current_msgs-- > $max_msgs; ### ADD NEW
00353302/02/15 04:47ID:ZtkdPyAc
はい、<BR>の自動追加は全部削りました。(ひょっとしてこのことではないですか?読み違えてたらすみません
0036賛成の反対の反対ナノだ!02/02/15 05:14ID:???
   # Write current message.
   $FORM{'MESSAGE'} =~ s/[\r\n]+$//g;
   $FORM{'MESSAGE'} =~ s/\r/<BR>/g;

;### ↑の処理後、↓の書きこみが行なわれて即、閉じられているので$FORM{'MESSAGE'}の
;### 最終文字は "\n" じゃないと思われる。
;### 1データを1行で管理するタイプのスクリプトだと思うのでこれではデータ毎の区別が
;### つかないような...(気のせい?)

# 挿入するもの↓。改行とか、スペースとか。
   print OUT "$FORM{'MESSAGE'}";
   close(IN);
   close(OUT);
0037名無しさん@お腹いっぱい。02/02/15 05:17ID:???
>>35
質問に答えた人じゃないけど…
<br>というより\nがないとログが一行になっちゃうよ?
\nが無いとwhileで廻せないと思うんだけど。
print OUT "$FORM{'MESSAGE'}<br>\n";
00383702/02/15 05:19ID:???
>>36
スミマセン…
00393302/02/15 05:21ID:qJwMiHXl
うおぉォ……、できましたッ!httpd起動させ、
>>34さんのスクリプトを実行し、完全解決致しました!

>34さん、あなた、「神」です!

本当に、本当にありがとうございました!

あなたが宗教開いたらぼく、入るかもしれません。
00403302/02/15 05:23ID:qJwMiHXl
あ、そうなのですか!\nいれときます、ありがとうございます!
0041名無しさん@お腹いっぱい。02/02/15 05:27ID:???
>>40
いや、出来たのなら、それで良いんだとおもいます。
かぶちゃったからゴメンナサイしただけで…。
良かったね。
00423302/02/15 05:29ID:qJwMiHXl
よかったです……。
2chきてこんなありがたい思いしたのはじめてです、ありがとうございました!
0043賛成の反対の反対ナノだ!02/02/15 05:41ID:???
宗教にかんしては、今しばらくおまちください。
いそいで勧誘のチラシを刷っているところです。

「最高ですか〜〜!!」「これが定説です。」うーんチョット違うナー。
0044名無しさん@お腹いっぱい。02/02/15 18:57ID:JdM/hpw9
>>30
の問題を解こうとして、<!--start-->の所に書き込みを挿入していくのは
まあ表面上だけはできたのですが、どうもコメントタグに囲まれた部分を
編集するのとはちょっと違うなぁということに気が付きました。。
まだしばらくいじってみるかもしれませんが、一応模範解答みたいなのも
欲しいので、お願いできませんでしょうか。

元ソースは http://www.miniflo.com/cgi/up/source/040.txt
しょぼいじりかけは http://www.miniflo.com/cgi/up/source/042.txt です。

あと、元ソースのprintに相当する所の書き方は、これ真似したほうがいいんでしょうか?
実は、こういう書き方のほうが後々応用がきくとかですかね。
0045賛成の反対の反対ナノだ!02/02/16 06:55ID:???
> 44 これでどう? 実際に実行してないけどこんな感じでは..?
#!/usr/local/bin/perl
(my $script= $0 )=~ s/^.*[\/\\]//g;
my( $passwd )= 'abcd';
my( $jcode )= './lib/jcode.pl';
my( $tmpFile )= "${script}_$$.tmp";
my($html,$name,$do);
my( %FORM );
require $jcode; &decode;
&Html('パスワード未設定') unless $passwd; &Html('Top Page') unless %FORM;
&Html('Password Input Error!') if $FORM{'pass'} ne $passwd;
&Html('No Data') unless ($html= $FORM{'html'})=~ tr/\r\n//d or $html;
open(IN, $FORM{'file'}); eval{ flock(IN, 1) }; open(TMP, "+<$tmpFile"); eval{ flock(TMP,2) }; truncate(TMP, 0);
(seek(IN, 0, 0) && seek(TMP, 0, 0)) or &Html('File Open Error!');
while (<IN>){
   if(/(.*)<!--start-->/ .. /<!--end-->(.|\n)*/){
       print TMP $& if $do && $1;
       print TMP "$&\n$html\n" unless $do++; next;
   }
   print TMP $_;
}
close(IN); close(TMP); rename($tmpFile, $FORM{'file'}) ? &Html('Edit OK!') : &Html('Edit Error!');
sub decode{
   read(STDIN, $_, $ENV{'CONTENT_LENGTH'}) unless $_= $ENV{'QUERY_STRING'};
   for ( split('&') ){
       ($name, $_)= split('=');
       tr/+/ /; s/%(..)/chr(hex($1))/eg; # s/<!--[^\-]*-->//g;
       &jcode::convert(\$_,'sjis'); $FORM{$name}= $_;
   }
}
sub Html{
   print <<HTML;
Content-type: text/html

<HTML><BODY><FORM ACTION="$script" METHOD=POST>File:<INPUT name=file><BR>Pass:<INPUT name=pass><BR>
<TEXTAREA COLS=20 ROWS=5 NAME=html></TEXTAREA><BR><INPUT TYPE=submit VALUE=Edit> <INPUT TYPE=reset VALUE=Reset><HR>$_[$[]</FORM></BODY></HTML>
HTML
   exit;
}
0046名無しさん@お腹いっぱい。02/02/16 12:39ID:C81G2/9S
メールフォームのCGIで、
http://www.kzm-pt.com/seimei/form.htmlのサイトさんの様に
@マークより前のアカウント部分のみ記入したら送信できるようにしたいのですが
よくわかりませんでした。
CGIはテキスト形式にしてアップしてみました。
こちらhttp://stormy.fc2web.com/webform.txt

どなたか教えてください。
よろしくお願いします。
0047名無しさん@お腹いっぱい。02/02/16 12:44ID:???
if (!($value =~ /(.*)\@(.*)\.(.*)/)) { $value = ""; }
を
if (!($value =~ /(.*)\@(.*)\.(.*)/)) { $value = $1; }

0048名無しさん@お腹いっぱい。02/02/16 13:05ID:C81G2/9S
>>47
変更してみましたが、
「Eメールを入力してください」というエラーが出てきてしまい
変わらず送信できませんでした・・・
0049名無しさん@お腹いっぱい。02/02/16 13:26ID:???
if (($value =~ /(.*)\@(.*)\.(.*)/)) { $value = $1; }
0050名無しさん@お腹いっぱい。02/02/16 16:42ID:???
>>49
有り難う御座いました。出来ました。
本当に感謝してます。
0051名無しさん@お腹いっぱい。02/02/16 21:46ID:???
>>47,49
なんかカコイイ
0052厨房perler02/02/17 08:30ID:???
スクリプトを書いたのですがなんかグロいです。助けてください!

if($a =~ /@@@@/){ print $a; }
if($b =~ /□ □/){ print $b; }
if($c =~ /  ◎/){ print $b; }
0053名無しさん@お腹いっぱい。02/02/17 21:49ID:???
質問させて下さい。
チャットなんですが、一般的にログは下から上へ流れますよね?
これはスクリプトで定義されているんでしょうか?
Niftyなんかですと、上から下へとログが流れるので
出来れば、そういう仕様のチャットに改造してみたいんです。
探してみたんですけど見つからないので、改造で何とかなるなら
頑張りたいと思い、質問してみました。
すみませんが、分かる方いらっしゃったらよろしくお願いします。
0054名無しさん@お腹いっぱい。02/02/17 23:07ID:???
>>53
???
cgiでやってるチャットなら普通だいたい新しいのが上じゃない?
00555302/02/17 23:27ID:???
>54
ええ、新しいのが上にきますよね?
それを新しいのが下にくるように出来たらいいなと思ってるんです。
それで、その流れを決めてるのはスクリプトなのか
改造可能なのかが知りたかったんですよ。
0056名無しさん@お腹いっぱい。02/02/17 23:32ID:???
>55
通常、新しいものが上に来るようにするためには、
正順に記録されたログを@LINEのような配列に読み込み、
reverseします。
005753=5502/02/18 00:07ID:???
>56
ありがとうございます!
ということは正順に並んでいるログをわざわざ逆転させてるんですね。
おっしゃってるのは

foreach (@lines) {
if ($str2 ne '') { if ($_ =~ /$str2/) { next; } }
elsif ($str1 ne '') { if ($_ =~ /$str1/ && $_ =~ /$host/) { next; } }
if (++$i >= $max) { last; } else { push(@new, $_); }
}
if ($str1 eq '' && $str2 eq '') { unshift(@new, $val); }

この辺りのスクリプトでしょうか。
ログ保存の部分にあった@LINEなんですけど。
0058名無しさん@お腹いっぱい。02/02/18 00:17ID:???
>57
うん。そのforeachのまえで、
@lines = reverse @lines;
というような処理を入れてあげるとひっくり返る。
00595302/02/18 04:46ID:???
@lines = reverse @lines;
を入れてみました。出来たー!と思ったのも束の間…。
ログがですね

6
4
2
1
3
5
というように奇数行は希望通りに上から下なのに
偶数行は下から上という流れになってしまいました(汗
多少のカスタマイズが出来るくらいで、スクリプト自体が読める
訳ではないので詰まってしまいました。
あとは何が足りないんでしょうか。

以前からミスってた部分の見直しとかしてたら
こんな時間になってしまった…。
いい加減に寝ておこう。
0060名無しさん@お腹いっぱい。02/02/18 14:16ID:???
age
0061名無しさん@お腹いっぱい。02/02/18 14:20ID:???
インターリーブっぽく記録されてたり。
もう一つデータ管理してる変数無い?
0062名無しさん@お腹いっぱい。02/02/18 18:09ID:UxBPmNlO
http://homepage1.nifty.com/~studio/prog/srch/index.htm

この検索エンジンに、完全一致と項目別検索の機能を盛り込みたいんですが、
どうすればよいでしょうか?データファイルはCSVになってます。
0063名無しさん@お腹いっぱい。02/02/18 19:32ID:???
ソース読むのめんどくさい(;´Д`)
ある程度目星付けてくれれば協力するかも。
0064名無しさん@お腹いっぱい。02/02/19 04:48ID:???
朝なんであげとくね
0065名無しさん@お腹いっぱい。02/02/19 09:11ID:bQza7qr8
KENTさんのLight bordにIPとホストを両方とりたいのですが
今の掲示板では片方しか取得する事が出来ません。
両方取得出きる方法を知りたいんです。
設定のところに

# ホスト名取得モード
# --> 0 : $ENV{'REMOTE_HOST'} で取得できる場合
# --> 1 : gethostbyaddr で取得できる場合
$get_remotehost = 0;

↑のようなソースがあり、ホスト名取得は

## --- ホスト名取得
sub get_host {
$host = $ENV{'REMOTE_HOST'};
$addr = $ENV{'REMOTE_ADDR'};

if ($get_remotehost) {
if ($host eq "" || $host eq "$addr") {
$host = gethostbyaddr(pack("C4",split(/\./,$addr)),2);
}
}
if ($host eq "") { $host = $addr; }
}

↑のようになっているんですがこれを変えてログへの書き込み処理を変えれば可能ですよね?
ログへの書き込み処理は自分でやれると思いますので↑に書いた部分をどう変えれば両方取得出来るか
教えては頂けないでしょうか?↑はifってなってるのでそのままifを消したりしたんですけど当然ダメでした。


おぉ力也か。え?やっぱり行ける?もう取り消しの電話入れちまったじゃねぇかよ。
00666502/02/19 09:13ID:bQza7qr8
一番下の力也ってやつは見なかった方向でお願いします。
0067名無しさん@お腹いっぱい。02/02/19 09:58ID:uiFxg8op
>65
そこはIPとリモートホストのルーチン部分だ。
記載している場所はほかにあるから、
$hostで検索して、printしてるところを見つけれ。
0068名無しさん@お腹いっぱい。02/02/19 09:59ID:uiFxg8op
あと、力也には、優柔不断にぐたぐた言うなっていっとけ。
00691ファンより02/02/19 12:49ID:???
力也の再登場を願って止みません
00706502/02/19 13:03ID:bQza7qr8
>>67
あそこじゃないんですか!?
あそこだと確信してたんですけども。
どこなんでしょう?いくら探しても他にホストやIPを取得してるような所は見当たらないんですけど。
もしよかったら探してくれませんか?めんどくさいですか?てめーでやれカスですか?
↓がソースです。それと力也ネタは勘弁して下さい。力也は忘れてください。
http://csx.jp/~hage/light.txt
0071名無しさん@お腹いっぱい。02/02/19 13:05ID:???
>>70
だから彼は「表示するところを探せ」と言っているが。
printが表示する命令だと知らないのか?大変だぞ。
00726502/02/19 13:50ID:???
>>71
あっそうですね。でもprintを探すんですか?
でも今のままだと$hostにipかホスト名のどちらかしかを書き込むので片方しか取得できないんです。
printを探すのはIPとリモートホストのルーチンを書き換えたあとの話しでは?
printを探してログへの書き込み処理を変えるのは私でも出来ると思うのでですが
どうすればifという形式ではなく両方を取得できるのかを知りたいんです。
教えてもらえますか?
てめーなんかに教えるぐらいならダンゴ虫に教えた方がマシだボケですか?
0073名無しさん@お腹いっぱい。02/02/19 14:02ID:uqUI0/lz
>71
thx!
>72
みてみた。4カ所ほど変更する必要があるので、手間がかかり教えるのが面倒くさい。

しゃれのつもりなんだろうが、質問の仕方がカワイゲないので
心を入れ替えるまで放置することにした。
誰か優しい人が教えてくれるかもしれない。

ref.>もしよかったら探してくれませんか?めんどくさいですか?てめーでやれカスですか?
ref.>てめーなんかに教えるぐらいならダンゴ虫に教えた方がマシだボケですか?
00746502/02/19 14:18ID:bQza7qr8
>>73
ID違うけど>>67さんかな?
いや、なんか普通の文じゃつまらなくてレス返ってこないかな?と思ってつけたしたんですけど…
自分ではわからないながらも表示以外のところは結構簡単にできるような気がしてたんですけど4個所もあるんですか。
それじゃあ仕方ないですね。そちらにはメリットなにもありませんし。
誰か教えてくれるまで気長に待ちます。
00756702/02/19 14:24ID:uqUI0/lz
>74
うんそう。
ここそんなに住人多くないって(笑)。

んで、ちょとカワイゲある文章になったので関心が戻ったりして。
このスクリプト、ログにリモートホストかIP残すだけで、画面表示しないんだな。
改造自体はそんなに大変ではないと思う。問題は、うまく行かないときのでバッグだな。
00766702/02/19 14:29ID:uqUI0/lz
224行目:
($number,$date,$name,$email,$subj,$comment,$url,$host,$pwd)
を
($number,$date,$name,$email,$subj,$comment,$url,$host,$addr,$pwd)
に変更。
335行目;
unshift(@lines,"$number<>$date<>$name<>$email<>$sub<>$comment<>$url<>$host<>$ango<>\n");
を
unshift(@lines,"$number<>$date<>$name<>$email<>$sub<>$comment<>$url<>$host<>$addr<>$ango<>\n");
に変更
656行目:
($number,$date,$name,$email,$subj,$comment,$url,$host,$ango)
を
($number,$date,$name,$email,$subj,$comment,$url,$host,$addr,$ango)
に変更
666行目:
($number,$date,$name,$email,$subj,$comment,$url,$host,$ango)
を
($number,$date,$name,$email,$subj,$comment,$url,$host,$addr,$ango)
に変更。
多分これでうまく行く。
00776502/02/19 14:45ID:bQza7qr8
>>76
おおおぉぉぉッ!
出来ましたッ感動です!
ってゆーかそれと全く同じように昨日やったんですけど出来なくてこれじゃダメなんだなぁって
思ってたんですけど昨日やった時はたぶんどっか間違ってたんですね〜。
一回試して>>65で挙げた部分を改良してから>>76さんのようにやれば出来ると思い込んでました。
それだけでよかったんですか〜あ〜出来てすっごい嬉しいです。
たぶん誰にもレスされないで終わるだろうなと思ってましたし。
昨日から徹夜でやっててそろそろ限界だったんですけどこれで目が覚めました。
本当にありがとうございました。
00786702/02/19 15:04ID:???
>77
単純なタイプミストかがあったんだと思う。
どちらにしてもよかった。
0079名無しさん@お腹いっぱい。02/02/19 15:54ID:???
age
00805302/02/19 19:37ID:???
チャットのログを改造していたがっていた者です。
教えて頂いたreverseだと奇数が元のままなので悩んだまま
止まってましたが、聞く前に調べる努力をしてなかったので
本屋に行って見てきました(始めから行けって言わないで下さい。
まず改造出来るものかどうか知りたかったんです)
reverseでなくsortで試したところ、新しいログが下にくるように
なりました!
一番新しい発言だけが上にくるんですけど、今はとりあえず流れが
望んだ通りになったんで嬉しいです。
CGIを勉強してみたくなりました(笑
ご助言、どうも有難うございました。
0081名無しさん@お腹いっぱい。02/02/20 04:49ID:???
定時あげ
0082名無しさん@お腹いっぱい。02/02/22 15:28ID:9ER9/CDB
サルでありますが、CGIの添削をお願いできませんでしょうか。

2chのsubback.htmlにsocket→sort→diffをかけるものです。
こんがらがったので2つに分けたままなのですが
sockt部が http://nogdnik.s3.xrea.com/sagepicker/client.txt
sort,diff部が http://nogdnik.s3.xrea.com/sagepicker/diff.txt
であります。
動作は http://nogdnik.s3.xrea.com/sagepicker/ 
で一応動いたのですが、どう考えてもソースが汚いと思われる上に
余計な(サーバに負荷をかけるような)動作も行っている気がします。。

スマートな解法等ありましたら、宜しくお願い致します。
0083真木素人02/02/24 00:20ID:VkuFVpRf
ttp://www.area-s.com/main/missinglink.html
↑MissingLinkのナレーションBBSのおねえさんといっしょを
HPに設置したいんですけど、改造&設置の仕方がわかりません
ナレーションBBS2.1とおねえさんといっしょのキットは
DLして解凍まではわかったのですが、そのあとが…

改造はおねえさんといっしょのキットをそのまま使いたいのですが…
改造のしかたと設置のしかた教えてください
お願いします
0084名無しさん@お腹いっぱい。02/02/24 01:57ID:???
設置もできないくせに改造しようなんて思うな
0085名無しさん@お腹いっぱい。02/02/24 10:24ID:???
設置の仕方なんかそのサイトで聞けよな
0086名無しさん@お腹いっぱい。02/02/24 14:43ID:???
http://pc.2ch.net/test/read.cgi/perl/1013594041/989
0087わかりません02/02/27 12:01ID:/Q61BdR8
if($i_photo_chk eq 'url'){
@photo_urls=("$i_photo_url1","$i_photo_url2","$i_photo_url3");
foreach(@photo_urls){
if($_ ne ''){
if($_ =~ /^http.*jpg$/){
$i_comment = "$i_comment<br><IMG src=\"$_\">";
}else{
&print_error("写真URLの入力が正しくありません。注意&解説を参照して確かめてください。<br>Macintosh環境でも拡張子(.jpg)をつけて下さい。");
}


すみません。
↑ここらへんで拡張子JPGだけしか選べなくなってるのを、gifも選べるようにしてあげたいんですが、
どうしたらいいですか?つまり、JPGとGIFを認めてあげたいんですが・・・。
エラーばっかりでわけわかめです。
誰か教えて下さい。お願いします。
0088名無しさん@お腹いっぱい。02/02/27 12:39ID:???
if($i_photo_chk eq 'url'){
  @photo_urls=("$i_photo_url1","$i_photo_url2","$i_photo_url3");

    foreach(@photo_urls){
      if($_ ne ''){
        if($_ =~ /^http.*gif$/ || $_ =~ /^http.*jpg$/){ #←ココ
        $i_comment = "$i_comment<br><IMG src=\"$_\">";
      }else{
        &print_error("写真URLの入力が正しくありません。注意&解説を参照して確かめてください。<br>Macintosh環境でも拡張子(.jpg)をつけて下さい。");
    }

PNGとか追加して多くなるようだったら配列使うほうが楽かも。
0089名無しさん@お腹いっぱい。02/02/27 13:28ID:???
もっとスマートに書けるでしょう……
しかもチェックも甘いし。まぁ他人事だからいいけど。

m#^http://[^/]+/.+\.(?:jpg|gif)#i
0090名無しさん@お腹いっぱい。02/02/27 13:29ID:???
(?:jpg|gif)$
0091名無しさん@お腹いっぱい。02/02/27 15:16ID:uzDDNMO0
少し脳みそを貸して下さい。
返信できる掲示板を改造し、親記事への返信に対してradioboxで5段階の採点
ができるようにしました。が、たまに採点がおかしくなります。

1ページに表示されている全ての返信記事に一気に採点できるようにしました。
$noは親記事のNo. $res_noは返信記事のNo.です。
簡単に書きます。
-------■フォーム部分■---------
[最高:<INPUT TYPE=RADIO NAME=\"($no)-$res_no\" value=5>]
[良い:<INPUT TYPE=RADIO NAME=\"($no)-$res_no\" value=4>]
のようなものをあと3つ
-------■フォーム部分■---------
0092名無しさん@お腹いっぱい。02/02/27 15:16ID:uzDDNMO0
ログの形式:<>で区切ってます。
$x1が親記事の番号で$x2が返信記事の番号です。
行の最後に採点のためのデータを6つ追加しました。
$xjが合計点で、$xe〜$xiまでが各採点の数。

-------■ログの形式■---------
130<>1<>名前<>タイトル<><><>親記事のコメント<>#ff6633<><><>02/02/26(Tue)02:29<>0.XuCN0FGrIKQ<>1014702931<>0<>0<>0<>0<>0<>0<>
(130)<>1<>名前<>タイトル<><><>親記事への返信のコメント<>#ff6633<><><>02/02/26(Tue)02:29<>0.XuCN0FGrIKQ<>1014702931<>0<>0<>0<>0<>0<>0<>
-------■ログの形式■---------
0093名無しさん@お腹いっぱい。02/02/27 15:20ID:uzDDNMO0
2重カキコとか言われて書き込めん!
0094名無しさん@お腹いっぱい。02/02/27 15:20ID:uzDDNMO0

ログから全記事を@all_linesに読み込む。
while (($key, $value) = each %in){
if( $key =~ /^%28\d+%29-\d/ ){
$key =~ s/^%28(\d+)%29-(\d+)/$1,$2/ ;
foreach (@all_lines) {
if( /^\($1\)<>$2/ ){
my($x1,$x2,$x3,$x4,$x5,$x6,$x7,$x8,$x9,$xa,$xb,$xc,$xd,$xe,$xf,$xg,$xh,$xi,$xj)=split(/<->/);
if($value == 5){ $xe = $xe+1 ;}
elsif($value == 4){ $xf = $xf + 1;}
elsif($value == 3){ $xg = $xg +1;}
elsif($value == 2){ $xh = $xh +1;}
elsif($value == 1){ $xi = $xi +1;}
else{ エラー処理;}
$xj = ($xe * 5) + ($xf * 4) + ($xg * 3) + ($xh * 2) + ($xi * 1);
push(@new, "$x1<>$x2<>$x3<>$x4<>$x5<>$x6<>$x7<>$x8<>$x9<>$xa<>$xb<>$xc<>$xd<>$xe<>$xf<>$xg<>$xh<>$xi<>$xj<>\n");
}else { push(@new, $_ );}
}
$#all_lines = -1 ; #これは必要?
@all_lines = @new ;
$#new = -1 ;
}
}

@all_linesをファイルに書き込む。
0095名無しさん@お腹いっぱい。02/02/27 15:26ID:uzDDNMO0
受け取り側がすごく間抜けなコーディングですが、
もっとスマートな方法はないものでしょうか?
さらにバグがあるようです。たまに採点した以上に採点の数が増えます。
よろしくお願いします。
0096わかりません02/02/27 15:49ID:/Q61BdR8
ありがとうございます!!感謝感激です。
ところで、
@@@@@@@@@@@@@@@@@@@@@@@@@@
sub upnote {
local($get_pf_name)=shift;local($pffno)=shift;
if($file_name{"$get_pf_name"} =~ /jpg$/){
$psc=0;
$file_len=length($file_data{"$get_pf_name"});
if($file_len<=0){
&print_error("画像が選択されていません。");
}elsif($file_len>=$photo_max_size*1024){
&print_error("$photo_max_size\KB以下の画像しか指定できません。");
}#--end

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
↑ここの部分も、JPGしかアップロード出来ないんですけど、これもGIFをアップロードしたいのですが・・・。
0097名無しさん@お腹いっぱい。02/02/27 15:54ID:???
>>96
たよってたよって大正解。
0098わかりません02/02/27 16:09ID:/Q61BdR8
>>97
まじ途方にくれてたので大正解っす。どこいじってもエラーになってわけわかりまっしぇん!
要は「JPGだけじゃなくGIFも使いたい」ってことだけなんですけどね・・・。
0099名無しさん@お腹いっぱい。02/02/28 20:48ID:cUMoNmua
PHPのファイルあぷろだなんだけど
初期設定のアップロード制限意外に
デフォルトで2Mが限度になってるみたいなんだけど
その制限をとっぱらうにはどうしたらよいでしょ?
アドバイス頂けませんでしょうかm(_ _)m

↓ソース
http://www.geocities.co.jp/Milkyway-Lynx/2562/upload.txt
0100名無しさん@お腹いっぱい。02/03/01 02:13ID:???
2ch型の掲示板です。

レス書き込みの際、メール欄に「dame」と入れることによって
スレッドの配置を一番下に移動させる機能を付けたいのですが
解る方いましたら宜しくお願いします。

↓掲示板の外観です
http://www.42ch.net/UploaderGeneral/source/224.htm
↓メインのスクリプトです
http://www.42ch.net/UploaderGeneral/source/225.txt
010110002/03/01 02:24ID:enmjRXxk
(レスのチェック部分です)

# - レス付与 -------------------------------------
sub res {
   〜〜〜〜〜〜〜
     # age_______________________________
     if (!$sage) {
          push(@DATA,splice(@DATA,$no,1));
      }
   〜〜〜〜〜〜〜
}

# - フォームチェック ------------------------------
sub formcheck {
   〜〜〜〜〜〜〜
     # E-mailチェック____________________
     if ($mail =~ /sage/) {
          $sage = 1;
      }
   〜〜〜〜〜〜〜
}
■ このスレッドは過去ログ倉庫に格納されています