1 :
sage :
03/09/17 15:28 ID:ZcvVdw5C #================================
# スレッドの説明
#================================
「スクリプトを改造したいけどやりかたわかんないよー」という人がいましたら
ここで聞いてください。ひょっとしたらアドバイス出来るかもしれません。
質問するときは以下の点に注意して書いて下さい
(1) そのスクリプトの内容と置いてある場所を明記する (txtファイルでUPすればなお良い)
(2) どんな風に改造して欲しいのか? (完成イメージHTMLを用意すればなお良し)
(3) 出来るだけ詳しく書くこと。少しは自分で考えること。できれば御礼も言ったほうが良い
※答えてくれないからといって逆ギレする厨はお断り
過去ログ
>>2
4 :
nobodyさん :03/09/18 01:52 ID:ixewk0aN
おつかれぃ
6 :
5 :03/09/18 08:15 ID:???
ごめんなさい。 追加です。 できれば、画像をアップした時にプレビュー画像がでるようにしてくださると幸いです。 ややこしいこと言って申し訳ないです。
んなURL踏むかよ
まったく知識がないなら初めから画像掲示板を使え
9 :
すみません、長くなります。 :03/09/18 12:00 ID:ixewk0aN
print "<SCRIPT language=\"JavaScript\">\n"; print "<!--\n"; print "// _dom : 0=other, 1=Mozilla, 2=NN4, 3=IE4/5\n"; print "_dom=(document.all?3:(document.getElementById?1:(document.layers?2:0)));\n"; print "function getDiv(nm){\n"; print " if(_dom==1) return document.getElementById(nm);\n"; print " if(_dom==2){\n"; print " var s='';\n"; print " for(var i=1; i<arguments.length; i++)\n"; print " s+='document.layers.'+arguments[i]+'.';\n"; print " return eval(s+'document.layers.'+nm);\n"; print " }\n"; print " if(_dom==3) return document.all(nm);\n"; print " return null;\n"; print "}\n"; print "function showLAYER(div){\n"; print " if(_dom==2)div.visibility='show'\n"; print " if(_dom==1 || _dom==3){div.style.visibility='visible'}\n"; print "}\n"; print "function hideLAYER(div){\n"; print " if(_dom==2)div.visibility='hide'\n"; print " if(_dom==1 || _dom==3){div.style.visibility='hidden'}\n"; print "}\n"; print "function setBGCOLOR(div,color){ \n"; print " if(_dom==2){div.bgColor=color ; return;}\n"; * print " if(_dom==1 || _dom==3){div.style.backgroundColor=color; return;}\n";
10 :
>>9-10 :03/09/18 12:00 ID:ixewk0aN
print "}\n"; print "window.onload=BGC\n"; print "function BGC(){\n"; print " setBGCOLOR(getDiv('test0'),'#FFFFbb')\n"; print "} \n"; print "-->\n"; print "</SCRIPT>\n"; DHTMLやJavaScriptを用いて、ポップアップウィンドウを取り付けようとしてるんですが *のついてるラインに「オブジェクトがありません」というエラーが出てきて動作してくれないんです。 Perl文法チェックもクリアし、また、HTMLファイルなら正常に動作しました。 *のラインを削除すればまた別の場所にガタが来てしまい、にっちもさっちも行きません。 何が原因なのでしょうか?
>>11 そりゃJavaScriptのエラーだ。板が違う
エラーそのものは、div が null だから。
13 :
11 :03/09/18 12:16 ID:???
>>12 ありがとうございます。
板違いすみませんでした。
別の板で訊いてみます。
14 :
nobodyさん :03/09/18 12:58 ID:YoW283GX
(´・∀・`)ヘー
15 :
nobodyさん :03/09/18 13:00 ID:YoW283GX
( ・∀・)つ〃
機能をひとつ追加するのって大変なんよ…
注文かぁ・・・
19 :
nobody ◆2chGAUCATE :03/09/19 14:23 ID:vq53tWeh
URLジャンプを作りたいんですけど、 まず書き込まれたURLを s/([^=^\"]|^)(http|ftp)(\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#\%]+)/$1<a href=\"jamp.cgi?site=$2$3\" target=\"_target\">$2$3<\/a> にしてsite=[$2$3]の部分を取り出して、ジャンプするURLをひょうじしたいんだが、 どうやってやるか・・・・・・・・
広告でも貼りまくろうってのか?
俺、つい三日くらい前に目からうろこが落ちたよ。 暗闇の中にいたはずが急に薄ぼんやりだけど明るくなって来た。 ハッシュとファイルの開け閉めがわかったとたんのことだった。 ようやく初心者段階にたどり着いたよ。 わかるかなぁ、この感動。
>>16 > 手助けよろしくお願いします。
うん、手助けしてあげる。
そのかわり、できる所まで自分で改造しる!
本を1冊やったんなら、そこそこできると思うし…
同じ作者のスクリプトだから移植性はいいと思うぞ。
(スクリプト見てないけど…)
>>24 ありがとうございます。
しかし、この本、ほんとに初心者用で、すごく簡単なタイプのゲストブック程度を作るぐらいのレベルまでしか載っていないんです。
それにスクリプトはCGI Cafeさんがデザイン改造されただけで、もとの作者はBBSの方がTackyさんでアプロダの方はKentさんなんですよ(´・ω・)
私にできるのはせいざいアップに関係のありそうなスカラーをコピペするぐらいでしょうか。。
28 :
nobodyさん :03/09/19 20:59 ID:IKKn6B4V
#ログ読込 open(IN,"$file") || &error("Can't open $file"); @lines = <IN>; close(IN); #$count初期化 $count = 0; #ログ全部 foreach $line (@lines) { local($name,$email,$url,$msr) = split(/<>/,$line); #カウント処理 $count = $count + 1; &output; } IE6とNN7とOperaを使ってます。 掲示板で、書き込みがあるカウント数に達する毎に<br>や</tr>等で 改行させるようにする事は可能でしょうか? 今のところ$countを使うことで書き込み1つ1つにカウント数を割り当てる事は出来ました。 ここから、例えば10カウント毎に</tr>を入れて改行させたいのですが その方法はおろか可能かどうかもわからなくて不安でして・・・。
29 :
26 :03/09/19 21:02 ID:???
2ちゃんねるに書き込むのは1年ぐらい前にPCが起動しなくなった時Window板に書き込んだ時以来ですので違いますよ。 というよりDat落ちしてるのでその記事が読めないんですが、もしかして全く同じ注文なんですか?
>>28 #ログ全部
foreach my $count (0 .. $#lines) {
local($name,$email,$url,$msr) = split(/<>/,$lines[$count]);
print ($count%10 == 9) ? '</tr>' : '<br>' ;
}
みたいな?
31 :
28 :03/09/20 02:56 ID:???
>>30 をどう試して、どういうエラーが出たのか書いてくれんと。
>>32 >>30 のスクリプトをそのまま
#ログ全部
foreach $line (@lines) {
local($name,$email,$url,$msr) = split(/<>/,$line);
と入れ替えるとサーバエラーになりました。
文法をチェックしてみると
print (...) interpreted as function at tmp.pl line 116.
Useless use of a constant in void context at tmp.pl line 119.
Useless use of a constant in void context at tmp.pl line 119.
Unmatched right bracket at tmp.pl line 126, at end of line
syntax error at tmp.pl line 126, near "}"
tmp.pl had compilation errors.
↓エキサイト翻訳
tmp.pl 116行で機能として解釈された印刷(...)。tmp.pl 119行に無効の情況中の定数の役立たない使用。
tmp.pl 119行に無効の情況中の定数の役立たない使用。
tmp.pl 126行に無比の右ブラケットはライン・シンタックス・エラーの終わりに、
tmp.pl 126行で「}」tmp.plの近くで編集エラーを持っていました。
116行目はprint ($count%10 == 9) ? '</tr>' : '<br>' ;
119行目は$count = $count + 1;
126行目は }
です。
↓もう少し続きます。
foreach my $count (0 .. $#lines) { local($name,$email,$url,$msr) = split(/<>/,$lines[$count]); print ($count%10 == 9) ? '</tr>' : '<br>' ; } の一番最後の}を外すとサーバエラーにはなりませんが 「オブジェクトがありません」のエラーに。(これは記述ミスが原因のようです) チェックすると tmp.pl 116行で機能として解釈された印刷(...)。 tmp.pl 116行に無効の情況中の定数の役立たない使用。 tmp.pl 116行に無効の情況中の定数の役立たない使用。 一度だけ使用される名前「main::s2」:tmp.pl 77行に可能な誤植。 一度だけ使用される名前「main::s3」:tmp.pl 77行に可能な誤植。 一度だけ使用される名前「main::email」:tmp.pl 115行に可能な誤植。 一度だけ使用される名前「main::count」:tmp.pl 111行に可能な誤植。 一度だけ使用される名前「main::url」:tmp.pl 115行に可能な誤植。 一度だけ使用される名前「main::msr」:tmp.pl 115行に可能な誤植。 tmp.plシンタックスOK 116行目は print ($count%10 == 9) ? '</tr>' : '<br>' ; 77行目はlocal($s1,$s2,$s3,$s4) = split(/<>/,$line); 0115: local($name,$email,$url,$msr) = split(/<>/,$lines[$count]); 以上です。
><br>や</tr>等で 改行させるようにする どっちがいいのさ?brだとするとこんなのでいいんじゃないの? #$countの初期化 $count = 1; #ログ全部 foreach $line (@lines) { local($name,$email,$url,$msr) = split(/<>/,$line); #カウント処理 $count++; &output; if($count%10 == 0){ print '<br>'; } }
$count = 0; の間違い
× print ($count%10 == 9) ? '</tr>' : '<br>' ; ○ print $count%10 == 9 ? '</tr>' : '<br>' ; ○ print ($count%10 == 9 ? '</tr>' : '<br>') ;
38 :
28 :03/09/20 04:24 ID:???
>>35-37 出来ました!
>>35 の<br>を</tr><tr>にした所、ちゃんと改行されました。
勉強になりました。ありがとうございます。
10毎に</tr>入れるんだったら、<tr>も入れなきゃ…
40 :
39 :03/09/20 04:29 ID:???
おっと、遅すぎたなぁ〜 逝ってくる…
イ`
つーか、なるべく正しいHTML吐くようにしようよう。 それやるなら、 </td></tr><tr><td> だろう?
>>42 違うと思うぞ
すでに</td>でおわってると思うぞ
だな
>>29 ま、どうでもいいや。
兎に角、このスレの>1にもあるように、
> (3) 少しは自分で考えること。
漏れたちはあくまでもお手伝いだからな。
全部やってもらおうと思うのは大間違いだからな。
>>29 が改造して、どうしても出来ない部分だけをお手伝いするんだからな。
やれる範囲でいいから自分で改造しる!
KENTさんとこの WebPatio v.1.32 の改造で質問させてください。 このCGIで同名のスレッドを立てようとすると 「重複しています。別のスレッド名を指定してください。」 となりエラーが出るのですが、これを回避する改造のやり方を教えてください。 自分で色々やったらおかしくなってしまいました。 なんとなく大幅な改造が必要な予感はしてるのですが 設置後半年経って、このことに気づいて焦ってます。 どなたかご教授願えないでしょうか?
>>46 # KENTのスクリプトみたいなstrictしてないソースなど見る気もしないが。
そのスクリプトはスレッドの判別をスレッド名で行っているようだが、
これをスレッドごとに適当なID(たとえば、スレッドを立てた時のepoch秒)とかを割り振り、
これによってスレッドの判別をするようにすればいい。
1.ログの記録構造を変更し、
2.ログの展開、収縮部分を新しい記録構造に対応させ、
3.スレッド名を扱っている部分を、全てスレッド名とスレッドIDを扱うように変更
で、完成。
ほうら、簡単だろ?
ここまで言えば、自分でできるよな?
839行目はコメントだが…
>>48 おおかた、Shift-JISを"で囲って表示してんだろ。
Shift-JISの扱いに関してはこの板でも何度も何度も出てるのに、
何も読んでないんだな。
調べろ。ググれ。
掲示板でのクッキーを保存するやり方
に興味があるってことかナー 名前は◆2chGAUCATE やらないか
>>48 前スレ859の君か!
よく覚えてるよ。
いや、忘れられないといったほうがいいな…
いちばん簡単な方法を教えるよ。
タグ使用可能です => タグ使用可です
これでバッチリだ!(笑
http://.../../gazou/2003/09/21/gazou.jpg のように、ディレクトリの/2003/09/21/の部分が
今日の日付になっている形式で保存された画像を、
自動的に読み出して、トップページの画像を更新するスクリプトを探しています。
トップページの画像へのリンクを自動的に今日の日付で
書き換えてくれるようなやつです。
↓のスクリプトを書き換えればできるらしいのですが、私には無理です。。
どなたかよろしくおねがいします。
<?
$time = time();
$ltime = localtime( $time , 1) ;
$day = sprintf( "%04d%02d%02d" , $ltime["tm_year"] + 1900 , $ltime["tm_mon"] + 1 , $ltime["tm_mday"] );
echo "img src=\"image/$day.png\"></td>\n";
}
?>
そもそもPHP使えるの?
>>56 プロバイダーはぷららなんですが、ぷららのHPで今調べたところ
「Perl バージョン5.005です。RubyやPHPは使えません」
と書いてありました。
ちょっと長くなりますけど。。。
#!/usr/bin/perl
$main_cgi = "download.cgi";
$this_cgi = "index.cgi";
#フォームデコード
@pairs = split(/&/,$ENV{'QUERY_STRING'});
foreach $pair (@pairs) {
($name,$value) = split(/=/, $pair);
$value = s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$FORM{$name} = $value;
}
#HTMLヘッダ出力
print "Content-type: text/html; charset=x-sjis\n\n";
print "<html><head><title>FileCopyMachine</title><!--nobanner--></head><body>\n";
if ($FORM{'url'} ne ''){
$url =$FORM{'url'};
print "<br>$urlのダウンロードを開始します<br>\n";
system("$main_cgi $url > /dev/null &");
}
#入力フォームをブラウザに表示
print "<form action=\"$this_cgi\" method=GET>";
print "コピー元ファイル名:<br>\n";
print "
http://<input type=text name=\"url\" size=100 value=\"\">\n";
print "<input type=submit value=\"転送開始\">";
print "<br><br><br><a href=\"./$this_cgi\">Reload</a>\n";
print "</form>\n";
print "</body></html>\n";
exit;
59 :
続き :03/09/21 22:52 ID:???
#!/usr/bin/perl
use Socket;
#ダウソ先ディレクトリ
$downdir="./";
#httpポート番号
$target_port = 80;
#コマンドラインより文字列取得
$target = $ARGV[0];
@temp; = split( /\//, $target );
$target_hostname = shift(@temp);
$file_name = pop(@temp);
$target = "
http://$target ";
#HOST→IP変換
$target_ip_address = inet_aton($target_hostname);
socket (SOCKS_,PF_INET,SOCK_STREAM,getprotobyname('tcp'));
connect (SOCKS_,sockaddr_in($target_port,$target_ip_address));
#バッファを一旦抜く
select(SOCKS_);
$|=1;
select (STDOUT);
#接続先の鯖にファイル送出要求
print SOCKS_ "GET $target HTTP/1.1\r\n";
print SOCKS_ "Referer: $target_hostname\r\n";
print SOCKS_ "Host: $target_hostname\r\n";
print SOCKS_ "Accept: */*\r\n";
print SOCKS_ "User-Agent: Monazilla/1.00 (FileCopyMachine/0.10)\r\n";
print SOCKS_ "\r\n";
60 :
最後 :03/09/21 23:00 ID:???
#ヘッダ飛ばしフラグ
$flags = 0;
open(FILE_,">$downdir$file_name");
while (<SOCKS_>){
if ($flags == 1){ print FILE_ $_;}
if ($flags == 2){ $flags = 1;}
if ($_ = /Content-type/i) { $flags= 2 ;}
}
close(SOCKS_);
close(FILE_);
exit;
--スクリプトここまで
とある本に載っていた、ファイルのサーバ間転送のスクリプトをそのまんま(ユーザエージェントなどは変更)写しました。
が、いくら「転送開始」ボタンを押しても、一向に転送が始まりません。
ちゃんと転送開始されていれば、ページ上部に「ダウンロードを開始します」と出るのですが、
それが出ないことから、
> if ($FORM{'url'} ne ''){
のところがあやしいと思ってるんですが。。。
くだらない質問かも知れませんが、よろしくお願いいたします。
ちなみに、
>>58 をindex.cgi
>>59-60 をdownload.cgiというファイル名で設置しています。
>>58 難しそうですね。。。
どこを書き換えたらいいのかわからないです(´Д⊂
アポですみません。
>>58 自分の質問へのレスかと勘違いしました。
>>60 は無視してください。。
63 :
nobodyさん :03/09/21 23:06 ID:kPJ/tg2Z
>>61 いや、それは新規の質問でチミ宛の答えではなかろうw
>>55 それはPHPのスクリプトだ。Perlしか鯖に入ってないなら、当然動かない。
もういいから本買って勉強しろ。
ごめんなさいねぇ。。。 まるで返答みたいな書きかたして。
>>58 $value = s/
↓
$value =~ s/
print "<br>$urlのダウンロードを開始します<br>\n"; から下のことは知らんけど
>>67 チルダを見落としてましたか。ありがとうございます。
。。。が、今度はこんなエラーが出てきました。
syntax error at ./download.cgi line 13, near "; =" Execution of ./download.cgi aborted due to compilation errors.
なお、13行目は $file_name = pop(@temp);
コメントと空行を削除して考えると $|=1;
です。
変数名(?)が|(たてぼう)なのもおかしい気がしますが。。。
でも、本を見てもそう書いてあるんですよね。。。
>>58-60 穴だらけのスクリプトな悪寒。
もったいないかもしれないけれどその本は捨てた方がよいかも。。。
>>69 $target = $ARGV[0];
@temp; = split( /\//, $target ); # ここが鰓。「@temp = 」だす。
$target_hostname = shift(@temp);
おっ!未承諾広告タンだ。批判要望板で出会って以来だ。
@temp; = split( /\//, $target ); ↓ @temp =~ split( /\//, $target ); if ($_ = /Content-type/i) { $flags= 2 ;} ↓ if ($_ =~ /Content-type/i) { $flags= 2 ;}
>>69 自分で Syntax Error も取れないような奴が改造なんかしてんじゃねえよ!
>>70 あんた、業者か?
本当にみなさん、すみませんでした。おかげさまでなんとかうまくいったと思います。 ボケボケな質問ばかりで本当にすみませんでした。 穴だらけだなんだと言われてるんで、またどっかで似たようなスクリプト探してみようかと思います。
またどっかで似たようなスクリプト探してみようかと思います。 またどっかで似たようなスクリプト探してみようかと思います。 またどっかで似たようなスクリプト探してみようかと思います。 またどっかで似たようなスクリプト探してみようかと思います。 またどっかで似たようなスクリプト探してみようかと思います。 頼むからもう二度と来るな。
>>76 多分じゃ駄目だ。絶対に、にしとけ。
改造スレなのにスクリプト探しの話題を振ってくるような奴には、
二度とお目にかかりたくない。
別の参考書を探してみようかと思います、だったらまだましだったのにな
79 :
nobodyさん :03/09/22 18:11 ID:7DCR1SyV
まず、ROMの定義は何かね?
81 :
nobodyさん :03/09/22 18:12 ID:7DCR1SyV
ROMはチャットを観ている人
>>81 誰かにゆいチャットのソースを見せてもらえ。
あれが一番勉強になる。
わからねぇなら答えるなや 雑魚が
そのチャットを観ているのを知る(判定する)条件を聞いたんだが・・・ まあいいや
アホか? チャットを見ているのはCGIを開いてる奴だろ
CGIにアクセスして、かつCHATに参加して無いもの(←だろ?)、、 というのは想像つくが、じゃあROMじゃなくなるのはどのタイミング? 定義も決められないのにプログラムかけるわけが無い
>>83 誰に言ってるの?
それに、このスレの趣旨を理解してるの?
ROMじゃなくなるのアクセスを辞めたときだろ ばかじゃねえの
定義以前にただの頭がおかしいだけだろ 融通が利かない駄目人間か?
定義以前にただの頭がおかしいだけだろ 融通が利かない駄目人間か?
>>88 HTTPプロトコルの特性も知らない馬鹿ハケーン
>>89 >>90 論理で考えられない人間はプログラムなんかできないって。
やめた方がいい。マジで。
プログラムができる以前の問題として、お前みたいな奴は人間関係ができないだろ
>>92 誰に言ってる? いや、マジで疑問なんだが。
しかも、それを言って何がどうなるか発展性のない内容だな。
さらに言えば、スレの趣旨と合ってない。
何が不満? 不満があるならその内容をきちんと言わなきゃな。
ここにいる連中はお前の友人でも家族でもなんでもないんだから、
何か言いたいことがあるんなら、きちんとわかるように言うべきだろう。
てか、そもそもアンタ誰?
>>79 か?
まーよーするに http で喋ってる状態では、チャットシステムのように参加している人数は確認できないってことなんですよ。 そのあたりを理解できていないのが過去に 1000GEX と宣ってた香具師がいたかのぉ(w
程度低すぎ( ´,_ゝ`)
96 :
nobodyさん :03/09/23 12:55 ID:cDBIlZxL
Javaスクリプトの関数で引数に数値以外の文字列を指定する方法を教えてください function Jump(n){ parent.main.location.href ="menu/"+n+".htm") で、10.htmや20.htmにしたらジャンプできるのですが index.htmやmenu.htmにしたらエラーが出て動きません
>>96 onclick="Jump(index)"// error
onclick="Jump('index')"// ok
99 :
nobodyさん :03/09/24 06:56 ID:ou/l0CeA
>>99 それアップローダだろ
Perl質問スレにあったやつだよな。
ってうpしてたのか、すまん しかしこれ1つでなんでもやるタイプで長すぎて読むの疲れる 実際に動かしてLOG調べたほうがよさげ
102 :
99 :03/09/24 11:38 ID:ou/l0CeA
レスさんくすです。ログがあったほうが分かりやすいんでしょうか? 今現在自分が使っているスレッド天国のログであれば アップできますが、どうでしょうか?
103 :
nobodyさん :03/09/24 11:58 ID:/6YYubmJ
箱庭諸島PHPの改造されたやつないの? そういうサイトあるの?
>>99 順番が変わらないようにするんだよね?
試してないので責任もてませんが、
sub WRITE_DATA内の
# レス
while (<OLD>) {
if ($in{sct} == (split(/<>/,$_))[0]) {
chomp;
print NEW "$_<>$input\n";
last;
} else {
push (@new,$_);
}
}
って所のpush (@new,$_);ってのをprint NEW;にして
直後のforeach (@new) { print NEW; }を削除で出来そう。
ただ、その後のログ削除をどうしよう?
ログの下の方から削除されて逝く様だが...
>ログの下の方から削除されて逝く様だが... ごめん違うみたい。訂正。
やっぱりあってる。 なんどもすまん。
107 :
99 :03/09/24 18:13 ID:ou/l0CeA
おお。できました。 助かりました。特に不具合もないようです。さんくすでした。m(_ _)m
>>107 ログ数が保存容量を越えると越えた分を削除していく様なのよ。
あまり古いところにレスするような事が無ければ問題ないだろうけど。
読み込み時に並び替えるってのが良いのかもしれないね。
110 :
nobodyさん :03/09/25 12:00 ID:KATcnmC9
ttp://dream.lib.net/room/ こちらのOne Line BBS についての質問です
これは新しい書き込みが一番下について、古いものほど上に上がっていく仕様なのですが
逆にすることは可能でしょうか?
(新しいものほど上に、古いものを下に・・・)
可能か?と聞かれれば、可能だ、としか答えようが無い
>>110 >>111 の言うとおり、やろうと思えばできる。
で、
>>110 自身は自分でそういう風に改造したいと思っているのか?
そのために努力する覚悟があるのか? どうなんよ?
いちおー言っておくけど、110のスクリプトは わざわざ逆に表示するようにしているようなので 1行替えるだけで昇順になる 最初にやるならちょうどいい題材かもね
114 :
110 :03/09/25 12:35 ID:KATcnmC9
>>111-113 実は昨日からずっと睨めっこしていますが、一向に分からずじまいでして・・・
検索して調べようと思いましたが、キーワードが悪いのか引っかかってくれません。
ど素人なので、どのサイトを参考にしたらいいのかだけでも教えてもらえないでしょうか?
>>114 Perlのマニュアルで、for文を調べる
116 :
nobodyさん :03/09/25 15:49 ID:5TiXpaUt
すれ違いだったらごめんなさい。 CGIの文法の質問です。 下の状態で、 要するに、残りは、[11]にXX1を入れろという式なんですが、これを、xx1またはxx2またはxx3をランダムに同確率でとするときは、どうしたらよいでしょうか。 ぶしつけな質問ですいませんが。 else {$PL_VALUES[11]="xx1";}
else {$PL_VALUES[11]= ("xx1", "xx2", "xx3")[rand(3)];}
118 :
116 :03/09/25 16:46 ID:5TiXpaUt
ありがとうございます。 早速試してみます。
119 :
nobodyさん :03/09/25 19:57 ID:NEF9q2qx
>>110 スク見てないけど、
ログの配列を丸ごとひっくり返して逆にすればどう?
>>114 腕試しのつもりで漏れもやってみた。
出来た。
240行目だった。
(´-`).。oO(みんな頑張ってるよなぁ。。。見習わなければ。)
>>117 なあ、スレ違いの質問にこたえるのはやめようや。な?
スレの趣旨は、神経質なくらいでやっと守られるもんだと思うんだよ。
あんまり神経質になると趣旨が守れてもスレが機能しなくなる悪寒。 ま、そのへんのバランスが難しいわけだが。
124 :
:03/09/26 01:16 ID:???
126 :
nobodyさん :03/09/26 08:22 ID:hLOH2Z9v
>>125 自分でソースをおっかけて理解しようとしない奴には、誰も助けはしないよ。
その文章からだとはなっから諦めてるようにしか見えないからな。
ご苦労さん。一人でウジウジ悩んでてくれ。
>>127 だったら無視するだけでいいよ。
わざわざ嫌味言うなよ雰囲気悪くなる。
もうお前、このスレ来なくていいから。
>>125 でも
>>127 の言ってることはもっともなんだぞ。
そのへん考えて、自分で一通り頭使ってから改めて来い。
とりあえず今回は却下ということで。
自分でも使い道あるとか改造内容がおもしろいとかなら やってくれる人もいるだろうけどさ。 単に改造依頼を受けてくれる人はほとんどいないよね。 後は努力の結果を見せて人情にすがるしか・・・
わかんないなりに苦労の跡を見せて欲しいってことだな。
アドバイスする側も一目見ただけでわかるわけではなく(そういうのもあるが) それなりに手間がかかるもんだということがわかってくれれば
表示内容をちょっといじる、とかだったら簡単だし、暇ならやってみようかなとも思う。 でも「こういう機能を追加して」っていうのは勘弁な。
>>128 「雰囲気悪くなる」だって。
ああいう質問をすることの方が雰囲気悪くなるんだがなあ。
他力本願の厨を呼び寄せる餌になっちまうからな。
>>133 > 「こういう機能を追加して」っていうのは勘弁な。
漏れでもできる程度のものなら漏れの勉強もかねてやらせてもらいますがな。
ちなみに、
>>16 の依頼は出来たんだが、肝心の
>>16 が逃げやがった。
>>136 ご予算はいかほどで?
と書いておきます(w
138 :
136 :03/09/26 22:58 ID:???
>>137 金取られんのか_| ̄|○
予算は500ペソくらいでおながいします
140 :
136 :03/09/26 23:21 ID:???
>>140 いや、そういうことが言いたいんじゃなくてさ。
ここは自分で改造する人のスレなの。
あんたは、どういう風にしたいと言うイメージは持ってるけど、
そのためにどれだけ努力したのか(で、どこでつまづいたか)をみんなは知りたいの。
ただ単に他人に丸投げしたいだけだったら、
こんなとこで恥さらしてないで、Webプログラマさがして金を渡してやってもらった方がいいの。
142 :
nobodyさん :03/09/27 03:15 ID:U5pwYI9o
結局、煽るだけで、できないんですよ正直言うとね できないのを誤魔化すために煽ってる コレ2chの常識
143 :
_ :03/09/27 03:44 ID:???
144 :
_ :03/09/27 03:45 ID:???
145 :
_ :03/09/27 03:48 ID:???
146 :
_ :03/09/27 03:48 ID:???
147 :
_ :03/09/27 03:54 ID:???
148 :
_ :03/09/27 03:54 ID:???
149 :
_ :03/09/27 03:58 ID:???
150 :
_ :03/09/27 03:58 ID:???
>>1 より
※答えてくれないからといって逆ギレする厨はお断り
ここに質問もってくる奴って、なんでこんなに
>>1 を読まないのかね。
書き込む前に
>>1 を確認するってのは、
>>142 の「2chの常識」とやらには入ってないのかなあ。
他人がどう思ってるかを無視して、俺様脳内設定で生きてる奴は楽だろうな。
そいつ自身は楽だろうけど、周囲に害毒を撒き散らすから、近寄って欲しくはないけどな。
# 厨房は嫌いだ。理屈が通じないから。ゴネれば要求がとおると思ってるなら、
# 893か北の将軍様と同類だよ。
# それに理屈が通じないってことは、およそプログラマーには向かないってことだしな。
152 :
nobodyさん :03/09/27 07:38 ID:efY9iLPN
>>1 のテンプレが悪いんだろう。
依頼の前提条件として自分でちったぁ考える事なんて
一言も書いてない。
153 :
152 :03/09/27 07:40 ID:???
スマソ。書いてあった。
156 :
nobodyさん :03/09/27 17:00 ID:U5pwYI9o
>>151 >>1 より
「スクリプトを改造したいけどやりかたわかんないよー」という人がいましたら
ここで聞いてください。
つまり、スクリプトの改造を「したけど」やり方がわからない人ではなく、
スクリプトの改造を「したいけど」やり方がわからない人。
日本語理解できる?
あんたらは過去のスレの常識を持ち込もうとしてるだけ
日本語どうこうなんてレベル低いこと言ってんなや どうでもいいよ、そんなの 「したいけど」やり方がわからないで書くなら書けばいい どのように相手にするかはこっちの勝手 「したけど」やり方がわからないっていうなら 努力の跡によっては手伝おうかという気にもなる 改造したいやつは好きなほう選べや
単に答えを示すと、もう少し変更したいって時も同じ質問がくる その繰り返しにうんざりなのかも
それはあるだろうなぁ 改造に関する質問に応じないCGI作者はある意味賢いのかも
結局、改造ができる技量を持った人がこのスレを読んで、どう感じるかってことだ。
>>157 ご苦労さん
もうこのスレには来なくていいよ
正直なところ最低限の知識は欲しい。 よく感じるのはファイルの開け閉めをまったく理解してない香具師が多いってこと。 初心者に教えるのはいいんだが、 最低限のラインってのもあるだろ? ま、俺もようやく初心者から中級者に入りかけたかな?程度なわけだが・・・。
丸投げしてくる奴を見ると、そのムシの良さに吐き気がするほど腹が立つ。 PerlもPHPもRubyもそりゃあ無料だ。開発者の厚意により、だが。 フリーのスクリプトだって、そりゃあ無料だ。これも、作成者の厚意だ。 だけど、本来それらは、正当な対価を要求してもおかしくないはずのものだ。 このことを理解してない奴が多いんじゃないだろうか。 で、そういう奴ほど簡単に他人に改造を丸投げするような気がする。 「タダのものなんだから、改造だってタダだろう?」 こんな論理で。なんでタダなのか理由を考えようともしない。 そういう論理で動く奴は、改造できる技量を持った人間からは、 ただの寄生虫にしか見えないだろうよ。
>>161 お前が去った方がきっと平和になるさ。
最低限の知識を持たない人間は、
Webプログラマ斡旋スレでも立てて、そっちに回したいね。
知恵がないなら金を出せってね。
次スレ立てるときは、
>>1 のテンプレにはなんか修正が必要なんじゃないか?
良質な次期テンプレ案キボンヌ
166 :
nobodyさん :03/09/27 20:52 ID:U5pwYI9o
正直言って スクリプトいや、JavaスクリプトとCGI(Perl)に絞ってでもイイんだが 改造できそうなヤシはコテ半にトリップつけてみん 陰でコソコソ煽るヤシはスルーできるように
>>166 JavaScriptはさすがにどうかと思うぞ。
クライアントサイドとサーバーサイドの区別がつかないと、
最低限のラインをクリアーしてるとは言いがたいだろうよ。
CGI=Perlだと思ってるやつも、論外な
169 :
nobodyさん :03/09/28 05:22 ID:HCEF79ZI
大漁!!大漁!!(;`∀´)o/ ̄ ̄~(゜∀゜;)))))
170 :
nobodyさん :03/09/28 09:00 ID:CAMT3ypw
171 :
nobodyさん :03/09/28 09:19 ID:y/PDZM4h
>>171 ありがとうございます。そちらの方で聞いてみます
JAVA=JavaScriptだと思ってるやつも、論外な
175 :
174 :03/09/29 13:08 ID:???
>>176 まぁまぁ
>>174 基本的にタグを有効にする、というのは
わざとTAGを無効にしているものを外す
ということになるんで、該当行を探して
つぶすだけでいい
第3者まで自由にするとむちゃくちゃになるので
普通は一部のタグ以外はつぶす、という操作になるんだけど
自分しか書き込まない等、書く人の身元がはっきりしてるなら
そのまま通すという手もある
で、今回のソース
=~ s/</</g;
=~ s/>/>/g;
こういう行が何ヶ所かあるので、コメントにして実行したりして試してみて
げ、&は認識するんか ↓に訂正 =~ s/</</g; =~ s/>/>/g;
179 :
174 :03/09/29 14:51 ID:???
>>174 さん
レス感謝です!
=~ s/</</g;
=~ s/>/>/g;
上記を検索して.cgiのメモから全て消してみます(メモ付きで)
いくつか見つかったので恐々とやってみます。
この日記はその登録されたメンバが各個人で持てるので第三者は
書き込みしない予定です。
あれ、消さない方がいいかもですね(戻せなくなったら怖ひ)
・・・ちょっと頭に###して無効にしてみます!(って、頭に#とか付けると無効に
なるんですよね??###=~ s/</</g; こんな風で)
180 :
174 :03/09/29 14:52 ID:???
じゃなくてこっちでしたね(涙 =~ s/</</g; =~ s/>/>/g; やってみます!
181 :
174 :03/09/29 14:53 ID:???
連続すいません(大涙 &認識するってこういう意味だったんですね(滝汗 ってことで>178のでやってみます
教わった部分の意味くらいは調べてみろ。 そういう積み重ねが大事なんだぞ。
183 :
174 :03/09/29 16:29 ID:???
出来ました! 本当にありがとうございました。
184 :
sirius :03/09/29 17:13 ID:6z0CkwS7
現在、PHP4.3.1+mySQL3.23.56でデータベースを作っています。 データベースの登録情報として、「香川支社」、「高知支社」という情報が あるのですが、両者を登録しようとすると、重複エラーが出てしまいます。 日本MySQLユーザ会のMLの過去ログを見たところ、「香川県」と「高知県」で 同じように悩んでいた方がいまして、「香」、「高」の文字コードが近いことが 原因であることがわかりました。 解決策として、/etc/my.cnfに、 [mysqld] default-character-set=ujis と記述するとあったのですが、この記述を追加するとMysqlサーバが起動しなく なってしまいます。現在、my.cnfには、 datadir=/db_data/mysql の記述しか書いていないのですが、どこか不都合があるのでしょうか? どなたかご教授お願いします。
>>184 スレ違い
--with-charset=ujis つけてリコンパイル
187 :
pino :03/09/30 00:04 ID:4fn10Qi/
188 :
nobodyさん :03/09/30 02:10 ID:tX8JF4oW
>>187 ココで聞いても無駄だから
諦めた方がイイよ
>>187 ざっとみたけど、、
レスがつくと動作する関数 add_newreply
データ格納変数 $datas
で、add_newreply の中に下の行がある
if($datas[$_] =~ /^$repid\t(.+)\t/){
ここでレスを追加しているので、このスレ番号、$_ を記憶させていおいて
ループを抜けたら、$datas[スレ番号] を$datasにpushして$datas[スレ番号]をdelete
してみたらどうだろう。
190 :
189 :03/09/30 10:45 ID:???
訂正、pushするのは @datas ね。まあわかるとは思うが
しかし datas って凄い変数名だな。data自体複数形なのに。
192 :
pino :03/09/30 15:30 ID:4fn10Qi/
>189さん、御丁寧なレスありがとうございます。 実は私、ここに書き込みを躊躇するほどの初心者レベルの者でして、 悲しいかな189さんのレス内容をすぐに解釈できませんでした。 これから本を片手に189さんのレス内容を試してみます。 ほんとにありがとうございます。(笑)
>>193 検索部分というのをちょっと見ただけだが、、、iをつけるのは
/$switem/i
こっちでない?
ぱっと見なので違ったらスマソ
>>194 さっそくのレスありがとうございました!
そしておっしゃる通り指定してみたところちゃんとできました!
うれしい!!!!個人的に神認定です!!
ほんとにほんとにありがとうございました!!!!!!!
分かる範囲で調べたのはエラい。
197 :
25 :03/09/30 23:34 ID:???
まだダメだったか・・・_| ̄|○
>>192 はどうなったんだ?別にわからなければ聞いてもかまわんのに
>>16 はどうなったんだ?別にわからなければ聞いてもかまわんのに
>>16 のは、、、
せめて出来上がり予定のHTMLが吐けるくらいまでは
やってくれないと(form部分とかdummyでの画像表示)
これとこれくっつけてね!だけじゃいくらなんでも・・・
202 :
nobodyさん :03/10/02 23:33 ID:tbcivdX5
ShortMessage perl版 (
ttp://psyco226.jp/shortmessage/ )を使っています。
ですが、最近荒らしに遭い、ホスト名も分かっているので書き込み制限および
連続投稿をできなくするようにしたいと考えています。
書き込み制限のできるいろいろなCGIを見て、自分で改造してみようとして
みたのですが、力尽きました・・・。
分かる方がいらっしゃいましたら、ご教授のほど、何卒よろしくお願いします。
>>202 なじぇ放置されるのかとゆーと、>1を読んでないからだと思うな。
個人的には、
> 自分で改造してみようとしてみたのですが、力尽きました・・・。
どんな道を歩んできたのか知りたいな。
「改造」とはちょっと違うかな、と思ったんですが・・・
http://www.interq.or.jp/mouse/hexa/sendmail.txt こちらのメールフォームを使っています。
掲示板でも既出の話題なのですが、送ったメールの本文、メールアドレス、URLが文字化けします。
(掲示板に解決策は不出)
件名と名前は正常に表示されるというのが不思議です。
sendmailの文字化けに関するページは一通り読みましたが、
見てみるとどれもちゃんと対策されているようで、お手上げ状態です。
もし原因がおわかりの方がいらっしゃいましたらどうぞよろしくお願いします。
>>205 メールフォームスクリプトは他にもあるでしょ。
>>206 携帯3キャリアとPCに対応しているものが欲しいので、
なかなかこれ以外見つからないのですよ…
荒らしにはまずは放置って言ってるんじゃ?
>>205 件名と名前はMIMEエンコードしてるからでしょ
どう化けるのかわかればすぐ対策できると思うけどな
あ、Perlのバージョンによって挙動がかわる?
>>209 えーと、
てすと→%82%c4%82%b7%82%c6
@→%40
という風に文字化けしています。
他の項目もjcode.plでエンコードしてるのだと思ってましたが、違うのでしょうか…?
Perlのバージョンは5ですが、レンタル鯖なので他のバージョンを試すことは出来そうにもないです。
勉強不足過ぎなので何か見当違いのこと言ってたら申し訳ないです
>>210 をいをい。
「URLエンコード」で具具ってみれ。
212 :
202 :03/10/03 20:49 ID:???
213 :
205 :03/10/04 01:37 ID:???
>>211 教えて頂いた通り「URLエンコード」でぐぐって、
$maildat =~ tr/+/ /;
$maildat =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
の2文を加えてみたところ、ちゃんと日本語にデコードされるようになりました。
困っていたので、本当に助かりました。
どうもありがとうございました。
>>212 204が知りたかったのは、
>>212 が弄って鰓ーばかり出したスクリプトが見たいといったつもりだったんだが。。。
あの文章じゃ伝わらなかったか。。。(反省
改造出来たよ。
でも、>1 の(3)にもあるように、「少しも自分で考えない人には教えてはいけない」という暗黙の掟がこのスレにはあるようなので、
「少しは自分で考えたんだ」という証明をして欲しい。
具体的にいうと、鰓ーを出しまくった君のスクリプトが見たい!
それと重要な事だが、
yk-bbsには、「指定ホストキック」があるように見えるが、実装はしていない。
215 :
214 :03/10/04 05:56 ID:???
s/yk-bbs/yk-yybbs/;
216 :
202 :03/10/04 08:50 ID:???
>>216 なんだ?ダブルポストも対策して欲しかったの?
言ってくれなきゃ。。。
その1
###################################
# --- 投稿内容に関わらず連続投稿を指定秒数内は拒否する設定
# 制限する秒数(単位:秒)
$rtimer = 20;
# 上記調整用(上記$rtimerが60秒の場合は下記のまま、120秒以上は+80、という感じで60秒ごとに+40加算)
$timer = $rtimer + 40;
###################################
# --- 指定ホストキック。 以下のホストからアクセスしても掲示板は表示されません。
# 設定する場合は、以下を $kick_f = 1; とした上で、下のホスト名に記入してください。
$kick_f = 1;
# ホスト名を'で囲み、,で区切って複数指定可能。IPアドレスの場合は先頭の2つが適当?
# "*"は任意文字列。
# 設定例:@kick =('biglobe.be.jp','*web.ne.jp','202.124.','abc.*');
@kick = ('cache*.*.interlog.com','anonymizer','196.168.*.*');
その2 sub dec_check{ # 追加ここから if ($kick_f == 1) { $host = $ENV{'REMOTE_HOST'}; $addr = $ENV{'REMOTE_ADDR'}; if ($host eq "" || $host eq "$addr"){$host = gethostbyaddr(pack("C4",split(/\./,$addr)),2);} if ($host eq ""){$host = $addr;} foreach (@kick) { if (!$_){next;} $_ =~ s/\*/\.\*/g; if ($host =~ /$_/) {&error("アクセス禁止<br>ホスト名$hostは管理人によってアクセスを制限されています。");} } } # 追加ここまで if ($name eq "" or $comment eq "") { &shortmessage; }
おっと インデントしるの忘れた(汗 その3 sub write_log { &lock; open(IN,"$logfile") || &error("$logfile が読み込めません。"); @readed = <IN>; close(IN); ($tmp,$chk1,$chk2)=split(/\t/,$readed[0]); if($name eq $chk1 and $comment eq $chk2) { if(-e $lockfile){ unlink($lockfile); } &shortmessage; } # 追加ここから if (($dateid > $tmp) && ($dateid - $tmp < $timer) ) { if(-e $lockfile){ unlink($lockfile); } &error("少しお待ち下さい。悪戯対策のため$rtimer秒以内の連続投稿はできなくなっています。"); } # 追加ここまで
>>216 今から出かけるので、ダブルポストの対策は帰ってからにしるよ。
それとも自分でしるかい?
221 :
202 :03/10/05 06:09 ID:???
>>217 ありがとうございます!
スクリプトを見比べて、とても勉強になりました。
自分が持っているものに「sub write_log」がないぞ?と思っていたら
ShortMessageのバージョンがアップされていたのですね・・・。(遠い目
txtで上げた旧版をレイアウトを変えて使っているので、217様のスクリプトを
見ながら改造していきたいと思います。
(sub kakikomi 以下に追加していけばいいのですよね?)
ダブルポストはあれば嬉しいですが、ここまで考えていただけただけで十分です。
本当にありがとうございます。感謝多謝。
>>221 旧版か。。。
漏れはまだまだ初心者だから、スクリプトを見ただけでは改造できないんで、DLして動かしながら改造してたんでな。
旧版スク見たんだが、217-219じゃ動かねーからな。
特に連投拒否が。
旧版のログフォーマットにカキコの時間の項目がないんでな。
そのへんちょっと改めてみた。
################################### # --- ダブルポスト(同一内容連続投稿&リロード)対策。何件前までチェックするか $check = 5; # 投稿内容の一部分を変えての連続投稿対策(例:...第1回目、...第2回目..) # 投稿内容の先頭から指定した文字数の範囲内で同一内容か判断する(単位=バイト) $checklength = 50; ################################### # --- 投稿内容に関わらず連続投稿を指定秒数内は拒否する設定 # 制限する秒数(単位:秒) $rtimer = 20; # 上記調整用(上記$rtimerが60秒の場合は下記のまま、120秒以上は+80、という感じで60秒ごとに+40加算) $timer = $rtimer + 40; ################################### # --- 指定ホストキック。 以下のホストからアクセスしても掲示板は表示されません。 # 設定する場合は、以下を $kick_f = 1; とした上で、下のホスト名に記入してください。 $kick_f = 1; # ホスト名を'で囲み、,で区切って複数指定可能。IPアドレスの場合は先頭の2つが適当? # "*"は任意文字列。 # 設定例:@kick =('biglobe.be.jp','*web.ne.jp','202.124.','abc.*'); @kick = ('cache*.*.interlog.com','anonymizer','192.168.*.*');
その2 sub dec_check{ # 追加ここから if ($kick_f == 1) { $host = $ENV{'REMOTE_HOST'}; $addr = $ENV{'REMOTE_ADDR'}; if ($host eq "" || $host eq "$addr"){$host = gethostbyaddr(pack("C4",split(/\./,$addr)),2);} if ($host eq ""){$host = $addr;} foreach (@kick) { if (!$_){next;} $_ =~ s/\*/\.\*/g; if ($host =~ /$_/) {&error("アクセス禁止<br>ホスト名$hostは管理人によってアクセスを制限されています。");} } } # 追加ここまで local($chk1,$chk2);
その3 sub kakikomi { &lock; open(IN,"$logfile"); @readed = <IN>; close(IN); # 追加ここから $dateid = time; @Stat = stat("$logfile"); $i = 0; while ($i < $check) { ($chk1,$chk2)=split(/\t/,$readed[$i]); if (($dateid > $Stat[9]) && ($dateid - $Stat[9] < $timer) and $i == 0) { if(-e $lockfile){ unlink($lockfile); } &error("少しお待ち下さい。悪戯対策のため$rtimer秒以内の連続投稿はできなくなっています。"); } if ($name eq $chk1 and substr($comment,0,$checklength) eq substr($chk2,0,$checklength) ) { if(-e $lockfile){ unlink($lockfile); } &error("二重投稿です。その内容はすでに投稿済みです。"); } $i++; } # 追加ここまで while ($logmax <= @readed) { pop(@readed); }
あとエラー表示をさせるなら、 その4 sub error{ print "Content-type: text/html\n\n"; print "<center>"; print $_[0]; print "<hr>"; print "<a href=javascript:history.go(-1)>戻る</a>"; print "</center>"; exit; } これをスクリプトの一番下に追加しる。 エラー表示をさせずにスルーするなら、 その2、その3の &error("エラーメッセージ"); を &shortmessage; に置き換えてな。
228 :
202 :03/10/06 07:13 ID:???
>>222 旧版の方までありがとうございます!!
早速今晩、組み込んでやってみたいと思います。
お忙しいところ、本当にありがとうございました!
HTML 出力する際に、最低でも W3C Validator 、調子に乗って HTML-lint gateway を必ず通す漏れって、 逝ってよしなのだろうか? HTML はページレイアウトするためのものぢゃないはずなのに。。。_| ̄|○
231 :
230 :03/10/06 14:26 ID:???
232 :
227 :03/10/06 16:31 ID:???
すっごいソースですね。 &drawresult; のところを、 foreach (reverse(@new)){ いろいろ足し算。 &drawresult; } みたいにしたところで変数名はワケワカメだし、データ構造がへんてこりんだし、 sub drawresult() で、 未知の &header("Registered"); と &footer; はあるし・・・(おそらく ./lib.pl にあるんだろうけど) 胃が痛くなる悪寒がしたのでわたしゃパスm(_ _)m
234 :
227 :03/10/07 22:57 ID:???
そうですか・・・ありがとうございます。
読んでおっかけるのがめんどくさいときは
じぶんとこで設置して動かしてみることが多いんだけど
>>227 のはファイルが足りなくて動かせないから
検証もできないのでやるきがおきないのよ
237 :
227 :03/10/08 00:56 ID:???
>>237 > (2) どんな風に改造して欲しいのか? (完成イメージHTMLを用意すればなお良し)
漏れの理解力が不足しているせいか、完成イメージが見えてこない。
完成イメージHTMLを用意してくれ。
>>227 んで,結局楽譜データはどこにあるんだ?
240 :
227 :03/10/08 18:46 ID:???
241 :
227 :03/10/08 18:47 ID:???
どうでもいいが、楽譜もスコアだな。
望くんか
244 :
238 :03/10/08 19:30 ID:???
>>241 ローカルで動かしてみた。
う〜ん、動かし方すら漏れにはわからん。
サイキンノワカイモンハハイカラテダカラオジサンハツイテイケマヘンワ
すみませんが、漏れもパスという事で。。。
オレも動くまでは行った 5つ合計するということはどこかで5こ選ばなきゃならんのかな?
動かしてみても何をするスクリプトかよくわからん ソースもろくなもんじゃないし俺もパスだな
247 :
227 :03/10/08 20:21 ID:???
>>247 そういう曖昧な仕様で作ってる限り、安住の地にはたどりつかないしスキルアップもしない。
249 :
239 :03/10/09 09:07 ID:???
>>227 これはどういう形式の楽譜なのか?さっぱりわからん。
で,この楽譜に「足す」ってどういうことか?
それともおまいの言ってる「スコア」って,そもそも別の意味なのか?
250 :
227 :03/10/09 20:24 ID:???
>>248 曖昧というかそれが一番理想な形なんですが・・・
>>249 スコア=点数です。つまり5つの点数を足すんです。
楽譜とかまったく関係ありません。説明が下手ですみません・・・
>> 5つ合計するということはどこかで5こ選ばなきゃならんのかな?
>どこかで選ぶ必要はないです。
>俺がどこかで指定できればそれで十分です。
現状で
>>250 が5曲指定できるのか?
現状はselectで1曲を選ぶのではないのか?
>>250 どうでもいいから、一体何をするスクリプトなのか、
最初のコンセプトをはっきりさせろ。
お前が何がやりたいのかわからんから、みんな手伝おうにも手伝えないんだろうが。
253 :
227 :03/10/09 21:32 ID:???
>>251 指定できません。
例えばですね、
CHARLOTTE,ADVANCE,ECHOES,HONEY,ライオン好き
の5つのトータルを、既に登録されてる点数の合計で表示したいんです。
もちろん個人別です。
それでその5つってのは俺がcgi内とかで指定できれば良いのです。
ver4.19のyomi-searchのスクリプトを使っています。
http://yomi.pekori.to/s/yomi.cgi 検索窓に検索結果を何件表示するかを選べるように改造したいのです。
http://www.surpara.com/ ここのサイトにある表示件数10件,20件のようにです。
サポート掲示板やファンサイトの掲示板を探しても改造の仕方が見つからず、
自分なりに少しやってみたのですが、思い通りの結果が得られません。
下を追加するだけではダメのようなんです、どうぞよろしくお願いします。
<select name="hyouji">
<option value="1" selected>1件表示
<option value="10">10件表示
<option value="25">25件表示
<option value="50">50件表示
<option value="75">75件表示
<option value="100">100件表示
</select>
>>253 だからさ。お前の脳内は誰にもわからないの。
そのスクリプトは、何のためにあるのか、そこから説明しろと言ってるんだ。
個人別だとかお前の脳内用語を何の説明もなしに使うなっての。
だからまともな回答がつかないんだってのに。
256 :
nobodyさん :03/10/11 17:49 ID:5ZebeT6p
XHTMLはタグに大文字を使ってはいけないらしくて困ってます。 HTML文書を読み込んでタグの中身だけ大文字を小文字にするようなスクリプトはどこかにありませんか? PerlかRubyがいいのですが。
>>256 板違い。この板ではスクリプト探しは扱っていません。
それにそんなことぐらいエディタでも使ってやってください。
258 :
256 :03/10/11 19:02 ID:???
>>257 スレ違いどころか板違いですか。そうですか。
エディタでやるとすると結局手作業になってしまいますよね。
タグ限定なので全ての大文字を小文字にすればいいわけじゃないですし。
ファイル数も多いので一括で出来るといいのですが。
>>258 あなたの要望している事は出来ます。
残念ながらこのスレは、スクリプトを探すすれでも、スクリプト作成依頼のスレでもありません。
移動してください。
>>256 つうか、Perlってのはそういう作業をするためにそもそも作られた言語でな?
嘘じゃないけどスレ違いだよなあ。
自分で勉強するって言うなら、みんな邪険にはしなかったろうにな。
最初から他力本願剥き出しだから、嫌われる。
>>254 使ってる言語がPerlだかPHPだか知らないが、言語を覚える気がない奴はくんな。
結局このスレで改造できた香具師ってほんの数人もいないよね
そうだな。手元では成功してるんだが、そのまま教えずに やり方から説明してるうちにどっかいっちゃう。
つまんない改造は時間の無駄だしな
教える気のある香具師はいないんだから、 このスレの存在意義はゼロ。 もともと隔離スレ的にさっさと片づけてやって よそに行って貰うという意味もあったんだけどな。 これからは教えて厨がガンガン個別スレを立てまくる。 そしてそれを責めることは不可能。 なぜなら改造スレは「教えない」ことを楽しむ底意地の悪い連中のすくつだから。
>>267 よほどくやしかったんだな
自分の態度が悪かったとなぜ反省しない?
すくつ すくつ すくつ すくつ すくつ すくつ すくつ すくつ すくつ
270 :
オカモト ◆8NuYNPf3oM :03/10/12 14:19 ID:aFd0tEd7
質問させてくだちい。 KENTのweb patioに引用符機能を付加させる方法を教えてくだちい。 >あいうえお、って書いたら 「>」以下のフォントカラーが改行するまで変わるようにしたいのです。 どうぞ、ご教授くださいませ〜〜〜
>>267 教える気がある香具師はいるが、教える側にだって相手を選ぶ権利はあるよな?
まさかねえ、教える側は無条件に全ての質問に対処しなけりゃならんとか言わないよなあ?
>>270 これからは
>>1 を読んでよね。
特に(3)をね。
$comが書き込まれる前あたりに
$com =~ s/(>+)(.*?)<br>/<font color=red>$1$2<\/font><br>/g;
って入れればいいんじゃないかな?
274 :
nobodyさん :03/10/12 21:38 ID:TsDPOLYj
レッツPHPの写メールBBSで、画像のサイズ(111×111みたいな)を表示させたいのですがどのように改造すれば良いですか?
275 :
追伸 :03/10/12 21:40 ID:TsDPOLYj
添付:gif[111×111] みたいに
277 :
nobodyさん :03/10/12 22:37 ID:TsDPOLYj
>>276 すいませんでした。
PHP初心者なので、もう少し詳しく書いてもらえれば有り難いです…
278 :
nobodyさん :03/10/12 22:37 ID:t4S290JE
教えてくださいKENTWEBのjoyful掲示板で 二重投稿を禁止と 別ページからの投稿を禁止するにはどうすれば良いのでしょうか? 教えてください。 お願いします。
279 :
nobodyさん :03/10/12 22:44 ID:t4S290JE
THEROOMのは上記機能が付いてますがKENTは付いてないのです。 お願いします。
>>277 本買え。本買えば済むことを他人に聞くな。
>>278 投稿者をチェックするなら最新の投稿者IPを保存しておいて比較。
内容でなら最新の投稿の項目を比較。
別ページはリファラをチェック。
282 :
nobodyさん :03/10/13 00:07 ID:DoqZ3k9V
すみません 別ページからの投稿を禁止するにはどうしたら良いのでしょうか? 下痢トラップを禁止する方法です。
>>282 リファラをチェックして、自分のサイト以外からだったらはじく
285 :
nobodyさん :03/10/13 00:18 ID:DoqZ3k9V
if (($refcheck) && ($ENV{'HTTP_REFERER'} !~ /$scrurl/)){ &error("外部からの投稿は禁止されています。"); } こんなのを入れたら良いのですか?
別ページであればエラーメッセージを出す ようなスクリプトを作ればよし。
287 :
nobodyさん :03/10/13 00:29 ID:DoqZ3k9V
sub regist { # フォーム入力チェック &form_check; # 時間を取得 &get_time; # クッキーを発行 &set_cookie; # ファイルロック if ($lockkey) { &lock; } # ログを開く open(IN,"$logfile") || &error("Open Error : $logfile"); @lines = <IN>; close(IN); # 記事NO処理 $top = shift(@lines); ($no,$ip,$time2) = split(/<>/, $top); $no++; # 連続投稿チェック if ($addr eq $ip && $wait > $times - $time2) { &error("連続投稿はもうしばらく時間をおいて下さい"); } すみません初心者なので教えてください。 上記はKENTのjoyfulBBSのCGIの一部なのですが、どこに'HTTP_REFERER'をどの様に入れたら良いのでしょうか? 荒らされて困ってます。 どうか教えてください
288 :
nobodyさん :03/10/13 00:33 ID:DoqZ3k9V
#別ページからの投稿を禁止する場合は 1 を。 $refcheck = 1; if (($refcheck) && ($ENV{'HTTP_REFERER'} !~ /$scrurl/)){ &error("外部からの投稿は禁止されています。"); } 単純にこれを追加するだけで良いのでしょうか?
289 :
nobodyさん :03/10/13 00:37 ID:DoqZ3k9V
if (($refcheck) && ($ENV{'HTTP_REFERER'} !~ /$script/)){ &error("外部からの投稿は禁止されています。"); } KENTの場合はこうですかね?
290 :
nobodyさん :03/10/13 00:47 ID:DoqZ3k9V
エラー・・…涙 誰か教えてください
おい!その機能はあらかじめ組み込まれていて、 フラグ$refcheckを1にするか0にするか指定するだけではないか! マジで勘弁してくれよ。 基本設定すら理解してない人はCGIを設置しないでくれ。 ほんとマジで……。
292 :
nobodyさん :03/10/13 00:51 ID:DoqZ3k9V
$scriptのディレクトリーエラーでした・・・すみません たぶんこれで良いと思うので様子みます
293 :
nobodyさん :03/10/13 00:53 ID:DoqZ3k9V
>>291 KENTには無いから他のCGIのを組みこんでます。
その機能はKENTのjoyfulBBSにはありませんので・・・
>>293 「設定項目」を読め。ちゃんと外部からの投稿を禁止できるようになっている。
その前に
>>1 を読め。連投するなら名前欄に最初のレス番くらい書いてくれ。
そして、氏ね。
296 :
293 :03/10/13 01:39 ID:???
すみませんでした。 良く見たらありました(自爆
297 :
nobodyさん :03/10/13 17:22 ID:sH/1YRys
299 :
297 :03/10/13 19:28 ID:???
301 :
297 :03/10/13 20:12 ID:???
>>300 すみません、説明不足でした
初期設定に確かにその項目はありますが、全て日記の内容の上部に出てきてしまうんです
この項目で「右側表示」にしたとき、「画像に対して文章の回り込みする」設定にしていれば画像の左側に日記の内容が現れるのですが
画像が小さすぎる、もしくは文章が長すぎる場合 画像の下まで文字が来てしまい、個人的に見にくくなってしまいます
この状態をなくすために日記の内容は左側、画像は右側 という風に分けられればいいなぁと思っています
>>301 そういう表示をHTMLであらわせるかい?
304 :
nobodyさん :03/10/13 20:56 ID:FJjpgnqj
どなたか日付の右横にあるIDを表示させる構文を知りませんか?
1145-1239行が該当部分だな。
初期設定の
$point= 3 ;#画像の表示位置(1:Left 2:Center 3:Right)
$maware= 0 ;#画像に対して文章の回り込みをしますか?(ry
を決め打ちすれば、該当部分のif文が相当削除できるからやろうと思えばすぐに出来るな。
$point= 3 だな。回り込みはしないつもりだな。
コメントと画像の順番を反対にして、間に</td><td>をいれればいいんか。
漏れの脳内では出来たみたいだ。
ところで
>>297 は少しは自分で考える気があるのかな?
307 :
297 :03/10/13 21:47 ID:???
>>302 ただのタグ打ちですが
<TABLE border="1">
<TR><TD WIDTH="320" HEIGHT="150">ここに内容が来ます</TD>
<TD>ここに画像が来ます</TD></TR>
<TR><TD COLSPAN="2">ここにレス(コメント)が来ます</TD></TR>
</TABLE>
こんな感じでしょうか・・・
>>305 すみません、CGIいじるのはまだほとんどやっていないもので・・・
>コメントと画像の順番を反対にして、間に</td><td>をいれればいいんか。
はい、そんな感じです ↑のタグのようにしたいので<td colspan>も使うとは思いますが・・・
自分では考えているつもりなんですが、知識がほとんど無いんで・・・すみません
>>307 先ず、1215行目は空行だよな。そこに
print "</td><td>\n";
って追加しる。
print "</td><td>\n"; …1215行目
print "</td></tr></table>\n"; …1216行目
こうなってよな。
1159行目から1209行目を切り取りしる。
さっきの間にペーストしる。
print "</td><td>\n";
ここに1159行目から1209行目を切り取りしたものをペースト
print "</td></tr></table>\n";
こういうことだぞ。
んなもん日本語化しなくても、いいのはたくさんある。
>>310 こんなCGI探してますスレから出張おつかれさま。
今探したら、5分で見つけたよ。日本語版。
ホントに欲しいなら、よくよく調べなよ。
313 :
nobodyさん :03/10/14 21:48 ID:9OWpK5Ur
写メールBBSの画像のリンク(.gifや.jpgなど)の所を、GIFやJPGなどの様に表示させたいのですがどのように記述すれば良いですか?
配布元:
http://php.s3.to/
314 :
nobodyさん :03/10/14 21:50 ID:9OWpK5Ur
↑は携帯から閲覧した時です
if(.gifや.jpgなど){ s/<a href="(.*?)">(.*?)</a>/<img src="$1">/g; }
あかん、、、泥酔やからむたくた。 if($url =~ /.gifや.jpgなど/){ $url =~ s!<a href="(.*?)">(.*?)</a>!<img src="$1">!g; }
317 :
nobodyさん :03/10/15 00:34 ID:9t7zN8io
>>312 もしよろしければ検索ワードだけでも教えていただけたら幸いです。
Googleで「zboard zero board 配布 php」等を入力して何度も検索しているんですが
一向に見つかる気配がありません・・・。ご迷惑かけます。
319 :
297 :03/10/15 02:56 ID:i7KGmsqz
>309 そのやり方で出来ました、こんな感じで移動させるといいんですね・・・ どうもありがとうございましたm(_ _)m
320 :
297 :03/10/15 02:57 ID:???
ageてしまった・・・_| ̄|○
321 :
nobodyさん :03/10/15 04:18 ID:HZUiBUz6
あ
322 :
nobodyさん :03/10/15 04:19 ID:l7I5apyd
あ
324 :
nobodyさん :03/10/16 15:06 ID:eM6NuDz9
>>324 一日にUPできる量って、全体で?
UPした量を蓄積する仕組みと、UPできなくする仕組み、
の2つがあればできそうかな?
一日にUPできる量を5Mぐらいまでに制限したいのです。
327 :
nobodyさん :03/10/16 18:35 ID:1zQoA0z+
>>324 出来ますよ。
データサイズがログファイルに保存されてますし、
日付取得して、
その日付に投稿されているデータサイズの合計を調べて、
5M以上だったら、エラーを出して投稿させなければ良い。
で、コメントのみだったら投稿できるようにすればオケイでしょ。
具体的には、sub writeで>328氏の判定をするといいかも。 あと、コメントのみの投稿を許可するのは、 あちこち改造しなければならなくなるので、 手を出さないほうがよろしいかと。 で、とりあえず、改造したスクリプト(動かなくても)をうp!
330 :
nobodyさん :03/10/17 05:27 ID:iyTCqXRR
マルチ氏ね
332 :
nobodyさん :03/10/17 23:15 ID:IVn2s9ih
sort使えば楽だよ
335 :
332 :03/10/17 23:35 ID:???
>>334 お、こんないいものがあったのですね。
情報有り難う御座います。
336 :
nobodyさん :03/10/19 02:02 ID:Qt9ndxrw
338 :
nobodyさん :03/10/19 02:21 ID:Qt9ndxrw
何かないでしょうか?
>>336 俺はその改良で一週間を潰したよ。がんがって自分でやんなされ。
著作権表示は消すなよ。
初心者に限って、デザイン変えたとか少し改造した程度で、 元のスクリプトだと気づかねぇだろうと著作表示消すからな。
341 :
nobodyさん :03/10/19 23:05 ID:7w8VUkaM
tp://ugug.virtualave.net/index.cgi ここのサイトで配布されてるメーラーなのですが送信先を三箇所ぐらい指定できるようにできないでしょうか?
>>341 結論から言えば、出来るけど。
改造したスクリプトを動かなくてもいいのでうpしてください。
それが規定ですので。
>>341 デフォでCCだけど複数箇所送れるようになってますが?
344 :
343 :03/10/20 04:39 ID:???
スク見てみたけど、CCに複数のアド入れてもダメみたいだな。 すまん。 だが3ヵ所指定を教えたら100ヵ所指定も簡単だろうから、 あえてスルーしたほうが良さそうだな。
自分でメーラ等でメール出してヘッダを調べる そして、それと同等のヘッダが出力できるように改造する 以上
346 :
nobodyさん :03/10/21 01:50 ID:5wuKQhG0
[ActivePHPBookmarks] //lbstone.com/apb/?version=1.1.02 ここにあるブックマークのスクリプトなんですが、海外のものなので 日本語が使えなくて困っています。 やたらとphpファイルがあるのでなにがなにやら・・・。 Perlなら少し知っているという程度なので、PHPの日本語化がわかりません。 アドバイスお願いします。
>>346 ソースを見ながら直せよ。それ以外に何がある?
348 :
nobodyさん :03/10/21 03:13 ID:sTKI3X+b
わざわざ改造しなくてもファイル指定できるのぐらいあるぞ?
>>348 それか、サポート掲示板に要望出せば、作者がちゃんとしたのを作ってくれるかも。
351 :
nobodyさん :03/10/21 10:56 ID:sTKI3X+b
>349 そのファイル指定ができるCSVエディター教えてください。 探していみたんですが、みつからないんです。
それはスレ違い
354 :
nobodyさん :03/10/24 13:54 ID:mW7emaUc
スレッド式のBBSスクリプトに、2ちゃんみたいなage.sage機能をつけるような改造を施したいのですが、このスレで質問させていただくためにまずは自分である程度やってみようと思っても手がかりすら掴めず途方に暮れております・・・ age.sage機能に関して適した検索ワードや関連サイトをご存知の方がいらっしゃいましたら教えていただけませんでしょうか。
355 :
nobodyさん :03/10/24 13:59 ID:mW7emaUc
連続投稿すみません、ちなみに検索はグーグルで 「age.sage.age機能.sage機能.スクリプト.解説.詳細.しくみ.スレッド」 上記の単語をとっかえひっかえして探しましたが見つかりませんでした。
357 :
nobodyさん :03/10/24 14:20 ID:mW7emaUc
>>356 さん
スレ違いすみませんでした、ありがとうございます。
隅々まで読みあさってきます!
隅々まで読みあさるべきスレではないな。
359 :
nobodyさん :03/10/24 15:43 ID:mW7emaUc
「age」とか「sage」で検索しまくっても保守レスしかヒットしない・・・ もうだめぽ_l ̄l○
age sageよりもまず、表示している順番は何によって決まってるんだよ そのへんは把握してるの?
361 :
nobodyさん :03/10/24 16:02 ID:Ai8nOR1X
はい、煽りスタート。
362 :
nobodyさん :03/10/24 16:11 ID:mW7emaUc
>>360 さん
すみません、PCとは無縁の仕事なので見当違いならスルーしてください。
自分のとこでは、メールフォームは$mailで指定されてて、
$sort_use =1;(1は返信がついたらage、0にするとスレッド位置はそのまま)なので$sort_useという項目を探してすべて
if ($sort_use) {
if ($in{'mail'} eq "sage") { $sort_use = 0; }
if ($in{'mail'} eq "age") { $sort_use = 1; }
}
に置き換えてみました。こんなレベルです。
もっと勉強しないとだめですね・・・
その程度書けるのなら、あとはちょっとの頑張り次第だな 負けるなよ
364 :
nobodyさん :03/10/24 16:26 ID:mW7emaUc
>>363 ありがとうございます・゚・(つД`)・゚・感激
悔しいから絶対諦めないで頑張ります!
スレ汚しすみませんでした
365 :
nobodyさん :03/10/24 16:26 ID:mW7emaUc
敬称が抜けた(´・ω・`)
>>363 さん、ありがとうございました
>>366 dlrank.cgi 118行目
print "<tr><td class=ListHeader>ダウンロード総数</td> 略 </font>+15000</td></tr>\n" if($DSP_CNT);
368 :
366 :03/10/25 17:31 ID:???
>>367 レスありがとうございます。
試したのですが、DL総数の横に+15000と表示されてしまいます。
すでに足した状態で表示したいです。
あと、今日・昨日・今週・今月のランキングにも+15000と表示されてしまいます。
全期間のDL総数にのみ、+15000を足した状態で表示させたいと思っています。
よろしくお願いします。
>>368 試したのか・・・。試さなくても見りゃ分かるだろ・・・。
dlrank.cgi 42行目 $loglines = 0; → $loglines = 15000;
371 :
366 :03/10/25 18:01 ID:???
>>370 全期間のDL総数のみ足して表示させたいんです。
$loglines = 0; → $loglines = 15000;
にすると、昨日・今日などのDL数も一緒に+15000になってしまうんです。
$loglines = $MODE eq ''? 15000: 0;
373 :
366 :03/10/25 20:35 ID:???
>>372 レスありがとうございます。
鯖でも正常に確認できました。
どうもありがとうございました。
>367-368 気分転換に覗いてみたら気分がかなり和んだ。
あめりかcgiで日本語表示しようと <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> を入れたんですが エンコードが西ヨーロッパ言語(ISO) どうすればいいでせふ
あめりかcgiってなんですか?
米国サイトで配布されていたCGIです
metaなんかいらないからヘッダでシフトJISを吐けばいい
なお、ここは改造スレなので
>>1 に従うか適切なスレへ移動して
ヘッダでシフトJISを吐けばいいの意味が分かりませんです 海外のCGIを日本語化するのはここではないのでしょうか
380 :
375 :03/10/28 19:10 ID:5JAmS/mf
その、ffileman_english.cgi の $charset = "iso-8859-1"; と言う行はなおしたのか?
382 :
375 :03/10/28 19:21 ID:???
どう直せば・・・
383 :
375 :03/10/28 19:22 ID:???
ISO-2022-JP でいいですか?
384 :
375 :03/10/28 19:28 ID:???
きゃー ISO-2022-JP で化けません ありがとございやした m(_ _)m
385 :
nobodyさん :03/10/28 19:47 ID:O2XSmC1X
●●●マスコミの盗聴、盗撮は許されるのか?その1●●●
http://natto.2ch.net/mass/kako/974/974478132.html 489 名前: 文責:名無しさん 投稿日: 2001/04/11(水) 17:25
一般人なのに盗聴される、じゃなくて、「一般人だから盗聴される」んじゃないのかな?
基本的にネタ集めのためにやってんなら、有名人のネタを盗むと、有名人は告発できるし、
そんなことされても当たり前だと思われるので告発しても信じてもらえる。
そうでない人は、ここの途中の書き込みにもあったように「電波」扱いされるだけ。
ただで、ネタを仕入れるんなら、一般人に限るでしょう。
マスコミは自分らの無能さを恥じてほしいです。
ちなみに私が盗聴されはじめたのは、芸能人にストーカーされ始めてからでした。
そこからマスコミに広がって行った。
だから余計「妄想」とか思われそう。
友人に話したら完全に病気扱いされた。ストーカーって言葉がない時代だったしね。
書いておいておいた小説のネタが、他人の原作でドラマ化されたときにはきれまくっ
たなあ。(一度や二度のことじゃないけど)
386 :
375 :03/10/28 20:05 ID:???
表示は化けませんでしたが、htmlを編集しようとすると(Edit File) 「がははは」と表示しているけど、 ソースを見ると「$B$,$O$O$O(B」となってしまいます
388 :
375 :03/10/28 20:45 ID:???
$charset = "iso-8859-1"; を $charset = "ISO-2022-JP"; にしたんですが、しふとじすはどうすればいいのでせふ
389 :
375 :03/10/28 20:59 ID:???
$charset = "Shift_JIS"; でけました。ありがとさんでした m(_ _)m
飯食って酒呑んでる間に完了してるな 本来ならffileman_japanese.cgi を作ったほうがいいとは思うけどね
391 :
nobodyさん :03/10/30 10:01 ID:jCZnnFUk
フリーのアイコン付き掲示板CGI(YYBBS)をダウンロードしたのですが
http://minicgi.net/cgi2/yybbs.html アイコンなしの設定がわかりません。
# アイコンを定義(上下は必ずペアで)。管理アイコンや常連アイコンは、ここでは記入の必要無し
@icon1 = ('1.gif','2.gif')
@icon2 = ('1の画像','2の画像');
↑に設定にすると
「1の画像」と「2の画像」のアイコンを選択できますが、「アイコン無し」の選択もできるようにしたいのですが
どのように記述すればいいでしょうか?
>>391 中身見てないからあれだけど、ダミーの1ピクセル透明GIFを作って
それをアイコンなし時に表示させればいいんでない?
@icon1 = ('0.gif','1.gif','2.gif');
@icon2 = ('アイコンなし','1の画像','2の画像');
>>391 >>392 の方が簡単かも。
@icon1 = ('','1.gif','2.gif')
@icon2 = ('アイコンなし','1の画像','2の画像');
yybbs.cgi 138行目
if ($iconMode) { print "<td><img src=\"$imgurl$ico\" alt=\"$ico\"></td>" }
を
if ($iconMode) { print "<td><img src=\"$imgurl$ico\" alt=\"$ico\"></td>" if $ico; }
注意:
@icon1の '', を間違わないように・・・
394 :
391 :03/10/30 23:48 ID:???
みなさんありがとうございます!
395 :
nobodyさん :03/10/31 11:55 ID:IyRKHOC7
オリジナルのファイル名を保存しておいて、 表示する時にそれを使うようにすればおけ
>>396 ありがとうございます。
具体的にはどんな感じにすればよいでしょうか?
>具体的にはどんな感じにすればよいでしょうか? (訳:コピペで動くソースキボンヌ)
例がソースしかないので自分で設置して、「なるほど、こうしたいのか」 と調査しつつ、変更するスクリプトをダウンロードして読まなきゃならんのだが まあ3連休だし時間合ったらやってもいいけどさ
質疑の中で結果的にスクリプトを書くのは別にいいんだけど、 全部丸投げで「どうすればいいんですか?」って言われると ちょっと反発を感じるのは俺が未熟だからだろうか。
>400 おれも。 おれはこうやった。 sub decode でファイル名を取得し、sub htmlenc でタグを無効にする。 sub write で$valueにファイル名を追加してログに書きこみ。 sub print_postdata で表示。
>393 スクリプト見てないから何ともいえないけど、アイコンなしの場合に<td>の数の帳尻が合わなくなる悪寒。 >395 CGIで迷ったら受け取った情報を全て書き出してみれ。 蛇足だが、書き換えなくてもperlで記述されてるオリジナルファイル名を書き出すあぷろだならちゃんとある。 スクリプト探しスレで聞くか検索しれ。
403 :
nobodyさん :03/11/01 20:19 ID:8G3+WDGu
このスレは
>>391 レベルしか応えられないのか(藁
こんな下らない質問こそスルーだろ
オナニーしたい奴は他所に行ってやってくれ。気持ち悪い
405 :
nobodyさん :03/11/02 10:07 ID:rTEdGieP
ウェブサービス ディック
http://www.d-ic.com/の csvmail_v4sというメールフォームCGIに関して質問なんですが
フォームからの入力内容がcsvに出力される際に、
その先頭に一人一人に固定的な受付番号(IDみたいなもの)を割り当てたい場合は
スクリプト中にどのような記述を追加すればいいのでしょうか?
ご迷惑をおかけしますがよろしくお願いします。
・名無し相手なら礼儀不要だから ・メアドとかサイトを知られるのが嫌 ・なんかこわい
死ねよカス
>407 5,6回氏ね糞が
410 :
405 :03/11/02 17:23 ID:???
言うまでもないかもしれませんが、
>>407 は私ではありません。
>>406 そのような窓口があったんですか・・・
冗談抜きで気がつきませんでした(汗
お騒がせしてすいませんでした。
411 :
nobodyさん :03/11/02 22:42 ID:Ghf009BK
KENTのASKA BBSにトリップを付けたいのだがどこに追加するかよく分からん。
http://www.kent-web.com/bbs/aska.html # 入力された名前が$namと言う変数で表されているとすると。
# トリップ
$nam =~ s/◆/◇/g;
($nam, $tripkey) = split(/#/, $nam);
if ($tripkey ne "") {
$tripsalt = substr(substr($tripkey, 1, 2) . "H.", 0, 2);
$tripsalt =~ tr/:;<=>?\@[\\]^_`/ABCDEFGabcdef/;
$tripsalt =~ s/[^\.\/0-9A-Za-z]/\./g;
$trip = substr(crypt($tripkey, $tripsalt), -8);
$nam = $nam . " ◆" . $trip;
}
一様トリップの部分はこれでいいのだと思うが、これをどこに追加したら言いのかが分からない。
どこに追加したらよろしいのでしょうかね?
>411 $nam =~ s/◆/◇/g; って名前を勝手に変えて良いのか。 それはともかく、ログに出力する直前に入れれば良いんじゃない。
いや騙り防止なのは解るけど、名前変えるよりは ログのフォーマットにトリップを追加するとかした方が良いんじゃないかななんて。 入力された<>とかはエスケープしてるっぽいから $nam .= " ◆<span class="trip">$trip</span>"; とかでも良いけど。
わかると思うが"のエスケープ忘れてた。
確かにひでぇトリップルーチンだ
>>416 とりあえず自分なりに書いて来たんだから丸投げくんとは段違い。
もし「ひでぇ」と思うんならリライトしてやれば?
ま、トリップ回路のでき云々は棚上げにして、漏れはどこに書くべきかを言っておく。
>>412 も言うようにログに出力する直前に入れるのが吉かと。。。
具体的に言うと、($no,$dat,$nam,$eml,$sub,$com,$url) = split(/<>/);の後だわな。
しかし、「記事表示」、「ワード検索」、「管理モード」と、ログに出力しているところが3ヵ所あるので、全てに入れる必要があるんじゃなかろうか。
サブルーチンにする手もある。
書込みの所にトリップ回路を入れるとどうだろう。
書込みの所で変換の場合、回路は1ヵ所だけで良い。
書込みの所では$in{'name'}が変換対象だから、トリップ回路も書き換えを要す。
具体的な場所は重複投稿チェックの前までに済ませれば桶かな。
ただし、トリップ変換後の名前をクッキーに入れると不都合が生じるであろうから、クッキーに記憶する部分をトリップ回路の前に移動しておく必要があろう。
スクリプトを見ただけだから、実際違っていたらスマン。
ふと思ったんだが、幾らトリップを付けるといっても別に入力まで2ch式にしなくても良いんでは。 名前に#が入ってるとかで#が二回以上出てくる場合に困らないかそれ。 トリップ入力欄を別に設けるか、トリップを使用するかしないかのチェックボックス又は ラジオボタンを用意しといた方が良さげ。
記事削除はID(ユーザー削除なら+pass)のみで行なってるので書き込み部だけでいい鴨。 つーか、ホスト取得してるのになりすましを過剰に気にする必要あるの?
422 :
夏 :03/11/04 05:54 ID:???
423 :
夏 :03/11/04 05:54 ID:???
424 :
夏 :03/11/04 05:59 ID:???
>>422 と
>>423 の記載内容で意味不明な箇所があれば
お知らせください。
私は肩身の狭い初心者ですので
用語とかうまく説明できません。(本当に申し訳御座いませんn(_ _)n)
何とかお伝えしやすいように頑張ります。
425 :
nobodyさん :03/11/04 08:08 ID:K9twgqXS
apeboardについて教えてください。 apeboardで半角カナを使うと 全角カナに変換されますよね。 アレを半角カナのまま表示するには、 どの辺りをいじればいいでしょうか。 ガ━━━━━━Σ(´Д`|||)━━━━━━ン!!! って入れても ガ━━━━━━Σ(´Д`|||)━━━━━━ン!!! になってしまいまつ( ´・ω・`)
>425 &jcode'h2z の含まれる行を探して削除。あるいは行の頭に#をくっつけておく。 あと、どう頑張っても文字化けの可能性は残る。
427 :
425 :03/11/04 08:59 ID:K9twgqXS
>>426 即レスありがとうございます。
&jcode'h2z削除してみたんですが、
できませんでした( ´・ω・`)
今必死でググッってまつ・・・。
428 :
425 :03/11/04 09:15 ID:K9twgqXS
425です。 &jcode'h2z削除で出来ました。 さっきできなかったのはナンデダロ・・・ ありがとうございました。
>>424 まず、タイトルをいじるのは関数 PutTitleList 内
daylist の配列に追加すればいいだろう
で、日付を取得しているのが GetDateFromFname なのだが、
ファイル名に日付をもちいていて時刻が入っていないので
現状では不可能。$NickyFnameに時刻も含めるようにするのがいいか?
仕事中なのでまた夜にでも・・・
430 :
夏 :03/11/04 13:48 ID:???
>>429 さん
お仕事中に有り難う御座います。
時刻を追加することは
不可能なのですか……。。。。
そこを一番何とかしたかったのです〜(´Д⊂グスン
$NickyFnameの件ですが$NickyFnameの意味がわからないです。
(スクリプト読んでみたのですがこんなことさえわからないのです
すいません。)
時刻対応には、ファイルの中を読むか、 ファイル名に設定すればいいと思う。
432 :
夏 :03/11/04 19:38 ID:???
>>431 さん
ファイルの中を読むとはどういうことでしょうか?
一日一回更新でログが1日1ファイルなら、ファイルの更新時刻取得でいけないか? まだスクリプトは読んでないんだが。
434 :
夏 :03/11/04 20:35 ID:???
>>434 sasameってのはお前の事か?
お前の質問に対する管理人のレスがあっても、お前にとって期待はずれの内容だったら返事もかけないのか。
いまからでも遅くない。レス書いて桶。
> 改造したいと思っておりまして、自分なりにやってはみた
と書いてあるから、ヒントを出せば自分で改造できると俺は理解した。
$NickyFnameの件
$NickyFnameはファイル名で日付が入っている。
そこに時刻も含めたらって言うのが
>>429 の意見。
俺もこれがいいんじゃないかと思う(ってスクを詳細に見てないが。。。)
ファイルの中を読むの件
ファイルの更新時刻をログに記述するって言う事。
…GetNickyFile でちゃっかり時刻も取得してたのか_| ̄|○ 日付を日記に書き込む設定をしてる場合、 531行目あたりの @daylist[$i]="$mdstr$day$TLday</a>"; を @daylist[$i]="$mdstr$day$TLday $hour:$min</a>"; に。 imode版も似た処理をしてる場所を探してくれ。 タイトルを出力する直前なら間違いなく$hourには時間、$minには分が入ってる。 俺は自分の愚かさを振り返りつつ吊ってくる。
いや、ご苦労だった。俺もやろうと思ったが 先人がいたのでやめていたところだ。
同じく。ご苦労だった。俺もやろうと思ったが 先人がいたのでやめていたところだ。
439 :
nobodyさん :03/11/05 14:25 ID:755OuOcr
>>439 はぁ? <body...> 探してその直後に片っ端から付けてりゃいいだろう?
441 :
nobodyさん :03/11/05 18:54 ID:T2tdZYMk
&MailSend($mail_address,$name); $template_file = "$tmpl_path/ok.html"; $template=HTML::Template->new(filename => $template_file); print $template->output; exit; oK.htmlをcgiで読み込むのでは無く、 ok.htmlに飛ぶ様にするのは可能でしょうか? お願いします。
443 :
441 :03/11/05 19:05 ID:T2tdZYMk
>>442 様
ありがとうございました(TдT)
本当に!!!
444 :
夏 :03/11/05 20:55 ID:???
只今仕事から帰宅しました。
>>435 さん
お返事、ご説明有り難う御座います。
nicky!bbsの書き込みについては、違う方です。同じような質問なのでnicky!のBBSの過去ログ
を調べた際に拝見しましたが、私は『できないことは無いのでは?』と
思っておりましたので〜(やり方はわかりませんでしたが)
>>436 さん
@daylist[$i]="$mdstr$day$TLday</a>";
を
@daylist[$i]="$mdstr$day$TLday $hour:$min</a>";
おっしゃるとおりに変更しましたら
出来ました!!時間表示されました!
とても感激です。有り難う御座いました。
一緒に考えていてくださった皆様も有り難う御座います。
まだタイトルの文字数の方はできていませんので
できましたら報告にあがります。
(またつまずいたらご質問しにくると思います…)
m(._.)m ペこっ
445 :
夏 :03/11/06 05:12 ID:???
446 :
439 :03/11/06 12:32 ID:???
BODYのところや、いろんなところに張ったのですが、無理でした。
447 :
446 :03/11/06 13:53 ID:???
文章の横に書いたり、リンクの横に書いたりしましたが、無理でした。
javascriptの記述に問題がある、と予想してみる。 htmlに貼って試してみ。 >445 ○list.cgi?TitleList対応 list.cgiのsub PutTitleList内の @titlelist[$i]="$mdstr $Title</a>"; の行頭に#(半角)をくっつけ、以下を直後の行にコピペ。 @titlelist[$i]="$mdstr " . substr($Title,0,14) . "</a>"; ○i-mode表示対応 list.cgiのsub PutTitleListIMODE内 $str="$mdstr$day$TLday</a>$Title<BR>"; の行頭に#(半角)をくっつけ、以下を直後の行にコピペ。 $str="$mdstr$day$TLday</a>" . substr($Title,0,14) . "<BR>"; i-modeの方は都合により未テスト。 ともに先頭14字まで切り出す(全角は2文字と計算)。14の部分を書き換えると字数変更可。 手抜きなので境目(この場合だと14-15字目)が全角だと化ける。10行ほど追加すると対応できなくもないけど。 気になるなら「substr 日本語対応」とかでぐぐってとりあえず自分で頑張るよろし。
あー、「…」忘れた。 コピペするものをこっちに。 ○list.cgi?TitleList if( length($Title) > 14) {@titlelist[$i]="$mdstr " . substr($Title,0,14) . '…</a>'; } else {@titlelist[$i]="$mdstr $Title</a>";} ○i-mode if ( length($Title) > 14 ) { $str="$mdstr$day$TLday</a>" . substr($Title,0,14) . '…<BR>'; } else {$str="$mdstr$day$TLday</a>$Title<BR>"; } サイズ変更の際は14の部分を両方変えること。
450 :
夏 :03/11/11 02:10 ID:???
>>448 さん
>>449 さん
わかりやすい解説、誠に有り難う御座います。すみません。父が2日前に亡くなりまして、
色々と慌しくてお返事が遅くなりもうしわけございません。
まだ試しておりませんので、落ち着きましたら改めて御礼を申し上げに
こちらに参ります。
大変だったな がんばれよ
ご愁傷様です。ご香典の代わりにこのスレを捧げます。
455 :
nobodyさん :03/11/11 22:27 ID:p3Nvx6Xc
>>453 Ahhanのサイトに改造やってるところへのリンクがある
可能だ、がんばれや
>457 修正+クッキー機能のついた掲示板を改造する 修正+クッキー機能のついたラウンジ型の掲示板を捜す の方が多分楽。
>>461 > のように
と書いてあるが、どこをどう改造して欲しいのかさっぱりワカラソ
単にフレームというなら鼬害
463 :
461 :03/11/15 11:14 ID:???
初期のまんまだと、書き込んだときにダサいデザインなんで、 かっこよくしたいってことです
>>461 デザインの問題なら、skin系の日記や掲示板などを改造した方が、
よっぽど早いと思うが。
ダサいとかかっこいいなんていう抽象的なものはわからんな スルーでいいだろ
詳しく説明すると、もっとこう ずばばばばーずがーんどきゅーんすぱーんすぱーんって感じにしたいってことです さっ次、次
>466 <embed src="zubabababa-zuga-nDQNsupaaansupaaaan.wav">
468 :
463 :03/11/16 09:43 ID:???
遅レスすみません。。 >skin系の日記や掲示板など 探してみます。 でも改造するんだったら知識とかないから、結局またここで聞きます。 お願いしますね。では逝ってきまつ
htmlの事を聞くのはスレ違い。 はい、次、次ー。
(´-`).。oO(でも巷の掲示板類ってすっとこどっこい HTML なんだよなぁ(哀))
まーメインでコーディングやってるとHTMLなんか自然におざなりになる罠。 しかしHTMLレイアウトはフォーム近辺を変えない限り改造は簡単だからなあ。 デザインの好みもあるだろうし、その辺はユーザ側にやってもらいたいのが本音と思われ。
472 :
nobodyさん :03/11/18 18:54 ID:D1GhPDbj
すごいなこれ、、、、読む気が失せる・・・ ちょっとこれだけじゃ動作しないんで確認できないし history.cgiに メンバー削除モードってあるだろ その中でpush したやつとしてないやつ全部プリントしてみ checkboxをこういう使い方してるのは参考にしたスクリプトが こうやってんの?
474 :
nobodyさん :03/11/18 19:49 ID:D1GhPDbj
>>473 返答ありがとうございます。
>ちょっとこれだけじゃ動作しないんで
とはどういうことでしょうか?とりあえず、全ファイルを圧縮してあるので動くはずですが…
というか、動いてある状態のものを圧縮したのですが…
また、書き忘れてましたが、CGIの最後に「?mode=pass」とすることで書きこみ画面に行きます。
下のアドミニモードよりユーザーの追加が可能です。
PASSは「config.cgi」にあるように「7777」でいくことが出来ます。
>その中でpush したやつとしてないやつ全部プリントしてみ
すみません。方法が良くわからないです。認証部分も単に他のCGIを埋め込んだだけなので、
CGIのスキルはかなり低いです。どのようにやれば良いのかさっぱりです。
>checkboxをこういう使い方してるのは参考にしたスクリプトがこうやってんの?
そうです。デザインは変更しましたが、プログラム自体はそのままです。
元々、アクセス解析機能も付いていたのですが、必要ないと思って削除したのですが、
その時に間違って削除部分を触ってしまったかもしれません。
以上かなり初心者なので変なことをしているかもしれませんが、よろしくお願いします。
>>474 とりあえずわかった
print "<input type=hidden name=lcot value=\"$no\">\n";
この行が、$no が確定する前に実行されてるから。
もっと下の、
print "<input type=submit value=\"DELETE\" title=\"DELETE\" class=\"bot\">\n";
の前の行あたりにもってってみな
476 :
nobodyさん :03/11/18 20:09 ID:fnFHlnCq
>>475 返答ありがとうございます。
IDを見ていただければわかると思いますが、さっきは仕事場、今自宅です。
今手元にプログラムが無いため、明日朝1番に修正してみます。
ということで、結果は明日になります。
しばしお待ちください。
とりあえずデバッグの方法だけはいくつか覚えておくべき 今回のは、print STDERR "式"; でapacheのエラーログみたけど ファイルに書き出すとかツール使うとかあるでしょ
478 :
nobodyさん :03/11/19 10:13 ID:Z+yQwy3L
>>475 >>477 同一の方でしょうか?
ありがとうございます。ばっちり出来ました。
>ファイルに書き出すとかツール使う
とはどんなツールですか?
エラーを確認する方法としてはkentさんのところで配布している構文チェック(でいいのでしょうか?)
用CGI「Perl Checker」しか使っていません。
お勧めのツールがあれば教えてください。
構文をチェックするってのは、文法的に正しいかどうかのチェック。 文法が正しいが、書いてる内容が変な場合はそれだとチェックできないだろ?
ハンドルネームの保護機能を作りたい。 で、こんなもの書いてみますた。 @hndle1 = ("太郎","花子"); @hndle2 = ("0123","abcd"); if (($in{'pwd'} ne $pass && $in{'name'} eq "$master_name") { &error("管理人のハンドルネーム使っちゃいけません"); } elsif ($in{'name'} eq $hndle1[0] && $in{'pwd'} ne $handle2[0]) { &error("他人のハンドルネーム使っちゃいけません"); } 問題はこれだとelsif分岐を大量に書くはめになるってこと。 whileでなんとかするのかな?なんて気もするけど、 現時点のスキルではそこで限界。 アイディアまたはヒントがあったら教えてちょうだいな。
まあwhileでもいいけど、俺はハッシュが好き。 %hndle = ( '太郎' => '0123', '花子' => 'abcd' ); #管理人HNチェック if ( $in{'name'} eq $master_name && $in{'pwd'} ne $pass ) { &error("管理人のハンドルネーム使っちゃいけません") } #パンピーHNチェック if ( exists($hndle{ $in{'name'} }) && $in{'pwd'} ne $hndle{ $in{'name'} } ) { &error("他人のハンドルネーム使っちゃいけません") }
登録数が多いようなら名前とpass(を暗号化したもの)を記述したログファイルで各行whileだろうな。 2chのキャップとか削除人の名前ってどんな実装されてんだろ。
>>483 # ハンドル(キャップ)
&jcode::tr(\$FORM{'mail'}, '#', '#');
if($FORM{'mail'} =~ /([^\#]*)\#(.+)/){
my $mail_message = $1;
my $handle_pass = $2;
$handle_pass =~ s/[\.\/]//gi;
$handle_pass .= ".cgi";
my $handle_file = "../handle/" . $handle_pass;
if(-e $handle_file){
open(HANDLE,"<$handle_file");
my $handle = <HANDLE>;
close(HANDLE);
chomp($handle);
if($FORM{'FROM'}){
$FORM{'FROM'} = "$FORM{'FROM'}@$handle ★";
}else{
$FORM{'FROM'} = "$handle ★";
}
#ハンドルを使う時はプロクシ規制をキャンセルする
$FLAG = 9;
}
$FORM{'mail'} = $mail_message;
}
existstって関数は初見です。
ハッシュを使うというのは思い浮かばなかったなぁ。
素人的にはハッシュって敷居が高くて、勉強も後回しになりがち。
>>481 さんどもでした。
487 :
Name_Not_Found :03/11/22 05:14 ID:gMDA82P9
>>487 利用規定のどの部分に引っかかったのよ?
で、自分ではどこまで改造したわけ?
489 :
Name_Not_Found :03/11/22 05:57 ID:gMDA82P9
>>488 無料のホームページスペースだと駄目みたいです。
どこをどういじればいいのかぜんぜんわからないので
ここで少しでもアドバイスがもらえればと思っています。
よろしくお願いします。
490 :
nobodyさん :03/11/22 09:10 ID:zFizLjpn
491 :
296 :03/11/23 12:00 ID:???
【 CGI名 】MiniBoard (cg_type=3)
【配布先URL】
http://www.prettybook.com/ 【設置サーバ】www2s.biglobe.ne.jp
【 質問内容 】日付の上部にタイトルを表示させたい
「sarasou.com」でレンタルしているタイプの日記を設置したくて
上記のCGIを設置しました。一応、表示は出来るようになっています。
それがそのままだと日付とコメントしか表示できないのですが、タイトルも
表示できるようにさせたいのです。
(レンタル事業用の「PRETTY MDS PRO 1」のような表示方法)
設定部分の「#-投稿フォームのサイズ」のところで「$title_fw = 35」を
足してみましたが反映されるはずもなく。
どなたか、方法をご存知の方がおりましたら教えていただけないでしょうか?
どうかよろしくお願いいたします。
上記の質問を「CGI設置スレ」に書き込んだところ、こちらの方が適切な
スレだと誘導していただきました。
投稿フォームにタイトル欄を表示させるまでは出来たのですが、入力しても
表示されず、形だけで使い物になっていない状態です。
テキストはこちらです。
http://www.geocities.co.jp/HeartLand-Hanamizuki/8294/pminib_cgi.txt アドバイスをいただければ嬉しく思います。よろしくお願いいたします。
>>491 ざっと見ただけでテストはしてないぞ
行番号を下記のように変更しる
長すぎる行があるって2ちゃんねるに怒られたので、line:363は途中で改行を入れてる
あとで戻せ
line:363
unshift(@LINE,"$num<>$date<>$in{'name'}<>$in{'email'}<>$in{'scol'}<>$in{'get'}<>
$in{'hd'}<>$in{'com'}<><>$in{'url'}<>$host<>$pwd<>$in{'icon'}<>$in{'fcol'}<>$in{'title'}<>\n");
line:431
($num,$date,$name,$email,$scol,$get,$hd,$com,$res,$url,$host,$pwd,$icon,$fcol,$Title) = split(/<>/,$LINE[$_]);
line:747
($num,$date,$name,$email,$scol,$get,$hd,$com,$res,$url,$host,$pwd,$icon,$fcol,$Title) = split(/<>/,$LINE[$_]);
line:835
($num,$date,$name,$email,$scol,$ged,$hd,$com,$res,$url,$host,$pwd,$icon,$fcol,$Title) = split(/<>/,$line);
その2 line:1016,1018も改行している line:1002 ($num,$date,$name,$email,$scol,$get,$hd,$com,$res,$url,$host,$pwd,$icon,$fcol,$Title) = split(/<>/, $line); line:1016 $line = "$num<>$date<>$in{'a_name'}<>$in{'a_email'}<>$in{'a_scol'}<>$in{'get'}<>$in{'hd'}<> $in{'com'}<>$in{'res'}<>$in{'a_url'}<>$host<>$pwd<>$in{'a_icon'}<>$in{'a_fcol'}<>$in{'title'}<>\n"; line:1018 $line = "$num<>$date<>$in{'name'}<>$in{'email'}<>$in{'scol'}<>$in{'get'}<>$in{'hd'}<>$in{'com'}<> $res<>$in{'url'}<>$host<>$pwd<>$in{'icon'}<>$in{'fcol'}<>$in{'title'}<>\n"; line:1045 ($num,$date,$name,$email,$scol,$ged,$hd,$com,$res,$url,$host,$pwd,$icon,$fcol,$Title) = split(/<>/,$line); line:1106 $m_cook="name<>$in{'name'},email<>$in{'email'},url<>$in{'url'},pwd<>$in{'pwd'},scol<>$in{'scol'},icon<>$in{'icon'},fcol<>$in{'fcol'}<>$in{'title'}"; line:1126 $c_pwd = $COOKIE{'pwd'}; $c_scol = $COOKIE{'scol'}; $c_icon = $COOKIE{'icon'}; $c_fcol = $COOKIE{'fcol'}; $c_title = $COOKIE{'title'}; line:1199 $com=$in{'com'}; $get=$in{'get'}; $hd=$in{'hd'}; $Title=$in{'title'}; line:1269 ($pnum,$pdate,$pname,$pemail,$pscol,$pget,$phd,$pcom,$pres,$purl,$phost,$ppw,$picon,$pfcol,$ptitle) = split(/<>/, $pst_line); line:1463 ($num,$date,$name,$email,$scol,$get,$hd,$com,$res,$url,$host,$pwd,$icon,$fcol,$Title) = split(/<>/,$_);
その3 1209-1210行の間に追加しる $message .= "TITLE : $Title\n"; 下記行番号の空行に追加記述しる line:1135 追加 if ($in{'title'}) { $c_title = $in{'title'}; } line:476 追加 print "$Title</td></tr><tr><td bgcolor=$kiji_col $k_bgcol>\n"; あとはHTMLのデザインの問題だからお前に任せる
495 :
nobodyさん :03/11/24 10:41 ID:tqVmKBne
496 :
495 :03/11/24 11:35 ID:???
497 :
491 :03/11/24 21:06 ID:???
>>492 〜494
回答してくださって、有難うございます。
これから作業してテストを行いますが、まず、一言お礼を申し上げたくて
書きこみさせていただきました。
本当にありがとうございました。
498 :
491 :03/11/25 02:56 ID:???
>>498 364行目の前から157文字目から4文字はいらんのじゃないか?
つーか 「'}」 が表示されておかしいってのがわかってんなら
「'}」で片っ端から検索すればわかるようなもんだろ。
500 :
492 :03/11/25 04:12 ID:???
>>498 >>499 の言う通りline:364に
$in{'fcol'}<>'}<>$in{'title'} こんな部分がある。
拡大汁と、<>'}<> だな。
改造部分、修正部分の行末にコメントを書くのはいいが、おまいのはコメントになっていない。
・・・・・・・ ; (#修正)
これだと動かすとエラーになるだろ?
・・・・・・・ ; #修正
って書くもんだ。
ま、ガンガレや
501 :
491 :03/11/25 11:26 ID:???
>>499 さん、
>>492 さん
アドバイスをありがとうございます。
おかげさまで普通に文字が表示されるようになりました。
文字を入力したのに文字化けする!と思い込んでしまい、
余計な文字が入っているという発想が出来ませんでした。
こんな超初心者に教えてくださって、本当にありがとうございました。
ここから先(デザイン関係)は地道に自分で考えていきたいと思います。
不安ですが、頑張ります。
はじめして。 画像アップロード機能付きの掲示板で 画像が添付されたとき、任意のアイコンを表示させて アイコンクリックで別窓に画像表示、、できるようにするのは かなり大掛かりな作業になるでしょうか。 画像表示は、原寸、サイズ指定、サムネイルが選択でいるようになっています。 それと画像がなかった場合、代替画像表示も可能です。 製作者の方に、要望を出そうかな、と思っているのですが あまりにも大掛かりな改造・・・ということなら 申し訳ないので、要望だすのはやめようと思い こちらでお聞きしました。 よろしくお願いします。
>>502 さしたる苦労でもない。
が、作者のスクリプトがクソミソで読みにくい場合はこの限りではない。
なるほど。 製作者本人なら、大作業ではないってことですね。 要望出すかどうか考えます。 ありがとうございました>503
505 :
nobodyさん :03/11/26 20:55 ID:QnquB6IS
はじめまして。初めてカキコさせていただきます。
自分はまだ改造の初心者で、見よう見真似で他の改造版からいろんな
機能をパクっていろいろイジってたのですが、どおしても壁にブチあたったので
質問させてください。
現状、KentさんのYYBOADの改造版をさらに改造して使っております。
ttp://minicgi.net/で配布しているものに 、MT2CHの機能を移植しました。
主な改造点は、
・掲示板のTOPにスレッドリスト(最新○○件)
・スレTOPに「▲▼■」などのリンク
・レスu\示
とここまではなんとか出来たんですが。。もうひとつ追加したい機能で
「レス記事表示制限」をなんとかしたいんです。
TOPには10レス表示してるのですが、レスが伸びたスレがあがってると
TOPが異常に長くなってしまうもので。
MT2CHで使用している「if ($mm2[$nn2] < $num2)」の表記をアイコン領域、
コメント領域などに適用したのですが・・・表示はされないものの
空白だけは残ってしまうのです^^
恐らく、ログの読み込みの段階で読み込み範囲を定義してあげなきゃ
いけないのでしょうか?
Perl初心者で申し訳ないのですが、アドバイスのほどよろしくお願いします。
このさいなんでアド晒します(テストフォルダですがww
http://lovely-aya.appletea.to/cgi/test/mainbbs.cgi
506 :
505 :03/11/26 20:57 ID:QnquB6IS
>TOPには10レス表示してるのですが、 =TOPには10スレ スミマセン^^;
>>505 「レス記事表示制限」ってのがよくわかんねーな。
TOPには10スレ表示したいと、何が何でも10スレだと。
1スレに10レスだと合計で100レスだと長くなるから「レス記事表示制限」したいとこういうわけだね。
ところで「レス記事表示制限」って何を制限するものだろうか。。。
スクリプトを見ればわかるかな?
おまいの改造したスク晒せ。
完成イメージHTML作ってみろ。
つーか、おまい
>>1 を読んでないだろ。
508 :
505 :03/11/26 21:42 ID:QnquB6IS
509 :
505 :03/11/26 21:49 ID:QnquB6IS
スクは部分じゃなく全部晒せ > 1スレあたりに表示するレスを最新○○件 > などと定義したいんです 現状で10件と定義されてるんじゃないの?
511 :
nobodyさん :03/11/27 04:55 ID:oC8UJ7x+
>>511 データファイルを読んで、それをsplitしていじくってからまた繋げて書き込むときに、
うしろに\nとかつけてない?
513 :
511 :03/11/27 05:27 ID:oC8UJ7x+
>>512 ロック処理のところで
$data_r = "$goods_no<>$in{'goodsname'}<>$in{'MARK'}<>$option_new<>
$option2_new<>$in{'bunrui'}<>$in{'setumei'}<>$in{'fcolor'}<>$in{'PRICE'}<>
$in{'SALE'}<>$in{'TANI'}<>$zaiko<>$in{'limit'}<>$tail_new<>$in{'bikou'}\n";
こんな感じで入っていますが。。。
確か元から入っていました。
ロック処理で二箇所あるだけで他には無いかと、、
514 :
505 :03/11/27 08:49 ID:HLY/75ez
>>514 もともとのスクがKENT作だから見難い上に、おまいのはインデントが滅茶苦茶で見るのに苦労したよ。
846,869,878,880,881行目が変。
この行は無条件でprintしてる。
それと、if文の書き方もなんだかしょっぱいな。
勉強が必要だな。
あとな、パスとかログファイル名とか書いてあったけど、直しておけよ。
>>513 279-280行目の間に
chomp $data ; # ただしperl5
517 :
505 :03/11/28 01:24 ID:TJ9UbLAB
>515 あ、ありがとうございました〜! なんとかキレイに表示することができました。 各ブロック全てに条件つけてあげなきゃならんかったんですね^^; ほんとド素人ゆえ、見よう見真似で記述したので かなりしょっぱいスクリプトですw まだCGI設置してから半年たらずなもので^^;これからも日々勉強します! つ〜か。。こんなに各ブロックに条件つけるより、 ログファイルを読み込む時点で制御できないものだろうかと。。。 きっとそのほうが処理も軽くなるような気が。
518 :
495 :03/11/28 19:46 ID:???
519 :
名無しのごんべい :03/11/28 20:04 ID:MW+UWZ+d
>>518 様
このスレは「スクリプトを改造したいけどやりかたわかんないよー」な人が
>>1 の(1)〜(3)に留意してアドバイスを求め、答えてもいいかなと思った奇特な香具師がアドバイスを送るスレなのです。
>>1 にはハッキリ明記されておりませんが、スレの流れから申しますと
>>1 の(3)の
> 少しは自分で考えること。
が出来ていない人には大変厳しいスレになっております。
したがいまして、
>>518 様におかれましてはご足労とは存じますが、
>>518 様が改造なさられたスクリプトをここに集う奇特な香具師連中にお目にかける必要があろうかと存じます。
エラーが出ておりましても構いません。
途中で投げ出されておりましても構いません。
私共は
>>518 様のお心が知りたいのです。
どうかよろしくお願いいたします。
ぶっちゃけ 「丸投げをするんじゃねーぞゴルァ」 でございます。
521 :
518 :03/11/29 08:24 ID:???
>>520 1062行目の
&PassCheck($msg,1);
を
&PassCheck($msg,0);
1104行目も同じように変えたら一応編集画面まではいけたんですが…
編集して送信しようとすると
「記事の編集は管理者しかできません」
と出て編集できませんでした
この後どうすればいいかわからずつまってしまいました
522 :
518 :03/11/29 08:26 ID:+XFITraT
すいません ID出し忘れました
523 :
ぺぺぺ :03/11/29 09:19 ID:UrSW+93h
できません。
525 :
ぺぺぺ :03/11/29 10:50 ID:UrSW+93h
了解しました。
>>518 hbbs.cgi 219-221行目 コメントアウト
# if ($cmd eq 'epost') {
# unless (($id eq $admin_id ・・・ ('記事の編集は管理者しかできません', ''); }
# }
hbbs.cgi 296行目
$comment = $acomment;
↓
if ($id ne '') {
$acomment = $acomment . "<BR><BR>管理者によって編集されました。(" . &FormatDateTime(time, 2) . ")";
} else {
$acomment = $acomment . "<BR><BR>投稿者によって編集されました。(" . &FormatDateTime(time, 2) . ")";
}
web.pl 276行目
if ($par eq '') {
↓
if ($par eq '' && $id ne '') {
web.pl 982行目
&PassCheck($msg,1);
↓
&PassCheck($msg,0);
>>518 web.pl 998行目 移動は希望になかったから投稿者は使えなくした
if ($reply ne 'moved') { $html .= "<OPTION value=\"move\">移動"; }
↓
if ($reply ne 'moved' && $id ne '') { $html .= "<OPTION value=\"move\">移動"; }
web.pl 1024行目
&PassCheck($msg,1);
↓
&PassCheck($msg,0);
web.pl 1046-1048行目
{ &PassCheck('記事の削除は管理者しかできません',1);
{ &PassCheck('ツリーの削除は管理者しかできません',1);
{ &PassCheck('スレッドの削除は管理者しかできません',1);
↓
{ &PassCheck('記事の削除は管理者しかできません',0);
{ &PassCheck('ツリーの削除は管理者しかできません',0);
{ &PassCheck('スレッドの削除は管理者しかできません',0);
web.pl 1123行目
&PassCheck('記事の復活は管理者しかできません',1);
↓
&PassCheck('記事の復活は管理者しかできません',0);
528 :
518 :03/11/29 17:01 ID:J367hY6H
529 :
nobodyさん :03/11/30 13:21 ID:T8JkCNxy
530 :
529 :03/11/30 13:26 ID:T8JkCNxy
普通に、downlord.cgiを見ればいいのですか? 携帯で。 それとも、携帯用のcgiを別途作る必要がありまつか?
CGIの改造お願いしようと、 ネットでみつけたサイトのメルフォからメールしてみたんですが 5日たっても返信ナシ。 5、6日たっても返信がない場合は再度メール、、、 と書いてはありましたが お金払うの不安な気が・・・・。 どこか良心的なCGI改造してくれるサイトご存知でしたら教えてください。 もちろん、有料で結構ですので。 こういう書き込み、アウトだったら ごめんなさい。
Out with it!
どうでもいいが、メルフォってなんとなく「ガッ」と殴りたくなる響きだ。
537 :
nobodyさん :03/12/08 00:14 ID:vI59VljB
YY-BOARDの返信機能を無しにしてゲストブックとして使いたいのですが どこを消せばいいのかわかりません。 返信機能なしのゲストブックを色々探したのですが セキュリティ機能がついてないのでYY-BOARDの機能をそのままで ゲストブックとして使いたいのです。 どなたか教えてください。
>>537 HTML的に返信ボタンを消しちゃえば?
>>538 それだとコマンドラインで自分で引数を入力すれば返信できる。
そこまでして強引に返信機能を使おうとする香具師がいるか?w
アンケートのページで消されてた項目追加ボタンを強引に送った事があるなあw submitされたときに返信ボタンだったら処理するとこをつぶせばいいやん
特定の機能を殺すのはけっこう簡単な改造だから、 ちゃんと依頼すればやってくれる香具師は多いと思われ。
544 :
nobodyさん :03/12/08 20:41 ID:I4EgvJoy
YY-BOARDで書き込みの日時が表示されないようにしたいのですが、スクリプトのどの部分を消せばできるでしょうか?
546 :
nobodyさん :03/12/09 00:14 ID:K9xlBRDN
perlのBBSスクリプトを使っております。 このスクリプトですと、携帯キャリアから投稿されたカタカナはすべて半角に強制的に変換され、 PCから投稿されたカタカナは逆にすべて全角に変換されるんです。 その結果PCから2文字以上連続した半角カタカナを投稿されると必ず文字化けするという惨状でした ので、デコード部を改造しないとダメなのかなぁと思いあちこち検索してやってみましたら、一応、キャリア に関わらずすべてのカタカナ投稿を半角カタカナに強制変換させることができました。 ですがなにぶん素人なもので本当にこれで正解なのかどうかわからずいまいち安心できずにいます。 どうかプロの皆さんの御教授をいただければと思い投稿させていただきました。 宜しくお願いいたします。 日本語変換ライブラリーはjcode.pl ver2.0です。 [元の部分] jcode::convert(\$val,'sjis','','z') if($agent=~ /Mozilla/); jcode::h2z_sjis(\$val) if($agent!~ /Mozilla/); ↑これを #jcode::convert(\$val,'sjis','','z') if($agent=~ /Mozilla/); (←この行をコメントアウトしました) jcode::z2h_sjis(\$val,'sjis','','z'); ↑このようにしました。
スレが違わないか?
「動いているコードに手をつけるな」という格言がある。 動きさえすれば初心者の書いたコードだろうがなんだろうが問題ない。 オリジナルの一行目の'z'を'h'にするのが元の処理に一番近い。 ただ、運が悪いとごくたまに文字化けする。処理も重いし。 喪前の考えたコードをそのまま使うことを薦める。 多分、10年前のPCを使ってる奴が新たにBBSに住み着かない限り問題は発生しない。
自作でチェック機能をつけようとしているのですが、
データファイルの中に下記のnameとemailが
合致するデータの行があった時のみ、エラーを返したいのですが、
$FORM{'name'} = "aiueo";
$FORM{'email'} = "
[email protected] ";
となっている場合で、
@KENSAKU = grep(/$FORM{'name'}<>$FORM{'email'}<>/,@DATA);
$count = @KENSAKU;
if ($count > 0){ &error("エラー") }
else { $ok = "1"; }
例えばデータファイルがこうなっている時でも
aiueo<>
[email protected] <>
kakik<>
[email protected] <>
sasis<>
[email protected] <>
エラーを返さず素通りしてしまいます。
どなたかわかる方おりませんでしょうか?
@KENSAKU = grep(/$FORM{'name'}/,@DATA);
にした場合や、
@KENSAKU = grep(/$FORM{'email'}/,@DATA);
にした場合は、
正常にエラーを返します。
>>549 &error("エラー") if (join ' ',@DATA) =~ /\s$FORM{'name'}<>/ || /<>$FORM{'email'}<>/;
$ok = 1;
ではなくって?
> $FORM{'email'} = "
[email protected] ";
右辺値が変数展開されるです。-> \@desu.com
>>550 できました。どうもありがとうございました。
552 :
nobodyさん :03/12/12 19:41 ID:4cd18UYi
>>552 print $ENV{'REMOTE_ADDR'} ;
リモートホストを見える形で公開、なら一瞬で終わるな。 IPはそもそも取得してないので表示しようと思ったら書き込み処理から書き換える必要がある。 とりあえず>1の(3)
555 :
505 :03/12/13 17:52 ID:AF7ldfoc
先日お世話になりました505です。
前回のアドバイスで改造も順調に進み、大変感謝いたしております。
今回また質問させていただきたいでのすが、KENTさんのYYBOADが
Ver5××からログの保存形式変更になったことに伴い
自分のスクリプトにも過去ログの保存形式だけ移植いたしました。
そこで、過去ログをスレッドリスト表示とし、そこから各スレにリンクを
貼るというカタチにしたのですが、1点壁にぶちあたったのでご教授願います。
テスト→
http://lovely-aya.appletea.to/cgi/test/yybbs.cgi スクリプト→
http://lovely-aya.appletea.to/cgi/test/kaizou.txt 改造点としては、過去ログサブルーチンpast においてはテーブルによる
スレタイトルのみの表示とし、各スレの中身は
新規にpast_oneというサブルーチンによって表示させてます。
そこで問題があったのは、最初に過去ログを表示させた時に開いてるファイル
(過去ログctァイル。 0002.cgiなど)においては、きちんとリンクするのですが
別ファイルに移行した時(0001.cgi)にはリンクされません。
恐らく、スクリプトの1772行目
$file = sprintf("%s%04d\.cgi", $pastdir,$in{'pastlog'});
ここでのファイルの定義を直さなければいけないとは思うのですが
なにぶん初心者なものでどうしていいのかわからず相談いたしました。
なにとぞご教授、よろしくお願いいたします。
>>555 > 別ファイルに移行した時(0001.cgi)にはリンクされません。
具体的でないのでよく判りません。
$pastdir の表記は合っていますか?
デフォルトでは相対表記「./past/」になっていますけれども。
♪しかし相変わらずよくこんなワケワカメスクリプト配布してるよなぁ。。。@ある意味えらいよ KENT さま
557 :
505 :03/12/13 21:51 ID:AF7ldfoc
>556 >具体的でないのでよく判りません。 えっとですね。。 過去ログページに入室した際に最初に表示されてるページ (その時点での最新過去ログctァイル) においてはリンクが有効なのですが、 ファイル →選択→移動 したあとに表示されるページにおいてはリンクがいかないのです $pastdir の表記は大丈夫だと思います。 過去ログ1ページ目(1ファイル目)では問題なく表示されてますので。。 $file = sprintf("%s%04d\.cgi", $pastdir,$in{'pastlog'}); の%s%04d\.cgiの部分に問題ありなのかな?と思ったのですが・・^^
>>557 あーなんとなく判ってきた。
空表示の際のHTMLを眺めると判ると思うけれども、
<dl>
</tr>
となっているのでこの間が出力されていない。のが原因。
その要因は・・・
sub past_one の中にある、
while (<IN>)
ブロックが実行されていないから。
その要因は。
$file = sprintf("%s%04d\.cgi", $pastdir,$in{'pastlog'});
で、ファイル名を定義しているけれども、
open(IN,"$file") || &error("Open Error: $file");
で、エラーに飛んで逝ってないので、ファイルは存在するけれどもファイルの中身が空、もしくは、空行や0のみの行が含まれているのがそもそもの根元かと。
1779行目の
while (<IN>) {
を、
while (defined(my $line = <IN>)) {
$_ = $line;
の2行に差替えてみて、それでも何も表示されないのであるならば 「ファイルの中身が空」ということが確定するでしょう。
それはさておき、こんなグダグダのスクリプトと付き合っていると人間を辞める羽目になると思うので早急にほかのスクリプトに移行しましょう。改造してても疲れるだけでしょ?
ついでに吐き出される HTML も無茶苦茶だし。
って事で、貴重な時間を費やした(wついでに提案。 次スレッドのテンプレートに、 「KENT が配布しているスクリプトについては却下します。」 の1行を追加しませんか? ♪久しぶりに出てきてみた。
>>560 誘導されてきたからどうだっていうの?
誘導されたって言う報告をしに来たの?
それとも誘導されたという事について意見を求めているの?
君には決定的に何かが足りない。
それがわからなければ、永遠にスルーされるであろう。
>505
過去ログの番号を past_oneサブルーチンに渡していないようですね。
過去ログ1ページ目が上手くいくのは
if (!$in{'pastlog'}) { $in{'pastlog'} = $no; }
のおかげ。
1713行目
× $script?mode=past_one&no=$no
○ $script?mode=past_one&no=$no&pastlog=$in{'pastlog'}
>>558 while (<IN>) { ... }
while (defined($_ = <IN>)) { ... }
この二つは等価ですよ。
http://www.perldoc.com/perl5.8.0/pod/perlop.html#I-O-Operators
563 :
505 :03/12/14 14:34 ID:Zb7A41+X
>562 ありがとうございました〜!! きちんと表示されるようになりました! ただ教えてもらっただけじゃなく、 それがどういう意味なのかを、本を買うなりして きちんと勉強していきます! >558 すみません。自分はまだKENTのスクリプトの どこがどうグダグダなのかわかっていないレベルなもので^^; 今後も日々勉強し、自分で1から作れるように努力します。
>>563 俺もKENTにperlを習った口だ。
まだまだKENTの呪縛は抜けきらないが、日々精進して更生してるよ。
use strict;を心掛けるのが第一歩かな。
そうすればmyの使い方も自然と身に憑くし。
それ以前におまいはインデントが滅茶苦茶だったな。
インデントとコメント文をきちんと書くようにしろ。
自分があとで見てすぐにわかるようにしないといけないぞ。
565 :
505 :03/12/14 15:42 ID:Zb7A41+X
>564 アドバイスありがとうございますm(__)m おっしゃるとおり、インデントは無茶苦茶でした(汗 構文などを理解してないまま、見よう見まねで記述したため 大変醜いスクリプトとなってしまいました。 挙句、自分でもどこがどういう処理をしているのか 理解に苦しむ時が何度も・・・^^; せっかく「ほんの少し」Perlを理解しはじめてきましたので これを機に、きちんと本格的に勉強したいと思います。
>>562 なるほど、ありがとうです。
5.8系 かぁ。。。
567 :
nobodyさん :03/12/15 08:11 ID:8LAW+/sT
このスレで適当かどうかイマイチ自信ないので違ってたら指摘して下さい。 最近「Encode.pm」の存在を知り、使っているレンタルサーバーにも実装されている 亊が判明したので、自宅テストサーバーにもインストール(perlのバージョンを上げ た)して、既に稼働しているCGI用perlスクリプトのjcode.pl使用部分をEncode.pm 用に書き直して実行してみたら日本語が見事に全部文字化けて困っています。 CGI実行スクリプトの文字コードをUTF-8にしないといけないのかな?などと考え て試してみましたが化け方が変わっただけで文字化けている亊に変わりなしでした。 テストは自宅サーバー、レンタルサーバー上の両方で行ない結果はどちらも同じ結果でした。 念の為にJcode.pmを使うように記述を変えてみると正しく日本語変換されました。 環境は以下 自宅テストサーバー(Mac OS X 10.2.8にperl 5.8にインストール Encode.pm Jcode.pm 何れもCPAN経由での最新版) レンタルサーバー(Linux perl 5.8 Encode.pm Jcode.pm 何れも実行ファイル一式インストールされている事は確認済み)
KENTのYYはだいぶ前から更新停まってるよな。 petitなんかはまだ少しずつマシになってるんだけど、 yyはもうちょっとしたカオス。
570 :
nobodyさん :03/12/16 11:40 ID:tK0i3Zmz
レッツPHPの「写メールBBS」で、 最新の写真だけファイル名を固定したいのですが(例:recent.jpg)、 何か方法があれば是非教えてください。
571 :
nobodyさん :03/12/16 16:19 ID:QWGXWwLz
ttp://www.lira.co.jp/t-room/re_cgi/history/index.html これにメール送信機能をつけようとしましたがうまく出来ません。複数人数が書き込みするためチェックが必要です。
とりあえず以下のようにしてみました。
$sendmail = '/usr/sbin/sendmail'; #sendmailのパス
$tomail = '
[email protected] '; #送信先アドレス
を追加。
某メール送信CGIからコピー
------------------------
sub send_mail {
$message = <<_MESSAGE_;
Subject: 書き込みありました。
From: $in{'mail'}
To: $tomail
-----
〜ここに内容〜
_MESSAGE_
&jcode'convert(*message,'jis');
open(EMAIL,"|$sendmail $mail") || &error("プログラムエラー','SendMailがオープンできません");
print EMAIL $message;
close(EMAIL);
}
------------------------
これを、記事登録の前に実行するため
sub edit1 {
&send_mail;
〜〜
と言う風に挿入。
この状態で、記事は登録されるのですが、メールが届きません。アドレスの間違えではないとした場合、他に何が考えられますか?
よろしくお願いします。
>>571 > open(EMAIL,"|$sendmail $mail")
$mailって何が入ってる?
それにヘッダは出力してる?
573 :
nobodyさん :03/12/16 17:23 ID:QWGXWwLz
>>572 早速の返答ありがとうございます。
前にも書いてますが、コピペしただけなので基本的なことが理解できてないです。
>> open(EMAIL,"|$sendmail $mail")
>$mailって何が入ってる?
何も入ってないかと…
この場合、
open(EMAIL,"|$sendmail") でOKでしょうか?
>ヘッダは出力してる?
えーと、どこに入れる必要があるのでしょうか?メールフォームのコピー元を見ましたが、
ヘッダーを出力するような部分は見当たらないのですが…
再度よろしくお願いいたします。
>570 受け取った際に、通常のファイル記録に加え、recent.jpgに上書きする処理を追加。 当然recent.jpgと同じ内容の画像が常に存在する事になるけどな。 recent.jpgをhtmlに貼り付けておきたい、とかの用途ならこれで充分。 >571 $mailを$tomailに書き換え。あるいは$sendmail -t にする。前者を個人的に推奨。 あと、文字化けの可能性を考慮してSubjectはFromやToのあとにするか、英字にするのが無難。
575 :
570 :03/12/16 21:31 ID:???
>>574 なるほど。やってみます。ありがとうございます。
576 :
573 :03/12/18 15:11 ID:LRUrMskK
>>574 ありがとうございます。
ばっちり出来ました。
>>577 Web拍手とやらが何だか全く知らんが。
作った奴に聞け。
581 :
578 :03/12/19 22:58 ID:???
>>579 そんなことはきいちゃいねえ。
てか、こっちが言った内容は理解してんのか。
反抗期なんだろ
583 :
nobodyさん :03/12/20 03:29 ID:uPFsfUPg
チャットの発言ランキングを処理する部分なんですけど、 IMAGE SRC="1×1ドットの画像" width="発言回数" という感じでグラフを 表示したいのです。今の下の処理だと、発言回数が増えるたびに無限にグラフが 右へ伸びていってしまうので、1位を150ピクセルに固定して、あとは 1位に対する比率で表示させたいのですが・・・どういう処理を追加したらいいのでしょうか。 ご教授お願いします。
584 :
583 :03/12/20 03:31 ID:???
今のスクリプトです。 sub ranking { open(IN,"$rankfile") || &error("Open Error : $rankfile"); @lines = <IN>; close(IN); print "<P>- 以下は $limit日以内の発言を対象としたランキング一覧です -<P>\n"; print "<table border=1 cellspacing=0>\n"; print "<tr><th>順位</th><th>おなまえ</th><th>発言回数</th><th width=\"150\">グラフ</th></tr>\n"; foreach $line (@lines) { ($name,$count,$times) = split(/<>/,$line); $count{$name} = $count; } $rank1 = 0; $rank2 = 1; $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><td><IMG SRC=\"log3.gif\" HEIGHT=\"15\" WIDTH=\"$count{$_}\"></td></tr>\n"; $count_tmp = $count{$_}; $rank2++; } print "</table><P>\n"; &footer; exit; }
$rank1 = 0; $rank2 = 1; $count_tmp = 0; $count_max = 0; foreach (sort { ($count{$b} <=> $count{$a}) || ($a cmp $b)} keys(%count)) { ($count{$_} == $count_tmp) || ($rank1 = $rank2); ($count{$_} > $count_max) && ($count_max = $count{$_}); $width = $count{$_} / $count_max * 150; print "<tr><td>No\.<b>$rank1</b></td><th>$_</th><th>$count{$_}</th><td><IMG SRC=\"log3.gif\" HEIGHT=\"15\" WIDTH=\"$width\"></td></tr>\n"; $count_tmp = $count{$_}; $rank2++; }
表示しながらの最中にエラーが発生すると、ヘッダとかもいっしょに出力しちゃいそうですよね。 脳内でエラーが出ないことを前提にしているような。 メモリに溜め込むか一時ファイルにして、エラーがなければドバドバと表示させてあげた方がよいかと思うけれども。
>>856 チミはWWWサーバをもっと勉強するべし!
>>586 エラーメッセージごときに、そこまで気を遣ってわざわざメモリーに溜め込んで、負荷を増大させるメリットがわからん。
って、ロジック見直せ。
>>585 $width = int($count{$_} / $count_max * 150); にしたほうがよかった
番組で1について話したゾマホンです。 あのね、前はずっと1を見るといつも怒っていたけど、 やっとわかってきた、1は本当の犠牲者 なぜ犠牲者かというと、 1の親は自由というものを結構入れすぎるから こういうパソコンとかがいっぱい与えた 1はパソコン好きでたまらなくて引きこもった それはいけないことです。 それはごはん親が運ぶ、ダメです。 というのは親のせいだけじゃなくて この社会のえらい人々アイティ革命のせいだと私は思う こういう2ちゃんねるは100パーセント間違い もっときれいなホムページをすすめたい 例えばヤフー、あるいは首相官邸、 ああいうページはたくさんある あなたは1ヶ月で100万のスレ荒らす、それは怖いよ 荒らしをしてる、あなたは荒らしをしてる それはね荒らしまでね人の名前を煽って キショヲタで自分の部屋にひきこもって 臭いは本当にきれいな人間とは言えない、以上、変わってください
>>585 氏
>>589 氏
早速のレス、ありがとうございます。
書き込みの通りスクリプトを書き換えてうpしたところ、
500エラーが出てしまいました。
うーん、どこがおかしかったんでしょうか・・・
>>591 コピペしたんじゃないのか?
全角スペースでインデントしてあるんだぞ
自己レスになりますが・・・ あれから無事なんとか解決することが出来ました。 アドバイス、お礼申し上げます。
594 :
594 :03/12/21 02:09 ID:qIOjxN3h
>>594 HTMLが理解出来ているならば簡単ではないかい?
スキンタイプなんだし。
完成イメージを画像でなく自分でHTMLで組み立てられれば
簡単ではない?
596 :
nobodyさん :03/12/21 18:10 ID:vMd+LVbG
>>594 Iconディレクトリに背景画像を入れる。
HTML表示用アイコン一覧
$html_icon = array('randam'=>'ランダム','cat1.gif'=>'しろねこ' ・・・
↓
$html_icon = array('randam'=>'ランダム','bk00.jpg'=>'背景00' ・・・
ランダムの画像候補
$rand_icon = array('cat1.gif','dog1.gif' ・・・
↓
$rand_icon = array('bk00.jpg','bk01.jpg ・・・
>>594 skin_main.htmlスキンを使う場合
<!--{each oya}-->以下の
<!--{def oya/icon}--><img src="{$oya/icon}"><!--{/def}--> を削除。
及びそれぞれの<td>に background={$oya/icon} を足す。
<!--{each oya/res}-->以下の
<!--{def oya/res/icon}--><img src="{$oya/res/icon}" align=middle><!--{/def}-->を削除。
及びそれぞれの<td>に background={$oya/res/icon} を足す。
レス書き画面とかも同じ要領でやっていけばいい。
599 :
594 :03/12/21 20:42 ID:qIOjxN3h
600 :
596 :03/12/22 00:42 ID:???
誰も答えてくれなさそうだったので、カウンタのIPチェックを参考にコピペで作ってしまいました。 スレ汚しスマソ
>>600 >1を読んでなさそうな香具師は放置だぎゃー
うん、その通り
>>603 アフォか。
まず、
>>1 読め。
「ベースがKENT」って時点でソース読む気がないんだが……。
クッキーが保存できないようなタコなスクリプトなんぞ使うな。
しかもそれを余計に面倒くさいJavaScriptでの保存なんか考えるな。
うん、その通り
>>604 HTML表示だからJavaScriptしか保存はできないだろうが
607 :
604 :03/12/23 14:40 ID:???
>>606 いや、だからソースは読んでないって。
読む気もないって。
>>604 > 「ベースがKENT」って時点でソース読む気がないんだが……。
それはお前の都合じゃないのか?
>>609 俺はKENTのソース見たこと無い。
っつーか見る木にもならない。
611 :
nobodyさん :03/12/24 21:29 ID:dajCswi4
オッス、オラ悟空。 オラの一日はまず、界王様のキスで起こされるんだ。そして、天津飯とヤムチャが二人がかりでオラをかつぎ上げ便所へ。 次は朝飯だ。兎人参家がもう用意している。グルドが助手だ。なぜかメイド服を着ているんだ。 オラおどれえたぞ。そんなにオラに気に入られたいのか?喉が渇いたんでサイバイマンの溶解液でも飲むか。 サイバイマンが頭をオラの口へ持って来るんだ。…まじい、飲めたもんじゃねえぞ!オラ、サイバイマンの頭をふっとばしちまったぞ! 歯はグルドに磨いてもらって、うがい用の超神水はカリン様が口移しなんだ。 んじゃ、ここも飽きたしオラもう一つの家へ行くぞ!って言ったら、皆ウルウルと目に涙浮かべながら グルド「行かないで…」天津飯「行かないで…」ヤムチャ「行tyrくっで…」 ヤムチャだけ噛んじまったぞ!こんなやつらさっさと置いといて家を出ちまったんだ。 家の前には筋斗雲があって、運転手は8ちゃんだ。もう一つの家は瞬間移動で行けるけど、オラ気を使いたくねえぞ。 オラ、第二の我が家へ着いたんだ。出迎えは裸エプロンの牛魔王だ。それにしてもエロい体だぞー。 他の奴らも奥にいるんだ。そろそろ一発抜きたくなっちまったんでオラベッドに大の字になって皆を呼んだんだ。 右の乳首をメイド服のグルドが舐めて、左乳首をYシャツ一枚のナッパが舐めるんだ。右の腋や耳をダーブラが責めてきて、 左の腋や耳を第2形態のセルが責めてくるんだ。オラの両手はグルド、天津飯、ナッパ、ダーブラのちんちんを手コキだ。 オラ忙しいぞ!左足を牛魔王、右足をコルド大王が、おっぱいマンコで一生懸命さわさわだ。牛魔王は裸エプロンのままだ。 チャパ王はなぜか体操着ルーズソックスに着替えてきちまったんだ。ブルマは穿いてねえ。下半身丸出しだ。 それにしても幼児体型だぞー。シンバルのパイパンマンコはオラの顔へ持ってきてクンニだ。スポポビッチがアナルや玉袋を舐めるぞ。 そして16号の登場だ。騎乗位でオラに跨ってきたぞ。笑顔のくせに爆弾は原爆級じゃねえか。オラびっくりしたぞ! 牛魔王、セル、コルド、シンバル、チャパ王、16号がオラを責め立てるから、オラ超サイヤ人4になっちまったぞ… いっつもの日課の修行が終わって、だりぃけどオラが居ないと宇宙が傾いちまうからここで元気玉打つぞ。これがオラの一日だ。 絶対見てくれよな!
>>611 教えてやってもいいけど
>>1 嫁
君の場合『完成イメージHTML』は必須だな
>603 >クッキーが保存できないようなタコなスクリプトなんぞ使うな がかなり正解に近い。
616 :
505 :03/12/27 13:36 ID:VhlRAef5
お久しぶりです。以前お世話になった505です。
皆様のアドバイスのおかげでBBSの改造もほぼ完了することができましたm(__)m
今回お聞きしたいのは、以前改造した「レスは最新10件のみ表示する」
ことに関してなんです。
以前の改造方法ですと、一度ログを読み出してから、各ブロック(タイトル、アイコン、コメントなど)
に対して何度もif文で条件づけをしてやっていたという状況なのですが、
なにげに不効率に感じていました。
そこで、最初にログを読み出した時点で制限できないものかと思いまして・・
407行目にある
while(<IN>){
if((split(/<>/))[1] eq "") { $i++; }
if ($i < $page + 1) { next; }
if ($i > $page + $p_log) { next; }
push(@DATA,$_);
の部分で、まずTOPに表示する「親記事」の数を制限してるんですよね。
ここでさらにレス数もカウントして
--もしレス数が$syoryakuより小さければそのまま表示し、
大きければ「最新$syoryaku件」だけを表示せよ--
というふうにしたほうが記事表示部でifを多用するよりイイかなと思ったんですが・・^^
なにぶんどのように記述してよいかわからなかったもので、ご教授頂きたく投稿しました。
なにとぞ宜しくお願い致しますm(__)m
ソース
http://lovely-aya.appletea.to/cgi/test/kaizou.txt BBS
http://lovely-aya.appletea.to/cgi/test/yybbs.cgi#menu
>>616 あいかわらずインデントが滅茶苦茶だなぁ
やり直せ
話はそれからだ。
KENTのYY-BOARDをjcode.pmでutf-8化しようと思ったんだが、 Cookieの取得で日本語文字コードが上手く入ってくれない。(半角文字は大丈夫だった) クッキー取得は以下の通り。ドコがいけないのかな? sub get_cookie { local($key, $val, *ck); $ck = $ENV{'HTTP_COOKIE'}; foreach (split(/;/, $ck)) { ($key, $val) = split(/=/); $key =~ s/\s//g; $ck{$key} = $val; } @ck = split(/<>/, $ck{'YY_BBS'}); return (@ck); } ちなみに、cookie内にはちゃんとutf-8で文字列が格納されてまつ。
$ck = $ENV{'HTTP_COOKIE'}; これに問題があるようでつね。ちと調べなおしてきまつ。
とほほのクッキー見て解決しますたつ∀`) スレ汚しスンマソ
解決しますたつ
622 :
nobodyさん :03/12/29 21:00 ID:4uq0QGby
mini BBSの改造を続けてやっと公開に漕ぎ着けたのですが、
http://www.pine-kz.com/camera/camera.html ImageMagickでの自動サムネイル作成で、サーバのプロセスサイズから200万画素
という制限(jpegのサイズを色々変えて確認)をができちゃったのですが、なん
か良い回避策ないですかね?
open(IMG3,"$tmp_dir$attc");
$org_sz = newFromJpeg GD::Image(\*IMG3);
@bound = $org_sz->getBounds();
if ($bound[0] > $bound[1]) { $thumW = $img_width;
} else { $thumW = $img_width * $bound[0] / $bound[1];}
print DAT "original width: $bound[0] original height: $bound[1]\n thum: $thumnal $thumW\n";
system("/usr/bin/convert $org_img -scale $thumW -sharpen 80 $thumnal");
$org_sz = "";
close(IMG3);
623 :
620 :03/12/29 22:05 ID:???
つД`) KENTのスクリプdって、Cookieでの文字化けは対応してないのね(「表示」とか)
>>622 ImageMagickっていいながら、それはGDのソースじゃん。
625 :
nobodyさん :03/12/30 05:36 ID:+KTyzjOj
/usr/bin/convert がImageMagickの本体です。 普段 GUIのImageMagickを使っていて、変換後の品質が非常に良いのでこれを 使いたいと思って組込んだんですが、622で質問した後、色々検索してみて、 1)GDでそのままやる 2)PerlMagickを呼ぶ 3)Imagerを呼ぶ という方法を考えてみました。 メモリー(プロセス)サイズを一番節約できる=アップロードできる画素サイズ を大きくできる、という方向ではどれが良いのでしょうか? (jpegを刻んで変換してから連結するというのは見つかりませんでした)
626 :
625 :03/12/31 05:47 ID:Xbx5eY1F
convert のオプションでリソース制限ができるのを読み落していたのですが、 -limit memory 1 -limit map 1 を付け加えるとスクリプトエラーを起さずに ただサムネイルを作ってくれなくなりました。 自分のパソコンだと、/tmp にテンポラリファイルを作成して作業完了すると ちゃんと消去して終るのです。なんで?
>>626 おまい単なる質問ならスレ違いじゃないか?
628 :
622 :04/01/04 15:26 ID:Wl1FVx2l
結局、convertの limitオプションはサーバにインストールされてるバージョン が少し古くて使えないのだった。 動かない理由は、GDを使って大きなファイルを開いてから更にgetBounds()で 操作しようとした所為だった。関数を呼んだ時点でメモリサイズがサーバの 制限を越えてる。 サーバにインストールされてるソフトを外部コマンドとして呼び出すほうが、 pmベースで操作するより断然有利だ。 ・・・Web検索では GDでgetBounds()しか見つからなかったので、その通りに やってみたのだけど、identifyを呼び出したらメモリ制限で止まらなくなった。 200万画素の制限もなくなりました。(ディスクスペースが大きいといっても 4MBの画像をアップし続けたら100枚足らずだから自粛しないとすぐ終ってしまうが)
>>628 そもそも、4MBの画像をアップするってどういう状況?
普通はもっと減らしてどうにかするもんじゃないの?
630 :
622 :04/01/05 22:07 ID:FD26CFrG
>>629 もっと減らしてどうにかすると、その先にあるのは?
ディスプレイ上で一覧できるサイズであれば可というのは昔ありました。
写真をクローズアップしてなお解像感が維持されることで、空間把握に繋がる
というのを意識してるんだが。
(プリント時のdpiがどうのというのとは別)
ああ、俺が変態なのかもしれんが。
一覧性というのは、構図とか構成とか意匠とかそういうものの評価に繋がって
いるのだけど、そうではなくてマクロ領域で撮影されたものをもっとクローズ
アップして見たくなるとかそういう欲求の話をしているの。
昔のちんけなスパイ映画かSF映画で撮影した画像をどこまでも拡大していくの
があったじゃない。インチキだってのはすぐ解ったけれど、状況は変りつつある。
(デジタル写真の現状をただ肯定しているわけではないが)
quota
test
>>633 「いくらやっても出来ない」 とは、自分で改造してみたんだけど出来なかったという意味なのかな?
だったらどんな改造を試してみたのかここで報告してくれ。
>>634 申し訳ありません。
自分で改造してみたんです。でも出来ませんでした。
http://v.isp.2ch.net/up/a99bb3f01517.txt ↑スクリプト
タグ関連はsub form_decodeのところにあったので
$string =~ s/</\e/g;
foreach (@tmparray){
my($a,$b)=split(/=/,$_);
$b =~ tr/+/ /;
$b =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/chr(hex($1))/eg;
$b =~ s/</</g;
$b =~ s/>/>/g;
$string =~ s/\e\/?\s*$tags\s+/<$tags /ig;
$b =~ s/\t/ /g;
$b =~ s/\r//g;
なんて適当に…
ほかにもこんな感じでいろいろ試しました。
perlとか基本的なことくらいしか分からなくて
お手数おかけします。
$b =~ s/</\e/g;# まだ$bに値が入ってないところで<を\eに置換しても置換されてない。 foreach (@tmparray){ my($a,$b)=split(/=/,$_);# $aと$bは特殊な変数でuse strict対象外。$aと$bは使用しないほうがよい。 $b =~ tr/+/ /; $b =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/chr(hex($1))/eg; $b =~ s/</</g;# 2chでは、< は &lt; って書くといいよ。だけど、この行無意味 $b =~ s/>/>/g;# 2chでは、> は &gt; って書くといいよ。 $b =~ s/\e\/?\s*$tags\s+/<$tags /ig;# 上のほうで\eに置換されて無いので、この行無意味 $b =~ s/\t/ /g; $b =~ s/\r//g; しかも、 $b =~ s/\e\/?\s*$tags\s+/<$tags /ig; は、 foreach $tag ( @allowtags ) { $b =~ s/\e\/?\s*$tags\s+/<$tags /ig; # 許可タグとその閉じタグは許す } $b =~ s/\e/</g; # 許可タグ以外は <にする
(削除) foreach (@tmparray){ my($a,$b)=split(/=/,$_); $b =~ tr/+/ /; $b =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/chr(hex($1))/eg; (削除) (削除) (削除) $b =~ s/\t/ /g; $b =~ s/\r//g; 要は<や>を&lt;や&gt;に置換してる部分を丸ごと捨てればいい。 許可したタグ以外は使用不能にしたいなら>637を参考にその方針で頑張れ。
オリジナルに戻せばいいんじゃないかな、と。 というか、どこをどう修正したか分からなくなるような奴はいじるな。
641 :
nobodyさん :04/01/09 23:33 ID:hZGS3YnQ
カテゴリ登録のサイトをもくろんでます。 例えば カテゴリABC:a-z (cate 0から5) カテゴリあいう:あ-ん (cate 6から10) カテゴリイロハ:イ-ン (cate 11から15) の3カテゴリがあるとします。 本当は一つのサイトを各カテゴリに一つずつ登録させたいのですが、(例:B、か、ユ etc,.) 以下のスクリプトを繰り返しコピペしただけでは3番目のカテゴリのみの登録になってしまいます。 どうすれば、各一つずつ登録できるようになるのでしょうか? 先輩方よろしくお願いします。 <td>カテゴリ</td> <td><select name="cate"> EOF foreach (0 .. $#cates) { if ($in{'cate'} eq "$_") { print qq(<option value="$_" selected>$cates[$_]\n); } else { print qq(<option value="$_">$cates[$_]\n); } } print <<"EOF"; 出所は taitai studio の Link & Rank (ver3.1) の regist.cgi です。
激しく改造が必要。 この場合、入力フォームだけではなく、記録部、記録直後の確認画面、表示画面も改造する必要がある。 ざっと見た感じカテゴリごとにフォルダを作ってログを管理してるので、そっちの形式もいじる事になる。 戦艦大和を海から引き上げて宇宙戦艦に改造する程の手間。他のCGIを探す事を薦める。
643 :
nobodyさん :04/01/10 08:44 ID:xCRFiDNp
>>642 ご返答ありがとうございます。
他をあたってみます
お薦めなどがありましたらお知らせいただければありがたいです。
本文 本文 と入力して、 <p>本文</p> <p style="margin-top:3(←改行した数)em;">本文</p> というように出力させるにはどうすればいいのでしょうか? 現在の掲示板では # 複数の改行は段落に変換 $value =~ s/(<br \/>){2,}/<\/p><p>/g; となっています。
>>643 一言だけ。
スレ違いっつーか板違い。CGI探しはWeb製作板へ。確か。
646 :
645 :04/01/10 23:57 ID:???
647 :
nobodyさん :04/01/12 01:32 ID:+TyesD9W
>>647 できるだろ。
そんな糞面倒なこと俺は絶対やらないが。
できるかできないかで聞かれたからそれだけでこたえてみたが、
やり方はきかれても教えるつもりはない。
他の連中も教えるつもりがないから今まで黙っている訳で。
まあ、なんだ。努力する気が見えない奴には知ってる奴も教えたくなくなるってこった。
649 :
647 :04/01/13 20:24 ID:???
>>648 返答有難うございます
やっぱ面倒ですか。。。。
PHPの本片手に色々考えてみたんですが
僕の様なペーペーにはまだ無理ですね
もう少し勉強してきます<m(__)m>
650 :
nobodyさん :04/01/13 20:33 ID:0tJfIYqX
何て言うか、全くプログラムに無知でも検索とコピペで何とかなりそうなのを依頼してる奴は氏ね。
651 :
647 :04/01/13 21:01 ID:???
>>650 検索とコピペで何とかなるんですか・・・
一通り調べて分割するところまでは自力で出来たんですが
左メニューのリンクをtargetで右に表示させる方法を何とか探してる最中です。
もう少し頑張ってみますです。
出来上がったらソースを提出するのでダメだしお願いできますか?
>>651 HTMLの理解はCGIをやる上での前提事項だ。
これが一通りできないのであれば、CGIはやるべきではない。
出直してこい。悪いことは言わない。
基礎がないのに応用ができるわけはない。
これは、マジな忠告だ。
その点、ちょっとでも HTML 絡みの話が出ると、「 Web 製作板逝って良し」ってなるのはちょっぴり悲しいかも。@内容にもよるけれども。 もしかしてそのお陰?で、不思議マークアップを吐き出す CGI スクリプト類が氾濫しているのだろうか?
>>653 中には、故意にそうしている奴もいるかも。
故意にinvalidなタグを吐いて、パクられた時の証拠にするみたいな。
>>653 運用情報板で不思議コード書いて「WebProg板へ逝って良し」と言われたのか?
と、補足忘れた。上記の例はCSSだけ使って、JavaScriptは使ってない。 で、美しさよりもフレーム分割っぽい外観に似せる事を重視してる。 美しくするにはどうすれば、とか、JavaScriptで実装するには?とかはweb製作板の人間に聞いてくれ。
658 :
650 :04/01/14 10:32 ID:???
>>651 いや、おまいに言ったんじゃなくて、このスレ全体を見て言ったんだけどね……。
上の方に凄いのが居るだろ。
トップページに、「あなたはプロキシ経由ですか? Yes No」みたいな ページをつくればいいよ。
>>659 自分で改造してみて、それでも分からなかったら質問して下さい。
丸投げは禁止です。
とてつもなく亀レスで申し訳ありません・・・去年
>>546 を書いた者です。
所用でPC触る機会がなく今日ようやく時間ができたのでお礼だけ書かせてください。
>>548 さん、丁寧な解説感謝です。ずっと「これでいいんだろうか・・・」って引っ掛かっていたものがなくなりました。
まだここを見てくれてるかわかりませんが、本当に助かりました。ありがとうございました。
>>659 proxyとは限らずに、連続投稿自体を制限すればいいんではないのか?
# ここに質問書き込む奴って、そういう仕様部分のツメも甘い気がする。
663に同意。
>>659 串変えながらの連続投稿プログラムはOKですか?
668 :
667 :04/01/16 07:07 ID:???
素人考えですが、 同じURIで振り分けを実装してるということは何らかの形でUAは取得しているのでしょうか? あと、最近のAUはmobile browserなので、振り分けをi-mode用にしたいんです。
>>667 遅くなってすまん、誘導した本人だ。
UAは取得しているよ。
2033行目の
# [ ブラウザのチェック ]
の下でね。
わるいけど、俺はお前が何をしたいのかさっぱりわからん。
670 :
667 :04/01/16 22:32 ID:???
>>669 ありがとうございます。
やりたいのは、
1.UAを掲示板のログファイルに記録して、出力する。
2.AUがPC版を表示するのをi-mode版を表示するようにする。
の二点です。
>>670 248:
$tit,$mes,$adm,$tim,$ipa,$rmh) = split(/,/,$_);
$tit,$mes,$adm,$tim,$ipa,$rmh,$ua) = split(/,/,$_);
328:
<!-- [$ipa($rmh)] -->
<!-- [$ipa($rmh):$ua] -->
390:
$tit,$mes,$adm,$tim,$ipa,$rmh) = split(/,/,$print[0]);
$tit,$mes,$adm,$tim,$ipa,$rmh,$ua) = split(/,/,$print[0]);
410:
$ipa = "<FONT color=$coladm size=-1>[$ipa$rmh]</FONT>";
$ipa = "<FONT color=$coladm size=-1>[$ipa$rmh:$ua]</FONT>";
1413:
($num,$key,$nam,$mal,$url,$ico,$tit,$mes,$adm,$tim,$ipa,$rmh)
($num,$key,$nam,$mal,$url,$ico,$tit,$mes,$adm,$tim,$ipa,$rmh,$ip)
2313:
$cipa = $ENV{'REMOTE_ADDR'};
$cipa = $ENV{'REMOTE_ADDR'};$cua = $ENV{'HTTP_USER_AGENT'};
2336:
$input = "$cnam,$cmal,$curl,$cico,$ctit,$cmes,$cadm,$ctim,$cipa,$crmh";
$input = "$cnam,$cmal,$curl,$cico,$ctit,$cmes,$cadm,$ctim,$cipa,$crmh,$cua";
続き 2371: $rmh = (split(/,/,$log))[11]; $rmh = (split(/,/,$log))[11];$ip = (split(/,/,$log))[12]; 2379: $log[11] = $rmh; $log[11] = $rmh;$log[12] = $ip; 2391: $log[11] = $rmh; $log[11] = $rmh;$log[12] = $ip; 1.は、これでいいと思う。 2.は、AUのUAがわかんねー
修正(^^; 1413: ($num,$key,$nam,$mal,$url,$ico,$tit,$mes,$adm,$tim,$ipa,$rmh) ($num,$key,$nam,$mal,$url,$ico,$tit,$mes,$adm,$tim,$ipa,$rmh,$ua)
675 :
667 :04/01/18 01:03 ID:???
>671 ありがとうございます。さっそく作業に取り掛かります。 AUのUAはUP.Browserを含んでいると思います。 関係ないですが、AUのUAって回文みたいですね。
修正 その2 (^^;; 2371: $rmh = (split(/,/,$log))[11]; $rmh = (split(/,/,$log))[11];$ua = (split(/,/,$log))[12]; 2379: $log[11] = $rmh; $log[11] = $rmh;$log[12] = $ua; 2391: $log[11] = $rmh; $log[11] = $rmh;$log[12] = $ua; インフルエンザかな?
で、AUのUAの件。 > 最近のAUはmobile browserなので、振り分けをi-mode用にしたいんです。 俺携帯に疎いから、よくわかんないけど 未承諾広告※タソ紹介の技術情報を見ると、 > au C3001H であれば、 > 「HTTP_USER_AGENT=KDDI-HI21 UP. Browser/6.0.2.254(GUI) MMP/1.1」と表示されます。 と書いてある。 これだと、2080行目の elsif ($mob{car} eq 'UP.Browser') { に引っかからないのがまずいのかな? elsif ($mob{car} =~ /UP.Browser/) { これでどうだろうか?
678 :
667 :04/01/18 09:08 ID:???
>676-677 ありがとうございます!完璧です。 あとはソースいじくって4.01strictにすれば完成します。ありがとう御座いました。 どうしようもなくて途方にくれてたので心底助かりました。
>>678 喜んでいる所で申し訳ないが・・・
修正 その3 (^^;;;
1413:
($num,$key,$nam,$mal,$url,$ico,$tit,$mes,$adm,$tim,$ipa,$rmh)
($num,$key,$nam,$mal,$url,$ico,$tit,$mes,$adm,$tim,$ipa,$rmh,$ua)
(ま、ここのブロックでは使わないからどうでもいいが・・・)
完全にインフルエンザだな。
病院に逝ったほうがいいな。
今年のインフルエンザ、放っておくと死ぬよ
掲示板で、2chのように、 「○ sec たたないと書けません。(○回目、○ sec しかたっていない。)○」 と言うのを表示させたいのですが、○回目の所を1回表示ごとに1増加することがどうやるか分かりません。 規制に入れるのは考えなくても良いです。 お願いします。
683 :
681 :04/01/18 18:32 ID:???
>>682 (1) どの掲示板スクリプトにも対応
(2) 2chの様に「○ sec たたないと書けません。(○回目、○ sec しかたっていない。)○」と表示させる。
(3) 詳しく考えて、、○回目の所を1回表示ごとに1増加することがどうやるかだけ、分からなかった
これで宜しいでしょうか?
>>683 (1)の条件を満たすためには、スクリプトのかけらそのものではなく考え方を提示するしかない。
なので、そのものずばりを求めているならとっとと帰れ。
やりたいことはなんとなくわかったが、そのためには、アクセスしてきたマシンを一意に特定する必要がある。
この辺は、IPアドレスや、それにユーザーエージェントを併用するのが普通だろう。
これによってユーザーを特定した後、それぞれのユーザー毎に、
「最終書き込み時刻」と「その時刻以降のアクセス回数」を保存するようにすればよい。
アクセスがあった時に、以前のデータを見て表示用テキストをいじり、
現在のデータを新しい数値に変えて保存すると、上記実装が完成するだろう。
データの保存は、ファイルをflockするなり、データベースを使うなり様々な方法があり、
それらの選択はスクリプト作成者の知識と技量に左右される。
オマエの提示した条件ではこれ以上詳しくは無理だ。
さあ、教えてやったんだからとっとと帰れ。
685 :
681 :04/01/18 19:09 ID:???
ありがとうございます。 おかげでできました
>>686 設置すらできないものが改造とか抜かすな。
設置できないものの大半は設定ミスだ。
自分の使ってる鯖のPerlのパスとかsendmailのパスとかをよく調べろ。
688 :
686 :04/01/18 23:08 ID:???
>>688 cgi-lib.pl が文句たれてるんだろ?
携帯の仕様を変更するのは事実上不可能だから、
1.cgi-lib.pl を改造するか
2.cgi-lib.pl を使わないで、他のものを使うように改造するか
だろ?
推測できるお前の実力からして、どっちもオススメはできないが、
しかしこれしかないな。
1.はライブラリの意味がなくなるのでそもそもスマートな方法ではない。
2.が妥当だろうし、代替手段としてCGI.pmもある。しかし、
http://perldoc.jp/docs/modules/CGI.pm-2.89/CGI.pod これ読もうとする意思があるかどうかが問題になる。
言っておくが、「誰かが解答のスクリプトを提示してくれる」みたいな甘いことは考えるなよ。
691 :
689 :04/01/19 00:19 ID:???
>>690 騙されたみたいだな、俺……。
でもこれで、俺がソースを見ないで指摘しているのがばれてしまったな。
けどどうでもいいや。
692 :
667 :04/01/19 02:09 ID:???
>679
ありがとうございます。
>>673 と同じ内容ですよね?
うまくいきました。
> 完全にインフルエンザだな。
危険ですので早めにいかれた方がいいですよ。ご自愛を。
693 :
nobodyさん :04/01/19 23:43 ID:ueJIFoYf
>>693 ……アドバイスったってなあ。
なんでレスつかないか自分で理由わかってる?
まあいいか。
v4.1を手に入れて改造するのはどうかね。一番キミ自身の労力が少ないと思うのだが。
そういわれると改造したくなるのが人情。 書き込み処理を行なっているのはyyregi.cgiなので、こっちを改造するのが正解。 sub formCheck内、L.405付近の管理用アイコン直前かね。 多分そのままコピペでいけると思うが、確認はしてない。 wwini.cgiを改造したいならL.375付近だろうけど、wwregiをいじる方をお勧めする。
696 :
695 :04/01/21 07:27 ID:???
>695 最終行、wwregi→yyregi、wwini→yyini に訂正。
697 :
693 :04/01/21 12:31 ID:KLRTDEd/
すまんが、クリスチャンなんだ
そうか。俺はヒンドゥーだ。
>>697 500エラーくらい対処できるスキルが無いと困るよ。
君のPCにPerl は入ってないの?
まさかローカルでテストせずに、共有サーバでテストしてるんじゃないだろうな。
それはいかんぞ。
Perl入れてりゃ、perl -cw yyregi.cgi って打ち込めば、エラーを表示してくれるだろうに…
また、3行目に
use CGI::Carp qw(fatalsToBrowser) ;
って入れてエラーをブラウザに表示汁って手もあるがな。
それとさ、エディタはどんなエディタ使ってる?
全角スペースが見えるエディタを使いなよ。
http://page.freett.com/yataro/yyregi.txt には変な所に全角スペースが入ってる。
スクリプトを詳細に見てないが(KENTは見る気が起こらない)
ま、そこが原因かな?
702 :
nobodyさん :04/01/23 13:58 ID:meUkJhrG
掲示板の半角かなの扱いについてなんですが、例えば[全角文字+半角かな]だと正常に表示されるのですが、半角かなだけを単独で書き込まれた場合文字化けしてしまいます。
2ちゃんねるのように半角かなだけの投稿にも文字化けを起こさずに対処させるにはどうすればいいでしょうか。
元々半角かなは一切使えない掲示板だったのですが、ゼロちゃんスクリプトを参考に自分なりに改造してみた結果以下のようなデコード処理に行き着きました。
ttp://www.geocities.co.jp//HeartLand-Cosmos/9800/de.txt 拙い文章で申し訳ありませんがご教授の程よろしくお願いします。
703 :
702 :04/01/23 14:35 ID:meUkJhrG
連投すみません・・・
おもっきり過去ログに出てました・・・_l ̄l○
http://pc2.2ch.net/php/kako/1047/10478/1047806915.html の149さんからの流れを参考にjcodeg.plを取り入れてみたところPC閲覧においては解決しました。
ただ、携帯電話で見た場合にスクリプトエラーが発生してしまったので、携帯のコード処理部
jcode::z2h_sjis(\$message);
をコメントアウトしたところとりあえず大丈夫みたいです。
ただこの場合、メインのデコード部の
&jcode'convert(\$val,'sjis');
&jcode'convert(\$nam,'sjis');
を削っても表示自体はされるようなのですが、閲覧者さんの各環境を考慮する場合この処理は消さずに残しておいた方がいいんでしょうか・・・
質問ばっかりですみませんがよろしくお願いします。
動いているコードに手を触れるなという格言がある。 残しておいて問題はない。漏れなら残しておく。 日に数千の書き込みがあって、負荷が問題になってるとかなら話は別だけど。 削ると、極めて昔(Windows3.1とかの時代)のMac/Unix環境で化けるかもしれない。 気にしたいなら構わないけど、そこまで行くと趣味の領域になってくると思う。
705 :
702 :04/01/24 00:21 ID:???
>>704 さん
返事が遅れて申し訳ありませんでした。
>動いているコードに手を触れるなという格言がある。
これ、すごく胸に響くものがありました。
正直、レスがないままだったらたぶん消してたと思うのですがそのまま残しておくことにします。
御助言ありがとうございました。
706 :
nobodyさん :04/01/24 02:13 ID:E5Iw/RSh
レッツPHP+zut.jpの写メールBBSなんですけど
携帯用ページで、投稿された写真に返信があったとき
返信ありのリンクの横に何件レスがあるか数字を表示させたいです。
scriptをどう改造すればいいかお知恵貸してくださいm(_ _)m
http://goa.k1.xrea.com/j.php?id=2&page= ↓返信ありの表示部分?
$rescom = "";
$path=dirname("
http:// ".$SERVER_NAME.$PHP_SELF);
$fd2=fopen($res,"r");
while (!feof($fd2)) {
$buffer = fgets($fd2, 4096);
$data = explode("<>", $buffer);
if($data[0]==$id) $rescom = "<br>>> <a href=\"$path/chtml.php?res=$id&page=$page\">返信あり</a>";
}
fclose($fd2);
↓res.logの中身
1<>1074872857<>てすと<>てすと<>pc<>211.6.49.226<>Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; (R1 1.3))
1<>1074873090<>あいうえ<>あかさた<>pc<>211.6.49.226<>Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; (R1 1.3))
1<>1074875789<>どうですか?<>そうですか<>pc<>211.6.49.226<>Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; (R1 1.3))
2<>1074876582<>?<>ぉぉぉテスト<br><>pc<>211.6.49.226<>Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; (R1 1.3))
2<>1074877568<>いごっそ<>いごっそ<>pc<>211.6.49.226<>Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; (R1 1.3))
2<>1074877795<>くるぶし<>ぺやんぐ<>pc<>211.6.49.226<>Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; (R1 1.3))
宜しくお願いしますm(_ _)m
707 :
nobodyさん :04/01/24 18:51 ID:yESrv3M6
ネットサーフレスキューweb裏技で配布してる
シンプルなBBSの改造をしたいんだけど
改造初心者なので誰か助けてくらさい
http://www.rescue.ne.jp/cgi/bbs/ 1 題名をなくしたい(「題名」フォームの部分を消したら「題名を入力してください」とエラー)
2 削除キーをなくしたい
3 記事が入力通りに改行されるようにしたい
4 出力文字サイズを変えたい
最近配布を始めたCGIらしいのでサポートとか少なくて、
改造されたものもあんま配布されてないみたいだったんで…
誰か助けて
設置は無事出来ました
小一時間は
>>708 敷居が高いようで、出直します。
お邪魔しました。
高いのは敷居じゃなくて、あんたの要求。
> 敷居が高いようで どこがだろ?
>>710 敷居が高いんじゃなくて、あんたのいる位置が低い。
>>706 これだけデータ構造とかがわかってて、どうしてできないのかむしろそっちが不思議。
関係のある書き込みの数をカウントすればいいだけの話だろう?
715 :
706 :04/01/25 02:14 ID:9zQH+F4M
>>714 返事どうもです。
なんとなーくココかな?って部分は予想できるんですけど、
スクリプトの記述はまったくわからないです…
流れは、参照したres.logの先頭の1とか2のid番号をカウントして、
それを表示させるんですよね。
投稿されたログに連番を付ける箇所にすごいヒントがあるような…
でもどう書いてやればいいのか(; ;)?
$lines = file($log);
$st = (!$_GET['page']) ? 0 : $_GET['page'];
for ($i=$st; $i<$st+$page_def; $i++) {
if ($lines[$i] == "") break;
$imgsrc = $body = $subject = "";
list($id, $ptime, $subject, $from, $body, $att,) = explode("<>", $lines[$i]);
助言くださいm(_ _)m
716 :
nobodyさん :04/01/25 04:01 ID:A2CJsmcE
かなり悩んでます。 Perlでユーザーを追加するスクリプトをコーディングしているんですが、 パスワードの作成で躓いています。 シェルの内容は以下の通りです。 #!/usr/bin/perl open(IN, "userlist.txt"); while($user=<IN>){ @user=split(/,/,$user); `useradd $user[0]`; `passwd $user[1]`; } でuserkist.txtの内容は、 user,pass user1,pass2 です。 パスワードの設定がどうしてもうまくいきません。 どなたかご教授お願いします。
716はマルチにつき放置で
718 :
nobodyさん :04/01/25 13:00 ID:A2CJsmcE
>>716 passwdの使い方について調べましょ
だって、useraddしたあと"passwd パスワード文字列"実行したって、
追加したユーザーのパスワードの設定にはならないでしょ
そもそも "passwd パスワード文字列"って書式はあったっけ? 記憶あいまいスマソ OSにもよるんだろうけど。
722 :
nobodyさん :04/01/25 19:47 ID:9nTeNh78
kent氏のyybbsを改造中なんですが コメント文中で#から始まる行を記事背景と同じ色にして ―つまり見えないようにしました。 $com =~ s#(^|br>)(#)(.*?)($|<)#$1$2<font color=\"$tblCol\">$3</font>$4#g; 合ってますよね?(^^; それで本当は#じゃなく、半角の#にしたいんですが どう書き換えればいいでしょうか? ただ#→#だと、当然のようにスクリプトエラーになるんですが…。 ご教授おねがいします。
で、少しは自分で考えたわけ?
725 :
723 :04/01/25 20:05 ID:???
すみません、CGI初心者なんです
>>722 全角シャープを、\#に変えてみれ。
どうなった?
>>725 CGIとPerlとPHPと区別がつくようになってから出直しなさい。
言語の知識がない人間に改造なんかできるわけないだろう?
>>716 マジレスしてやろう。
マルチをすると回答がよくつくと思ってたら間違いだ。
実際はその逆。
マルチは回答者の感情を逆撫でして、回答しようと言う気を無くさせる行為だ。
本当に回答が欲しいなら、
1.全てのマルチしたスレでマルチしたことを謝り、質問を撤回し、
2.一つのスレに絞ること。
それをやって初めて回答者のお前に対する感情はニュートラルに戻る。
ま、ニュートラルに戻るだけで、有効な回答が得らるかどうかはまた別問題だが、
確実なことは現状では絶対に回答は得られないと言うことだ。
本当に回答が欲しいなら、その辺よく考えろ。
>>726 できました。ありがとうございます。
さっきやってみたんだけどなぁ、俺の勘違いか(;´Д⊂)
730 :
723 :04/01/25 23:59 ID:???
HELP
>>730 ああだりい。
どう言う仕様かもっとはっきりさせろ。
スレッドを10日に一度しか作れないのか、
それとも、10日たつと一番古いスレッドが落ちて新しいスレッドが立てられるようになるのか。
ま、そんな程度のこと、一番古いスレッドと、最後にスレッドが立った日時をどっかに保存しておけば、
何ほどもなくできることだから、みんなだるくて答えてないんだよ。
「掛け算九九のやり方教えてください」なんて言われてもだるいだけだよ。
>>730 なんで配布先のサポート板で聞かないの?
ああ、掲示板全体のスレッドが10日に最大1個しか増えないってことなのか。 オレはてっきり一人の人に対して10日たたないと別スレを建てられないって話かと思ってた。 あいまいな仕様ってのは怖いよなぁ
苦労して答えても「ちょっとやりたいことと違うんです」ってさらっと言われたらかなわんからなぁ。
>>734 その前に仕様の穴に気付くべきですよ。SEごっこもいいですがやるからにはちゃんとやらんと。
>>737 HTMLの問題だろ?
それに、そんな風に改造している奴がいるんなら、そいつに聞くのが一番早いだろ。
>>735 穴のない仕様書を提示するのが先。
面倒なことは下の立場(質問者)が負うべき。
740 :
730 :04/01/26 16:06 ID:???
>>740 自分でいじれもしないやつがそんなサポートが悪いものを使って
改造したいと言うのが一番悪い
742 :
740 :04/01/26 16:58 ID:???
サポート悪いかもしれんが良品
743 :
706 :04/01/26 17:15 ID:???
特定の文字が、改行された複数行にあるときにそれをカウントするには どうすればいいですか? count($id)にするとその列でしか数えてくれないので1としかでませんでした。
744 :
nobodyさん :04/01/26 21:48 ID:KP+mPnoD
スレ違いだったらすいません。 apeboard+を使ってます。 掲示板に書き込んで、そのページのソースを見ると、 <!--res--> とあるんですが、それを出ないようにできませんか? ちなみにcgi本体もスキンも弄ってません。
>>744 あのさぁ、必要もなくてそうなってると思う?
出なくしてどうなってもいいんだね?
>745の言う通り、伊達や酔狂で表示してるわけではなさそうだな。 どうも、レス表示部のスキン関係の処理に使用してる様子。 print文で書き出す直前にいじればいけると思うけど、恐らく現状でかなり重いであろう処理がさらに重くなる。 というか、個人的にはコメント文を消す意義が見つからない。 わざわざ2chで質問して、他人の手を煩わせてまで消す理由は?
>>746 imgboardのソースのコメントは消したくなるがな……。
>>747 気持ちは分からなくもないけど、
あれを使ってる時点でおかしい。
自分で作ったら2〜30KB程度で済むものを。
>>706 count()って、普通配列の要素数数えるものだぞ。
配列以外に使ってもいいが、その場合は1しか返さん(NULLを除く)。
文字列を数えるときはsubstr_count()。
このスレ見てると、diffの使い方教えてあげたくなってくる。
751 :
706 :04/01/27 01:22 ID:+V74HcR4
>>749 さん 返事ありがとう。
始めいろいろ調べてるうちにそれを試してみたんですがエラーが返ってきました。
Warning: Wrong parameter count for substr_count() in /virtual/goa/public_html/j.php on line 86
下のように書いたんですけど使い方間違ってますか?
$ct = substr_count($id);
if($data[0]==$id) $rescom = "<br>>> <a href=\"$path/chtml.php?res=$id&page=$page\">返信あり</a>($ct)";
752 :
706 :04/01/27 01:25 ID:???
あれ・・ <br>以降は&gt;&gt;です
>>751 うるせえだまれエラーメッセージの内容くらい自分で調べろ。
>Wrong parameter count for substr_count()
「substr_count()に与えたcountが、悪い(正しくない)パラメータだ」
なんだから、substr_count()に何を与えればいいのか見直せよ、馬鹿。
>>742 ・おまえにとって良品が他の全員に対して良品だとは限らない。
・改造したいと思った時点で、そいつにとってそれは最良の品ではない。
・サポートが悪いのは誰のせいだろうか。もしかしたら、糞つまらない質問だったらサポートも悪くなるかも。
・自分でいじれるようになろうとしないやつは成長できない屑。よって教える価値なし。
もっと書込み隊にアイコン登録とランダムカラー付け足したいんですがどうすればよいでしょうか?
>>755 出せる金額とメールアドレスを晒してひたすら待つ。
>>751 「substr_count()のパラメータの数(count)が正しくない」
>>755 有名&ガイシュツなのかも知れんが、リンクぐらい書いてくれ。一行ですむのだし。
アイコン登録は、画像をアップロードし、メインスクリプト(mkakikomitai.cgi)を書き換えればよい。
$icon_gif[X] = ...
$icon_gif_w[X] = ...
に追加するだけ。
あと、画像をアップするには、enctypeが変わるので、
フォームデータを受け取る部分(sub decode)も修正。
ただ、スクリプト自身に書き込み権限が必要なので、suExecのない共用サーバでは危険。
設定を外部ファイルに持たせればよいが、それが出来れば、こんなところで質問しないか。
ランダムカラーは、どの時点でランダムなのか分からんが、
$FORM{'color(_f)'}か$color(_f)をランダムに変えるだけだろう。
758 :
757 :04/01/27 04:54 ID:???
ある意味756は正しい。 もし仕事なら、2,3万は要求する。 (かつてカウンター1個10万で受注した。 バイトだったので、大半は会社にもってかれたが。)
ここも質問用のテンプレを用意するべきかもなぁ
760 :
706 :04/01/27 08:13 ID:8T/PgOL1
fgetsは参照したlogの1行だけ読むってことが分かったんですけど、
これだとlogに書き込まれた全$idはカウントできないですよね。
しかも文字配列が"<>"でexplodeされてるし。
log全体を参照するには file_get_contents か file を使うのかと試してみたんですが
エラーどころかしばらく"ページが表示できません"状態になりました…。
log全体を参照させるのはどうすればいいですか?
$path=dirname("
http:// ".$SERVER_NAME.$PHP_SELF);
$fd2=fopen($res,"r");
while (!feof($fd2)) {<br>
$buffer =fgets($fd2 , 4096);
$data = explode("<>", $buffer);
$ct = substr_count($data[0] , "$id");
if($data[0]==$id) $rescom = "<br>>> <a href=\"$path/chtml.php?res=$id&page=$page\">返信あり</a>($ct)";
}
fclose($fd2);
761 :
nobodyさん :04/01/27 09:27 ID:ChIQ2Q6b
Perlだったら while(<FH>) みたいな制御に入れるよな。 あ、PHPか・・・勘違いスマソ
手元にPHPの処理系を用意してしまった方がいいかもな。 素直に掲示板のログオープン処理を参考にしたら?
>>706 よく読んでみると、$idには何が入っているのだ?
logがあまり大きくないなら、
$path = dirname("
http:// ".$SERVER_NAME.$PHP_SELF);
$log = file_get_contents($res);
$fd2 = fopen($res, "r");
while (!feof($fd2)) {
$buffer = fgets($fd2, 4096);
$data = explode("<>", $buffer);
if($data[0]==$id) {
$ct = preg_match_all("/^$id<>/m", $log) - 1;
$rescom = "<br>&gt;&gt; <a href=\"$path/chtml.php?res=$id&page=$page\">返信あり</a>($ct)";
}
}
fclose($fd2);
で良いかな。
それより、レス数をlogに書き込んでおくのが良いかと思われる。
a
767 :
706 :04/01/28 00:36 ID:???
>>763 さん ありがとうございます!
さっそく
>>763 さんの試してみたんですがParse error : line 111がでたんですけど、
111はlineの一番最後で </body></html>で終わってるんですよね。
試しにタグを削ってみたら今度はline 110にParse errorがでました。
line 110は ?> です。
処理が終わってないってことですか?
あとlogにレス数を書き込むっていうのは各レスに連番を振ればいいんですか?
$idには親記事の投稿番号が入ってます。
その親記事にレスした子記事のlogの頭に親の番号が付く形です。
下のように記録されてます。
↓$id<>time<>$name<>$comment<>$ua<>$ip<>$_SERVER['HTTP_USER_AGENT']の順
1<>1074872857<>てすと<>てすと<>pc<>211.6.49.226<>Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; (R1 1.3))
768 :
763 :04/01/28 00:59 ID:???
>>706 なるほど、メインの書き込みと、レスが違うファイルに保存されているのね。
それなら、$ct = preg_match_all(……) のあとの"-1"はいらない。
それから、そのParse errorは、括弧かダブルクウォートの対応が間違っている可能性が高い。
もしレス数を登録するとしたら、メインのログに書き込むべし。
769 :
706 :04/01/28 01:51 ID:VL5E7sRe
>>763 さん ごめんなさい、1箇所 } で閉じるの忘れてました…
Parse errorは直りました。
Warning : preg_match_all() expects at least 3 parameters, 2 given in ***** line 88で
一つパラメーターが足りないってことだと思うんですけど、
array matchesはどのように書けばいいですか?
何回もすみません。
770 :
706 :04/01/28 02:23 ID:???
771 :
763 :04/01/28 03:30 ID:???
>>706 すまん。preg_match_allは引数3つ必要だった。
3つ目は使わないので何でも良いが、$ctだと紛らわしいので、別の方が良い。
772 :
nobodyさん :04/01/30 20:48 ID:O0NkkeT3
はじめまして
snow*materiaのtwin.cgiというアイコンチャットを
設置してちょびちょび改造しているのですが、
このチャットに「魔法の呪文」という設定があって
その中に「予備ログを全部時刻昇順で表示」というものがあり、
ログをアイコン、背景、タグ効果などが反映された状態で上から読めるように表示されます。
これをHTMLとして書き出したいのですが、それは可能でしょうか?
また可能な場合どういった改造を行えば宜しいでしょうか
あと入室中にアイコンを代えるセレクトボックスを追加したいのですが、
デフォルトで「一定の条件下で可能」に作られているのですがこれを情動的にしたいのです。
一応サイトにサポートBBSがあったので質問したら10日まっても一つのレスも付きませんでしたので
削除してこっちに描いてみたり。
どなたかお教えくださいませ。
ttp://useyan.pupu.jp/s/cgis/twin.html
>>772 HTMLとして書き出すっていう意味がよくわからない。
表示順を常時上下逆にしたいのか?
774 :
nobodyさん :04/01/30 23:53 ID:O0NkkeT3
いえ、その「魔法の呪文」入力で「表示を時刻の若い順から」で全て下のフレームに 表示されるのですが、それをそのままHTMLとして保存したいのです。 CGIなのでそのまま「名前を付けて保存」などでは保存できませんでした。 ミーティングや歓談などのログとして参加者に配布できればと思いまして。
775 :
772 :04/01/30 23:54 ID:O0NkkeT3
うわ、CGIにHTML書き出し機能追加しようとしてた俺が阿呆みたいだ('A`) IEならログ表示部で右クリックしてソースを表示、そのソースを保存。 あるいはIEなんて糞ブラウザを捨て、OperaやMozillaを使えばログ表示部のフレームを右クリックから直接保存できる。 で、保存後に拡張子をhtmlに変えてアップロード。 iniの$icondirが絶対パスなら何処においても何の問題も無いはず。 情動的ってのが「常にアイコンを選択できるようにする」って意味なら、すべき事は以下のとおり。 投稿用フォームにアイコン選択欄を追加。455行目のhiddenをチェックボックスに書き換え。 次にアイコン=状態($cond)を決めてる1070行目あたり。書き換え方は自動アイコン変更処理をどうしたいかによる。 いらんなら1072-1091行目をバサッと削除orコメント化。 残しておけば自動処理がユーザの選択に優越する。逆をしたい場合は知らん。
777 :
776 :04/01/31 00:13 ID:???
>776 すまん動揺した。後半、チェックボックスなわけないな_| ̄|○ ドロップダウンメニューかラジオボタンか。
778 :
776 :04/01/31 00:25 ID:???
…ごめん、全然嘘だ。776後半全部と777忘れてくれ。 USBケーブルで吊って来る∧||∧
>>774 $writehtm = 1; # 1:HTMLに書き出して表示, 0;全部CGIで実行.
1ならtwin.htmに希望と上下は逆だけど常時書き込まれるが
どうしても逆がいいのか?
>778 い`。チャットのスクリプトなんて見通しの悪いもんだ。 twin.plの149行目が「一定の条件下」の判断場所。 丸ごと削除すればtwin.cgiの頭のほうの設定だけに従うはず。 他に影響する事は無い と思う。
781 :
774 :04/01/31 00:42 ID:???
えぇと776さんの方法なのですが、拡張子がCGIまでなので、「呪文を入力した状態」での表示がよくわかりません
そしてcgiのソースが表示されてしまいログは表示されません。
ちなみにノンフレーム状態で「過去ログ表示の魔法」を入力したところ
エラーになってしまいました。(配布元のオリジナル設置でもなったので恐らく不可)
>>779 さん
設置しているスペースが弱い鯖なのでさいしょから設定は1にでHTMLに書き出しているのですが
それですと「表示可能数」の行数しか表示されません。
ので簡単な話ならそれでも可能なのですが数時間、10人近くとかの膨大なログをまさか全部表示にしているわけにも行きませんし。
ログファイルを除いてみたところ、どうもログへの書き出しはそのまま時刻昇順で書き込まれておりましたので
それならログを直接CGI部の画像アドレスなどを参照して直接HTMLで出力などはできないのかなぁ、と思いまして。
782 :
774 :04/01/31 00:55 ID:???
>>778 さん
なりました!有難う御座います。
これは今の段階ですとアイコンの選択ではなく直接適すとボックスに画像名を入力する形になっておりますが。
セレクトボックスにした場合、内容の読込先はどうしたらよいのでしょうか?
また、名前「管理人」で入ると専用アイコン等、特定の名前の際には強制的にそのアイコンと文字色に変わる、という機能が
この場合入室後に変更で書き直すと変化しません。
これは機能可能でしょうか?
質問させていただきます。 先日Arseno ver2.1.4を使って辞書を作り、とりあえず一通りの設置はうまくいきました。 で、以前、投稿された内容が上昇していくのではなく、下降していく様に変更されている辞書を見かけたことがあり、 できればそういう設定にしたいと思っているのですが、どこをどう変更したらいいのでしょうか? readmeどおりに設置する程度の知識しかないため、スクリプトのどの部分を抜粋して書き込めばいいかも分かりません。 申し訳ありません。
>>783 そのArseno ver2.1.4のソースのありかぐらい教えてくれ……
>>786 dr.cgiのsub show_def内の、print "Content-Type: text/html\n\n";の直前か直後に、
@defs = reverse @defs;
これで良いと思う。
788 :
783 :04/01/31 04:38 ID:???
>>787 直後につけることで変更させることができました。
乏しい情報の中でわざわざすいませんでした。
本当にありがとうございました。
最近パッチワークCGIが多いな。
こんなCGI探してますスレッドより誘導されてきました。
現在某画像UP掲示板を運営しており、利用者の増加に伴うCGIの入替を検討しています。
現在はimgboad.cgiを利用しておりますが、評判が良くない事とまれに正常に動作しない場合があるのが理由です。
新しいCGIには、「Child Treeマルチファイルアップ掲示板」
ttp://www.cj-c.com/cgi_s/cbbs.htmを検討しておりますが 、どうしても必須な機能が1つ足りません。
連続投稿規制に関する機能なのですが、「1つ投稿したら*分は投稿できない」ではなく、「*分以内には*回まで投稿可能」
という制限機能が必須なのです。(本機能はimgboad.cgiには実装されていますが、Child Treeにはありませんでした…)
「Child Treeマルチファイルアップ掲示板」のインターフェイスは気に入っており、是非利用したいのですが、何とか上記の機能を実装できませんでしょうか?
テンブレの指示通り
http://homepage3.nifty.com/qvga/ftp/cbbs.txt にCGIをテキストでUPしておきました。
丸投げでの依頼をする所でない事は重々承知ですが、自分の力ではどうにもならない為、藁にもすがる気持ちで書き込みさせて頂きます。
長文となってしまいましたが、知識のある方のご協力をお願い致します。
>>790 >丸投げでの依頼をする所でない事は重々承知ですが。
分かっているなら(略
俺?知識があるなんて恐れ多くて言えないから協力せんけど。
>>791 それじゃなんで来たんだ?屑
分からないならだまっとけよ塵
>>790 ご予算は如何ほどに?( ̄ー ̄)ニヤリ
変数の扱いが無茶苦茶なので割高になるかと思いますけれども。。。(哀)
取り敢えず、 BBQ が落ち着いてから。
794 :
791 :04/02/01 11:53 ID:???
>>793 なるほど。
納期を長く頂ければ格安でご提供することも可能ですが、いかが致しますか?
よく考えると人件費含めて他人の資産を使おうとしてるんだから、対価が発生するのがデフォルトだよな。
死にかけてる奴とかなら情で無償の奉仕が発生してもそれは人間として正しいわけだが。
それなりの生活水準の奴を無償で助ける義理ってのは無いよな。
まぁ、やな世の中だってこった。
>>793 禿同。
ただでさえ他人が書いたものはいじる気にならんのに
これだけ汚いスクリプトは読むまえにリタイアだよw
まぁ、知識がないおれには読む書く以前の問題だけどね。
既にその機能が実装されている掲示板のソースがあるならそこから自力で移植すれば? その程度ならさして難しくないだろう。 俺なら元のCGIを使いつづけるがな。
>>790 誘導した本人だ。
君にもレスくれたみんなにも迷惑かけたな。スマン。
責任とって俺がやろう・・・と言いたいが・・・。
そんな安請け合いが出来ないほどcbbs.cgiはすごいな。
かなり気合を入れないと読み下せない。
と言うわけで時間をくれ。
対価はいらんが、もしかしたら逃げてしまうかもしれないと思われ。
それで質問だが、、「*分以内には*回まで投稿可能」 と言うのは一人一人に対してか?
それとも全員合わせてなのか?
例えば5分以内に5回という制限としよう。
ひとりで5分以内に5回投稿したら、他の人は最初の投稿だが投稿できないのでいいのか?
それでいいのなら割と簡単ぽいが、一人一人別制限だったらちょっと辛いかも・・・。
798 :
790 :04/02/02 16:45 ID:???
>>793 氏
ご予算ですか…。
掲示板からの収入は全く無いのでポケットマネーからという事になりますが、ウン十万とかは無理です。
1〜2万円でしたらなんとか捻出できるとは思いますが安すぎますよね。
相場とはどのくらいなんでしょうか?
>>794 氏
納期を長く、とはどのくらいになりますでしょうか?
リッチな生活をしている訳ではないので安ければ安いにこした事は無いです。
>よく考えると人件費含めて他人の資産を使おうとしてるんだから、対価が発生するのがデフォルトだよな。
私も当然そう思います。
引き受けて頂けるのでしたら代金はお支払いするつもりですが、↑にも書いた通り予算はかなり厳しいです。
この程度の予算では話にならないでしょうか?
>>795 氏
私は掲示版を設置する事はできますが、cgiの中身を理解する事はできません。
そんなに酷いのでしょうか?評判が良いらしいのでChild Treeにしようと思ったのですが。。。
>>797 氏
わざわざこちらでもレス頂きありがとうございます。
お時間はいくらかかってもOKです。ご協力頂ける事に感謝致します。
対価はいらないとの事ですが、上の皆さんもおっしゃっているようにかなり大変そうですので、無事に完成させて頂ければ
予算内での代金をお支払いさせて頂きたいと考えております。
投稿制限に関してですが
>例えば5分以内に5回という制限としよう。 ひとりで5分以内に5回投稿したら、他の人は最初の投稿だが投稿できないのでいいのか?
>それでいいのなら割と簡単ぽいが、一人一人別制限だったらちょっと辛いかも・・・。
では残念ながらダメですね。全員合わせてではなく、1人1人に対して*分以内には*回まで投稿可能という機能が欲しいのです。
Child TreeのサポートBBSにも書き込みしてみましたが、作者からの返答で
>それは難しいですね。cookie等を用いて投稿回数の記録か、ログに投稿回数などを取得しておかなければなりません。
との返答を頂きました。やっぱり難しそうです。。。
時間掛けても良いんだったら、勉強汁。
>>799 ああ、自分が勉強すればその後一切他人に対価を支払う必要はなくなるよな。
確かにその通りだ。
801 :
nobodyさん :04/02/03 07:02 ID:7G9Cx1i0
某スレッドよりご紹介を受けて参りました。 テキストエリアから飛ばしたデータを、htmlスキンのテキストエリアで読み込もうとしたら 改行のタグがそのまま出てしまうので、本などで調べてたら、 $comment =~ s/\r\n/<BR>/g; $comment =~ s/\r/\<BR>/g; $comment =~ s/\n/<BR>/g; $comment =~ s/\t/ /g; $comment=~ s/<BR><BR>/<BR> <BR>/g; がテキストエリアの改行コードをタグ化する命令文だということが分かりました。で、テキストエリアの改行コードが「\r\n」であるのなら、 ログへもこのコードを飛ばせば、うまくいくんじゃないかと思って、 $comment =~ s/\r\n/\r\n/g; という形にしてみたのですが、これだとログ上では改行されていましたが、読み込む際にその改行部分で読み込みが途切れてしまい、後の情報は 全て読み込まれなくなるなどの不具合が生じてしまいました。書き込みした直後はうまく改行された状態でテキストエリアに 表示されるのですが、どこかに移動して戻ってきたり、更新するとダメになります。最初の読み込み時と、二度目の読み込み時で コメント部分が違う読み込みが行われるので、2重更新まで結果的に許可されてしまう状態となり、もうどうしようもない状態になりました。 で、2ちゃんで質問させて頂き、こちらを紹介して頂いたのですが、それとほぼ同じごろに、ググりまくった成果がようやく出てきて、 メモ帳などでいじる際のテキストエリアの改行タグ?は「?」であるということが分かり、 $comment =~ s/\r\n/?/g; $comment =~ s/\r/?/g; $comment =~ s/\n/?/g; $comment =~ s/\t/ /g; $comment=~ s/<BR><BR>/<BR> <BR>/g; という形に変更したら、見事、二重更新もされず、ログ上にもちゃんと「?」が残った状態で、読み込みの際にだけ 改行が行われるようになり、最初に意図してた通りのhtmlを吐き出してくれました。
802 :
本題です :04/02/03 07:02 ID:7G9Cx1i0
で、ここまできてひとつ気になることが生まれて
質問させていただきたいのですが、\r\nと\rと\nは
winやマックの改行コードとして調べていて分かったのですが、
$comment =~ s/\t/ /g; は一体なんなのでしょうか?
しかも空白になっています。なぜ空白なのでしょうか?
$comment=~ s/<BR><BR>/<BR> <BR>/g; もイメージがつかめません。
これはこのままにしておいたほうがよろしいのですか?
ちなみに
ttp://hp.bird.to/info/bbsking.html のCGIを
改造しています。
803 :
本題です :04/02/03 07:04 ID:7G9Cx1i0
あれ?? 「&#13;」って書いたところが「?」になってますね…。 奥が深そう・・・。
> <br><br> バグか仕様か宗教上の問題かは知らんが、<br>を連続で書くと1つの<br>としてしか認識しないブラウザが稀にある。 間にスペースを挟むのはそういうときの対策だな。 消しても問題ないと思う。レアなトラブルと1空行あたり1バイトの無駄データ、どっちを優先するかの話。 > &#(数字);は実体参照。意味はぐぐってくれ。 10が\nだと思ったから13は\rなのかな。 は"&13;"であって「改行」ではないから、例えばそのデータを再び送信するとおかしなことになる。 吐き出したHTMLのソースを読むとその場所で改行されてないって事が分かると思う。 (表示しかしないのであれば問題は無い) \tについては804を参照。 改行部分で途切れていたのは、perlが改行をデータ間の区切り文字として認識してるから。 ログでは<br>として保存しておいて、表示の直前に<br>を\n(あるいは\r\n)に置換するのが定石。 あるいはperlの区切り文字($/)を一時的に変えてしまうというトリッキーな手もある。
ところどころ#を書き忘れた、&13;は と脳内補完してくれ。
未承諾広告さん、>805さん、どうもありがとうございました。 未承諾広告さんに教えて頂いたページを読んだのですが、 HP作成歴は、それなりにあるものの、CGIを勉強しだして2週間しか 経っていない私には、正直申し上げて、\tの説明以外の部分は今はまだ いくら読んでも頭に入ってきませんでした…(お気に入りには登録しておきました) 私のHPの掲示板は、長文を書かれる方が非常に多いので、 レスのコメント部分がテキストエリアで表示されるようにしたら、 1つ1つのレスの大きさも均等化されて、新規レスが上がった際に、 目的のレスまで遠くなるというような問題を解消できると思って、 この改造を思い立ちました。 読み込み専用ですので、これで問題なく動かせそうです。 「実体参照」、調べてみましたが面白いですね。 また世界が広がったような気がします。ありがとうございました。 それにしてもどうして>805さんのレスには「&#13;」が 半角でちゃんと表示されているんだ??? 「?」←半角で「&#13;」を書いてみた。
?
&#13
810 :
797 :04/02/03 20:00 ID:???
>>798 一応出来た。
imgboardのようにクッキーを使おうかと思ったが、それだとcbbsを弄る必要がある。
それは超マンドクセーので、追加記述で出来る別ログに記録しる方式にしてみた。
IPで個人を識別しているので、一旦接続を切ってIPを変えたり、プロクシを刺したりしたら制限が効かない事もある。
クッキーにしたってクライアントがクッキーを破棄すれば制限が効かない事もあるで、個人的にはこれでOKかなと。。。
どうしてもクッキーでやりたいのなら、俺はパスだ。
つづく。
まず、 cbbs.cgi と同じディレクトリに、空ファイル hiroyuki.txt を600か606でUPしる。 cbbs.cgi の1227行目が空行になっているが、そこに &fusianasan; と記述しる。 つづく
以下をコピペして、スクリプトの一番最後にペーストしる。 sub fusianasan{ $limit_log = 'hiroyuki.txt' ; # エポック秒とIPアドレスを記録しるファイル $limit_type = '600' ; # 連続投稿回数制限 サンプリング期間 (秒数) $limit_time = '3' ; # 連続投稿回数制限 回数 (この回数までOK) $count = '' ; open(LOG,"$limit_log") || &er_("Can't open $limit_log"); @line= <LOG>; close(LOG); foreach (@line){ chomp; @_ = split /\t/,$_ ; time - $limit_type < $_[0] or next; $count++ if $ENV{REMOTE_ADDR} eq $_[1]; push @line2,$_ . "\n" ; } &er_("overtimes 掲示板管理者が設定した連続投稿回数をオーバーしました。<BR>しばらく投稿できません","1") if $count >= $limit_time ; open(LOG,">$limit_log") || &er_("Can't write $limit_log","1"); print LOG @line2; print LOG time . "\t" . $ENV{REMOTE_ADDR} . "\n"; close(LOG); }
chomp使っているから、perl5 以上でな。
元スクがuse strict してなかったから、俺も適当に書いた。
対価は前にも言ったがいらねー。
どうしても払いたいと言うのなら、
>>798 の名前で日本赤十字社に寄付してくれ。
金額はお前に任せる。
俺はそれでいい。
814 :
nobodyさん :04/02/03 21:36 ID:TrK4Nuwe
改造のアドバイスをお願いしたく、書き込みさせていただきます。
実際のカウント数よりワザと大幅にカウントを多く表示する
「水増しカウンタ」というスクリプトなんですが
http://dekachin.at.infoseek.co.jp/counter.txt これを日付けが変わると同時にカウンタ数値を000にリセットするようにしたいのですが
どこをどうイジったらいいのかサッパリ…
海外サーバで使用する場合にも追加加工が必要なんでしょうか?
要領を得ない質問のしかたで申し訳ありませんが
どうかアドバイスよろしくお願いいたします。
>>814 > どこをどうイジったらいいのかサッパリ…
こんなに短いソースなのに漏れもさっぱり。。。
ファイルの更新日時をstatで取得して、(アクセス時点から見て)前の日だったらリセット。 $ENV{'TZ'}をスクリプト内で適切に設定すれば海外でも国内でも問題ない。
817 :
814 :04/02/03 22:58 ID:TrK4Nuwe
>>815 様
やはりかなり特殊な物なんでしょうか…
>>816 様
レスありがとうございます。「statで取得」…
ググって頑張ってみます…
至って不真面目なやり方だが
32行目
旧:($count,$truth,$times,$ips,$i) = split(/<>/,$data[0]);
新:($count,$truth,$times,$ips,$mod) = split(/<>/,$data[0]);
58行目と60行目の間に追加
my ($now_day) = (localtime(time()))[3];
my $old_day = $mod;
my $new_day = '';
if ($now_day ne $old_day){
$count = 0;
$new_day = $now_day;
}else{
$new_day = $old_day;
}
77行目
旧:$data[0]="$count<>$truth<>$tm<>$ip<>\n";
新:$data[0]="$count<>$truth<>$tm<>$ip<>$new_day<>\n";
以上。
>>817 特殊なんじゃなくて汚いわけで<ソース
819 :
814 :04/02/03 23:39 ID:TrK4Nuwe
>>818 様
わあ!ありがとうございます!
>特殊なんじゃなくて汚いわけで<ソース
そうなんですか…
自分の使ってるエディタですと多少行数が違って表示されるんですが
該当箇所を教えてくださった通りに書き換えてみました。
これを海外サーバで動かす場合は
$ENV{'TZ'} = "JST-9";
を、どこかに追加すればいいのでしょうか?
皆様、初めまして 唐突ですみません、 質問させて下さい! apeボードで書き込みの親記事部分にホスト表示をさせたいのですけれど、、、 こんなことって可能でしょうか もしこちらでするべき質問ではなかったなら、本当に失礼しました
822 :
ИТО :04/02/04 23:16 ID:rVneR8vT
掲示板を作ってるんですが、レス投稿者にトップソートするかしないかを選択できるようにするにはどうすればいいのでしょうか? 2chの場合はE-mailにsageと書くとトップソートしませんよね。
>>822 質問の前に
>>1 をみるなり、ネチケット守りましょう。。
自作してるんならわかるんじゃないの?
単にifで条件分岐すればいいだけの話では?
頭文字だけ書いておくよ。 例えばiとmとsあたりかな。
自動でトップソートしてくれるような便利な機能は無い。
・名前を入れている ・本文が2〜3行 ・sageない こういう奴って間違いなくマルチポストしてる
827 :
706 :04/02/05 08:06 ID:???
前回、写メールBBSでお世話になった706です。
あれからphpを勉強して、なんとか5つ星評価スクリプトを作ってみたんですけど
それをcgiに組み込むことって出来ますか?
試しにdatabese.cgiが吐き出すテンプレート用htmlの拡張子をphpに変えて
日付のスクリプト書いてみても日付は表示されませんでした…ムリなんですかね?
http://yellow.ribbon.to/~mush/star.php
828 :
nobodyさん :04/02/05 11:06 ID:TYkaMAsn
はじめまして。
ウェブ作成にakiaryという日記作成cgiを使用しています。
http://www.hi-ho.ne.jp/yakira/akiary/ ウェブ上で文章編集し、最新ページ作成と月別のページを自動作成してくれるツールなのですが、
そこに追加で、月別のページに日付とタイトルリストを追加しようとしてもなかなかうまくいきません。
このcgi独自のタグをいじってみても、エラーが出るばかりです。
テンプレートをいじった見本としてあげられているサイトを見ると
あっさりそれを実現している方もいるのですが、テンプレ公開などはされていません。
ttp://nanako.pekori.to/diary/200311.html (左側にちゃんとページ内インデックスが!)
サポート掲示板でもこのことが話題になっているようなのですが、
どうもまだやり方は不明のようです。
どなたか、教えて下さいませ。
>>706 ちょっと状況が分かりません。
>>830 まず、テンプレート(tmpbn.html)の、リストを入れたい場所に「<!-- list -->」を追加。
次に、akiary.cgiのsub MakeBNDiary内について、
・「head部作成」を「# 日付でソート」の下に移動。
・その間に、以下を挿入
foreach (@k) {
my($y,$m,$d) = unpack("A4A2A2", $bndate{$_});
my $w = &GetWdayZeller($y,$m,$d);
my $wday = ('日','月','火','水','木','金','土')[$w];
$date = substr($y,2,2)."/$m/$d($wday)"; //この行と
$list .= "<a href=\"#$bndate{$_}\">$date$bntitle{$}</a><br>\n"; //この行を適宜変更
}
$tmpbnhead =~ s/<!-- list -->/$list/;
832 :
831 :04/02/05 19:41 ID:???
いかん、perlのコメントは#だった。
833 :
830 :04/02/05 20:40 ID:???
>>831 さん
素早い返信本当にありがとうございます!
さっそくやってみたのですが、パスワード入力画面ででHTTP 500 - 内部サーバー エラーが出てしまいます。
最初の「head部作成」を「# 日付でソート」の下に移動、だけだとちゃんとアクセスできるので
はりつける際にどうもわたしはなにか変なミスをしているみたいです。
//は832を見て#に変更したり、コメント部分を全部消してみたりしたのですがそれでもだめです。
cgiの変更部分のやり方は
# 日付でソート
@k=&SortedDID(*bndate);
@k=reverse(@k) if ($tmpbnrev==1);
ここに(以下)の部分
# head部作成
print FH $tmpbnhead;
であっていますでしょうか。自分では原因がつかめず悩んでいます。
(長文になりすみません)
835 :
830 :04/02/05 21:18 ID:???
>>834 さん、ありがとうございます。
全角スペース、すごく基本的なことなのに5個もありました。
早速消し去り、ついでに「;」「"」等もチェックし、よし、と思ったのですが……。
夢に見たゴールはもうすぐな気がするだけに、メモ帳をにらみつつ格闘です。
がんばります。
834の指摘のような単純ミスをしないためにも、エディタはそれなりのものを使ったほうがいい。 無料でイイのがいくらでもあるんだから、面倒くさがんないでとりあえず入れとけ。
>827 CGIとは何かから説明しないとって話な気もするけど、結論から言うと無理。 htmlファイルにphpを組み込むのは可能だけど、perlスクリプトの処理結果をPHPでさらに処理する事は出来ない。 CGI側でphpスクリプトを含むhtml(拡張子は*.php)ファイルを作る、とかになると思う。 あるいはPHPスクリプトをperlで書き直して移植するか、その逆か。
場合によってはPerlからPHPに投げればできなくもない。
840 :
831 :04/02/05 23:26 ID:???
>>830 すまん、"_"が一つ抜けていた。
foreach (@k) {
my($y,$m,$d) = unpack("A4A2A2", $bndate{$_});
my $w = &GetWdayZeller($y,$m,$d);
my $wday = ('日','月','火','水','木','金','土')[$w];
$date = substr($y,2,2)."/$m/$d($wday)";
$list .= "<a href=\"#$bndate{$_}\">$date$bntitle{$_}</a><br>\n";
}
$tmpbnhead =~ s/<!-- list -->/$list/;
841 :
830 :04/02/06 18:09 ID:???
みなさん、ありがとうございます。教えてもらったソフトを入れてみました。 そしてまた840をコピーさせてもらい、はりつけて、UP。 エラーではなくちゃんとパスワード画面が1回で出ました! なのですが、リストの表示がなぜかされません。 テンプレートの読み込み直しはちゃんと出来ているので、 わたしがテンプレートに追加した「<!-- list -->」の位置がまずいのかも(そんなのないかな?)。 cgiはうまくいったので(ありがとうです)、今度はそこのところをいろいろ試してみようと思います。 831さん、ほかみなさん、本当にいろいろありがとうございます。 週末はちょっとパソコンがさわれないので、うまくいったら月曜以降に報告させてください〜。
842 :
831 :04/02/06 19:57 ID:???
>>830 <!-- list -->は、メインの日記部分より前なら、どこでも平気なはずです。
日記より後に入れる場合は、
$tmpbnfoot =~ s/<!-- list -->/$list/;
とりあえず作られたHTMLのソースを見て、<!-- list -->がそのまま残っていないかどうかをチェック。
843 :
830 :04/02/06 20:44 ID:???
>>831 さん
できましたー!!
なぜか思ったとおり「<!-- list -->」の位置がまずかったみたいで(野生の感?)位置を変えたらできました!
・・・と、報告に来たらまた831さんのレスが!
842で教えていただいたように変更し、最初にやりたかった「<!-- list -->」の位置で
ばっちり「こうしたいなあ」と思っていたようになりました。
もうほんとにほんとにありがとうございます。
あーすごくうれしいです。
831さん、ほかアドバイスくれたみなさん、本当にありがとうございましたー!
844 :
827 :04/02/07 00:55 ID:???
706です。
>>837 さん
>>838 さん 返事ありがとうございます。
PHPっていうのは外部(database.cgi内)のform actionからコールしても
input情報を渡すことできますか?拡張子が*.phpのページからしかダメなのかな。
もし外部からでも渡すことが出来るなら、5つ星評価スクリプトの表示部分だけ
Perlで書いて、データの書き込みはPHPにやらせればできそうかなぁ。
本当はPerl内にぜんぶ書いたほうがスマートだと思うんですけど。
下のPHPスクリプトをPerlに移植してもらえたら嬉しいんですけど甘ちゃんですか…?お願いします。m(_ _;)m
★表示箇所
$log = "data.log";
$fd = fopen($log, "r");
$buffer = fgets($fd, 1024);
list($line, $st, $ct) = explode("|", $buffer);
fclose($fd);
$ave = round($st/$ct, 2);
if(!$__1__){
echo "データがありません";
}elseif($line==$__1__){
if($ave>=5) $star="★★★★★";
elseif($ave>=4) $star="★★★★";
elseif($ave>=3) $star="★★★";
elseif($ave>=2) $star="★★";
elseif($ave>=1) $star="★";
}
$result = "Rating:$star ".$ave."<br>Vote : $ct";
845 :
827 :04/02/07 00:56 ID:???
つづきです。
__1__ はdatabase.datのタブ区切りで記入されている各配列の1番目のキーを入れたい。
database.cgiのテンプレートに __1__ を記入すれば1番目のキーを呼び出せるので
テンプレートに書いたフォームのinput valueに__1__を指定すれば、phpに情報を
渡せるかも。でもcgi内で★評価対象配列の1番目のキーを参照させるには?
database.cgiが処理したページのURLを見ると下記のようになってます。
hxxp://pc2.2ch.net/php/database.cgi?sline=1&print=1&keys2=スクリプト改造工房&tid=list2
sline=1のパラメーターがdatabase.datの上から1番目の配列ということです。
説明不足があったら突っ込んで下さい。
▽database.cgi テキスト
http://yellow.ribbon.to/~mush/database.txt ▽完成イメージ
http://yellow.ribbon.to/~mush/abc.htm
>>827 refererの制限をしていない限り、どこからPHPを呼び出しても問題ない。
$log = "data.log";
open(FH, $log);
$buffer = <FH>;
($line, $st, $ct) = split("|", $buffer);
close(FH);
$ave = sprintf("%1.2f", $st/$ct);
if(!$__1__){
print "データがありません";
}elsif($line==$__1__){
if($ave>=5) $star="★★★★★";
elsif($ave>=4) $star="★★★★";
elsif($ave>=3) $star="★★★";
elsif($ave>=2) $star="★★";
elsif($ave>=1) $star="★";
}
$result = "Rating:$star ".$ave."<br>Vote : $ct";
847 :
nobodyさん :04/02/07 09:30 ID:fzL4+sPl
ttp://hp.bird.to/cgi-bin/bbsking.cgi ↑このサンプルの元となっているCGIを利用したいのですが、
新着レスを上げる機能がついている、とあるのですが、
投稿した直後は上がってるんですが、更新すると
また親記事のナンバーの順に並んでしまいます。
一度、下の方のツリーにレスを入れた後、更新してみてもらえると
分かるかと思います。
こちらで配っているCGIの元ソースは、
http://csx.jp/~minamonami/ にアップしておきました。
もうほとんどBBSのスキンや他の部分の改造は完成していて、
ようやく使えると思ったら、今になってこのバグに気がつきました。
でもこちらのサイトではユーザーサポートをもうほとんどしていないようなので、
他のCGIの「レス上げ機能」を記述しているらしき部分を抜き出して、
比較検討等をしてみたのですが、私にはどうしても原因が分からず、
いくらコピペして加えてみても、エラーが出るばかりで…。
もしこのまま新規レスを上げることが出来ないのであれば、
今になってこのCGIの使用を諦めざるを得ない状況に陥っています。
もし大変な作業になるのでしたら、素直に諦めますが、
もし比較的簡単な変更で「新規レス上げ」が可能になるのであれば、
どうかお知恵を貸して下さい。よろしくお願いいたします。
>>847 sub data_openの終わりの辺りの、
push(@true_nums,$_) if($res_nums{$_} eq $_);
の後に、
@true_nums = sort {$last_times{$b} <=> $last_times{$a}} @true_nums;
を追加。
849 :
847 :04/02/07 10:55 ID:???
>>848 様へ
もう感動のあまり言葉が出ません!
信じられないスピードで回答を頂き、本当にうまく成功いたしました!
今からじっくりこの構文の意味を分かるまで
勉強していきたいと思います! 本当に本当にありがとうございました!
あぁ! 諦めなくてよかった!!
850 :
ひと ◆/FoolZy9t. :04/02/07 14:20 ID:DTKZ/Kh0
えーと、質問です。トリップの事はここでは結構出ていますが、
#------------------#
# トリップ処理 #
#------------------#
sub trips {
my $trip;
$_[0] =~ s/◆/◇/g;
if ($_[0] =~ /#(.*)$/){
my $key = $1;
my $salt = substr($key."H.", 1, 2);
$salt =~ s/[^\.-z]/\./g;
$salt =~ tr/:;<=>?@[\\]^_`/ABCDEFGabcdef/;
$trip = substr(crypt($key, $salt), -10);
# トリップを名前に追加
$_[0] =~ s/#.*/◆$trip/ if ($trip);
}
}
のような方法でYYBBSにトリップを入れようとしているのですが、
(&trips($in{'name'})で呼び出す)
何故かトリップが2chのものと異なってしまいます。ローカルでもです...
なので、Joyful2ch-Me(
http://www.nunokawa.soft.iwate-pu.ac.jp/~kaz/ )
をローカルで実行してみたら、正常に2chのトリップを出したのですが、
(こっちのトリップ生産方法も試しましたが、無理でした...)
何故結果が変わってしまうのでしょうか...
>>850 criptにはいくつかアルゴリズムがあります。
要は文字列を不可逆変換できればいいのでそんな感じになってるんでしょうな。
その後の文字列をどうこうするまでは考えられてないんでしょうな。
852 :
nobodyさん :04/02/07 15:06 ID:peAnhjoK
初めまして。 「もっと書き込み隊」で、 ホストでなく名前で書き込み禁止にしたいのですが。 改造部分を教えて頂けないでしょうか。
>>850 Joyful2ch-Meと比べたけど、★の処理以外同じなので、別の所に問題があるのでは?
無理でしたというが、なぜ無理なのかよく分からないが。
サブルーチン内をコピペし、いらない$passの行を除くだけだが。
>>850 同じ環境でcryptの結果が変わることは無いはず。
(Perlの場合、違う環境でも同じかな)
サブルーチン中の、$saltや$tripをprintして比べてみたら?
my $salt = substr($key."H.", 1, 2); ひょっとしてsaltの取得が一文字ずれてやしませんか奥さん。
2文字目と3文字目で良かったと思う。
>>855 のをやってみましたが、
◆45WAt2004s(#esq-i@a`)のトリップでやってみたところ、
YYBBS→sq 45WAt2004s
Joyful2ch-Me→sq 45WAt2004sでした。
(sqは$saltです。)
◆fs2004piwk(#S}QR%dIN)でもやってみましたが、結果は同じです。
でも何故かこのトリップ(◆/FoolZy9t.)をやると、
ub TkQu1fW4UYとなり、Joyful2ch-Meだとub /FoolZy9t.でした。
何故かYYBBSでは$saltは正常なのに、何故か$tripが変わってしまいました...
>>856-857 正常なトリップは出ませんでした。。。
トリップなんて物は検索したり、配布している2ch型掲示板のソース見れば分かるだろう
>>860 読んで見ました。しかし、いまいち原因が分かりません、、、
原因はcryptの結果だと思います。。。
でも、結果が異なるのは何故だろう。。。
スクリプトを見直して色々考えてみます...
>>861 「&"<>」のようなの使って、トリップ処理前に&とかに変換されてるってことはないか?
863 :
862 :04/02/08 20:49 ID:???
失敗した。&→&。これでどうだ。
cryptは文字というよりバイナリから結果をつくりますので 見た目同じ2バイト文字であってもコードが違えばバイナリが違います。 ですので違う結果になります。ソースはShiftJISで書かれていますが デコード部分が確認できませんので確実にShiftJISにされているか 確認してみると良いかもです。フォームの内容はフォームがあるHTMLの 文字コードで送信されますので表示するHTMLの文字コードもShiftJISに なっている必要があります。 ただ試されてる文字列では2バイト文字含んでないので関係無いかもしれません。 あと考えられるのは、8ケタトリップの頃にしか確認していませんが トリップを生成するまえに<や>,&のエスケープをしていたはずです。 逆に、そのBBSのスクリプトのデコード部分でなにか余計な変換を していないか確かめるべきだと思います。
ちょっと日本語がわかりにくかったので書き直し 俺が知ってる限りは、8ケタトリップ時代には <や>,&のエスケープはトリップ作成前になされて &とかになってたはずです。 10桁のは知らないですが・・
修正 エスケープはトリップ作成前になされて&amp;とかになってたはずです。 何度もすみません
>>864 >>866-867 http://khitoshi-web.hp.infoseek.co.jp/yyini.txt yyini.cgiです。一応出しておきます。
# S-JISコード変換
&jcode'convert(*val, "sjis", "", "z");
# タグ処理
$val =~ s/&/&/g;
$val =~ s/"/"/g;
$val =~ s/</</g;
$val =~ s/>/>/g;
$val =~ s/\0//g;
#$val =~ s/<>/<>/g;
のようになっているので特に変な変換などはされていないようです。
コードはShiftJISになってしました。もう少し確認などしてみます。
掲示板で書き込みが横に長い場合にブラウザの横スクロールバーが出たり、<table> が物凄く横に長くなってしまうのが嫌なので対策しようと思っています。 考え方としては、2chのように書き込み時に横に長い場合エラーを出すのがよいかと 思うのですが、どのようなコードを書けばよいのでしょうか? 正規表現である長さごとに改行コードがない場合はエラーでよいのでしょうか? 0chスクリプトなど読んで見たのですが該当する部分が見つからず頓挫してしまいました このスクリプト見ろでもよいので、ヒントを頂ければと思います。
>>869 いくら横に長くても、全角文字なら改行されると思うので、
if ($text =~ /[\w]{100}/m) { エラー処理 }
という感じでいいんじゃない。
まあ ' とか . とかでも改行されないので、[ ]の中は適当に増やして。
>>869 # 例:80文字以上の行があればエラー
die "Error\n" if (grep{80<length}split(/\n/,$msg));
872 :
869 :04/02/09 16:08 ID:???
>>870 if ($text =~ /[\w|'|\.|\*]{100}/m) { エラー処理 }
みたいな感じですね。
すっごくシンプルにできるんですね。ちょっと感動しました。
全角なら確かに改行をブラウザが勝手にしてくれるのでこれでOKっぽい気がします。
>>871 僕が始め考えていたのはこっちの方ですね。
全角でも一行に80文字以上ある場合はエラーにしたい場合はこっちでしょうか。
僕の掲示板では870の方が好ましいので、こちらを使わせて頂きます。
わざわざありがとうございました。
>>870 書き方がおかしいぞ。
/["#\$&'=~^|\\`\@+;*:<>\/]{100}/m
このくらいかな。
874 :
873 :04/02/09 16:43 ID:???
875 :
869 :04/02/09 17:11 ID:???
>>873 あぁ、間違ったと思って書きに来たらすでにレスが...
何から何まですみません...
yybbsだったら $in{'name'} =~ s/◆/◇/; $in{'name'}のデータを変換するんじゃないの?
878 :
869 :04/02/09 18:50 ID:???
>>880 >半角カナは勝手に全角に
勝手?ぬぁにを無礼な。
jcode.plの中身を読んで>868のコードの意味をちゃんと理解しろ。
>>881 失礼しました。&jcode'convert(*val, "sjis", "", "z");の
部分の意味がないですね。。。そうしたらeucなどにならず化けませんし...
どうもすみませんでした。さらに違っていたらすみません。。。
あと、解決したので言うの忘れてました... 皆様、どうもありがとうございました。 どうもすみませんでした...
&jcode'convertじゃなくて&jcode::convert推奨。
ところで
>>790 はどこ逝った?
人に改造させておいて報告は無しか・・・
改造丸投げの依頼は受けるもんじゃないな。
掲示板を探しています。 希望としては、 @レスできること Aアイコンが使えること BPCだけでなく携帯全キャリアにも対応していること C携帯で見た場合に、タイトルが一覧で表示されること。 記事内容、レス記事まで表示されると携帯ではツライから・・・。 以上の点で自分で探した結果、KENT WEBで頂いた「YY-BOARD」 の携帯対応バージョンが良さげだったのですが、条件Cを 満たせなかったので、イイのあったら教えて下さい。 と言う内容で、web制作板で聞いたら、こちらを教えられました。 改造なんて自信ないですが、やる気なんでよろしくお願いします。
887 :
886 :04/02/10 23:25 ID:???
889 :
886 :04/02/10 23:34 ID:???
>886の条件の内、Cだけが満たされてないので、 携帯で見た時に、親記事とレス記事の内容が いきなり表示されるのではなく、まず親記事の タイトルと投稿者名、日時、アイコンが表示されるように 改造したいです。 よろしくお願いします。
制作板のCGI探しスレでここへ誘導してるやつ、自分で責任持てよ
ここは配布CGIを自分の望むように直してもらうスレじゃない。
892 :
886 :04/02/10 23:56 ID:???
じゃあいったいどういうスレなんでしょ? まあいいや・・・諦めます。 誘導してくださった方には感謝してます。 では。
>>886 だから最初から最後まで教えてチャンだと叩かれると言ったのになぁ・・・
>>890 責任とりにきますた
捨て台詞も残してるし
>>886 が見るかどうかわからんが一応責任とる。
346行目近辺の
print "<a href=\"$script?mode=msgview&no=$no\">$tempno</a>$temp\n";
を時間とアイコンを加えたいなら
print "<a href=\"$script?mode=msgview&no=$no\">$tempno</a>$temp $dat <img src=\"$ico\">\n";
とでも書き換えれ
表示(順番とか)が気に入らなければ適宜自分で変更すべし
それにしてもこのスク、ぐちゃぐちゃで嫌い('A`)
894 :
893 :04/02/11 00:50 ID:???
補足。 yybbs.cgiの346行目近辺 動作確認はしてないがたぶん大丈夫だと思う
895 :
893 :04/02/11 01:01 ID:???
連カキすまん。また補足 ×print "<a href=\"$script?mode=msgview&no=$no\">$tempno</a>$temp $dat <img src=\"$ico\">\n"; ○print "<a href=\"$script?mode=msgview&no=$no\">$tempno</a>$temp $dat <img src=\"$imgurl$ico\">\n"; 上記のようにしないとicon表示できんわ
896 :
886 :04/02/11 01:34 ID:???
わー、何か気になって見に来たら・・・。 ありがとうございます! まだ試してないので、今からやってみます。 ちょっと時間かかるかもしれませんが、また 経過報告しに来ますね。 マジで感謝です!!!
897 :
886 :04/02/11 01:44 ID:???
うーん、時間とアイコンはもともと出るんです。 親記事の内容とレス記事が最初の画面では出ない ようにしたいんです。 やっぱり説明の仕方が足りませんね。反省しました。 皆に叩かれるのも当然です。 レスしてくれたのには大変感謝してます。 ありがとうございました。
899 :
886 :04/02/11 02:49 ID:???
>>898 本当ですね。
でも今も携帯で見たけど、PCと同様の表示がされるんですよ・・・。
ソース見て設定の仕方も見たけど、携帯用の表示をするように
設定してあるんですけどね。
なんでなのかな?
どうも色々つきあってくれて本当にありがとうございます。
>>884 新しい話題が出てますが、どうもです。では。
901 :
790 :04/02/12 14:55 ID:???
>>810 797さん
お時間がかかるとの事でしたので巡回対象から外しておりました。
こんなに早く改造して頂けるとは思っていなかったのでびっくりしております。
気づくのが遅くなりご気分を害されましたらお詫び申し上げます。
(
>>885 は797さんですよね・・・)
早速ご指示の通りスクリプトの改造を行った所、正常に連続投稿制限がかかりました!
ご提示頂いた内容はさっぱり分かりませんがcgiにコピペをし、hiroyuki.txtを606でアップロードしただけで
こんなに簡単にできてしまうとは本当に驚きです。
無理そうなら他のcgiを利用しようかなと考えていた所だったので非常に助かりました。
お忙しい中、見ず知らずの私の為にお時間を割いて作業して頂けた事を感謝致します。
>>813 でのご指示通り、対価の20,000円は日本赤十字に円を寄付してきました。
周りから「ウソつけ!」って思われたくないのでスキャンした振込用紙うpしておきます。
http://homepage3.nifty.com/qvga/ftp/furikomi.jpg
904 :
797 :04/02/12 20:38 ID:???
>>901 寄付サンクス!
何ならもう一つの依頼を受けてもいいぞ。
確か画像のサイズの制限だったっけ?
改めて仕様書を出して依頼してくれ。
906 :
790 :04/02/13 21:38 ID:???
>>904 797さん
お礼を言わなければいけないのはこちらの方です。ありがとうございました。
また、早急に対応して頂いたのに気付くのが遅くなってしまい申し訳ありませんでした。(今回も亀レスですみません。)
本来であれば自分の取り分であるはずの対価を、「赤十字に寄付してくれ」と言える797さんに私は感動します。
もう1つの依頼を受けて頂けるとの事、ありがとうございます。この機能が付けれれば理想としている掲示板が作れそうです。
>>901 のURLからも分かってしまう通り、QVGAサイズ(240×320pix)専門の画像掲示板を運営しております。
QVGA以外の画像は削除対象なので今までは手作業にて削除しておりましたが
多い時には1日40枚を超える投稿があり、手動削除作業に限界を感じております。
上記の理由で、240×320と320×240(縦画像と横画像がある為)以外のサイズは投稿不可とする機能が欲しいと思っています。
http://www.cj-c.com/sp/cbbs.cgi?mode=al2&namber=8523&rev=&no=1 ↑のようにサポートBBSに質問をし、回答の通りにコピペ・書き直しをしてみましたがcgiエラーが発生し投稿する事ができませんでた。
http://homepage3.nifty.com/qvga/ftp/cbbs_kai.txt できそうなできなそうな微妙な部分ですが、ご協力頂ければ幸いです。
なお、申し訳ありませんが、予算を使い果たしてしまったので対価は無しという事でよろしいでしょうか?
図々しくてすみません。宜しくお願い致します。
>>906 エラーが出るのは } が一個足りないから・・・
1180行目に }
908 :
907 :04/02/14 21:11 ID:???
違った。 } は1179行目だ! あと、 1139行目の if($fimg eq "img" && $FORM{'min'}==0){ この時点で$fimg は何も入ってないみたいだから、このブロックは実行されない。 $fimg や $FORM{'min'} は何かわからんが、 1139行目は、 if($FORM{'min'}==0){ こうしておくか。 それと、サイズは240×320と320×240 きっちりじゃなければエラーでよろしいか? 230×300もエラーでよろしいか? なら1138行目を unless($IW == '240' && $IH == '320' or $IW == '320' && $IH == '240'){&er_("画像サイズが$IW×$IHになってます。<br>画像サイズは240×320か320×240にしる!");} に変更。
まあ、
>>907-908 は
>>797 なんだが、、、
@niftyつーのは標準モジュールすら入ってないみたいなのね。
もしサーバを移転しることがあったら、GDかImage::Magickが入ってるサーバを選ぶといいよ。
画像掲示板を運営しているんなら。
何かと便利だよ。
910 :
797 :04/02/14 21:37 ID:???
連投でスマン。
>>908 に間違いがあった。
改めて改造個所を整理しておく。
1139行目
if($file && $FORM{'min'}==0){
に変更
1178行目
unless($IW == '240' && $IH == '320' or $IW == '320' && $IH == '240'){&er_("画像サイズが$IW×$IHになってます。<br>画像サイズは240×320か320×240にしる!");}
に変更
1179行目
if($FORM{'URL'}){
を
}
if($FORM{'URL'}){
に変更
911 :
790 :04/02/14 22:09 ID:???
>>910 797さん
またまた迅速な対応ありがとうございます。
>>910 にあるご指示の通りcgiを書き換えてみた所、見事投稿規制がかかりました!!
(色々サイズを変えてテストしてみましたが、1pix違うだけで投稿が弾かれました。)
感動のあまり何と申し上げて良いのか分かりません。本当にありがとうございます。
これで予定している全面リニューアルができそうです。
2chでは一番嫌われる教えて&粘着くんになってしまって申し訳ありませんでした。
いつかは自分でこのくらいの改造が出来るように精進します。
余談ですが、797さんはこういった事にかなりお詳しいようですが、Web作成関連のお仕事をされているのですか?
>>912 直す香具師がいるのかが微妙。
ちなみに次スレ建てるときには
>>1 のローカルルールを
・自分で考えて改造しスクリプトが上手く動作しなかった部分を尋ねること。
・丸投げをしたければ業者へ委託しましょう。←上のスレへの誘導でも良いかも
などとしたほうがいいと思われ
現在のローカルルール(
>>1 )だと
・考えた(考えようと思った)けどさっぱりわかりませんでした〜ミャハッ&heart;
という厨が来ることになる。それが最近の傾向なわけで。
次のときに直したほうがいいね
950踏んだやつが次スレ立てることにしないか?
次期テンプレ案
#================================
# スレッドの説明
#================================
「スクリプトを改造しているんだけど上手く動作しなかったよー」という人がいましたら
ここで聞いてください。ひょっとしたらアドバイス出来るかもしれません。
質問するときは以下の点に注意して書いて下さい
(1) まずそのスクリプトの作者に相談する。
(2) そのスクリプトの内容と置いてある場所を明記する (txtファイルでUPすればなお良い)
(3) どんな風に改造して欲しいのか? (完成イメージHTMLを用意すればなお良し)
(4) 出来るだけ詳しく具体的に書くこと。(依頼は小出しにしない事)
(5) 御礼や動作報告は必須。
(6) 少しは自分で考えること。(丸投げは禁止!)
※答えてくれないからといって逆ギレする厨はお断り
過去ログ
>>2
俺が考えるテンプレ案
(
>>916 氏のテンプレを土台として修正)
#================================
# スレッドの説明
#================================
「スクリプトを改造しているんだけど上手く動作しなかったよー」という人はここで聞いてください。
ひょっとしたらアドバイスがもらえるかもしれません。
質問するときは以下の点に注意して書いて下さい。
(1)まずはそのスクリプト作者に相談する(改造の質問が許されてる場合のみ)
(2)そのオリジナルスクリプトの内容とおいてある場所を明記する(txtファイルでUPすればなお良い)
(3)自分が付け加えたスクリプトと改造した場所を書き込む(txtファイルでUPすればなお良い)
(4)改造したいイメージを出来る限り詳しく具体的に書くこと(依頼は小出しにしない事)
(5)HTMLを吐く場合には完成イメージHTMLを用意するとなお良し
(6)御礼や動作報告は必須。
※答えてくれないからといって逆ギレする厨はお断り。
※丸投げしたい方は業者に委託するか以下のスレに行きましょう。
【 スクリプト改造依頼スレ 】(丸投げ)
http://pc2.2ch.net/test/read.cgi/php/1076831972/ 過去ログ
>>2 ---
動かなくても自分が付け加えたスクリプトを書かせた方が良いと思う。
どの程度のレベルかわかるし丸投げしにくい雰囲気になるかと。
みなさん、どんなもんでしょ?
918 :
917 :04/02/15 18:40 ID:???
(3)についての補足なんだけど、 どんなに稚拙なスクであってもそれさえ書けないような香具師は丸投げと同じだと思うんだよね。 だから俺的には(3)は絶対に入れてほすぃと思います。 もちろん反対の意見が多ければ却下されることになるかもしれませんが。
追加の場所など詳しくは書かないが、自分で考えてくれ。 bottom用の変数を、$〜2とする。2のないものの、すぐ下にいれていけば大丈夫なはずだ。 【admin.cgi】 ●sub save内 $ini::frame_height2 = $cg::params{"frame_height2"} + 0;//追加 ●sub save_ini内 \$ini::frame_height2 = $ini::frame_height2;//追加 ●sub home_page内 <tr> <td nowrap align=right>Frame Height2:</td> <td><input size=2 name=frame_height2 value="$ini::frame_height2"></td> </tr><!--追加--> ●sub edit_template内 my $body2 = $cg::params{"body2"};//追加 $body2 =~ s/</</go; $body2 =~ s/>/>/go; open(TEMPLATE, ">$cwd/template2.html") or cg::error("$cwd/template2.html"); print(TEMPLATE $body2); close(TEMPLATE);//追加 open(TEMPLATE, "$cwd/template2.html") or cg::error("$cwd/template.html"); read(TEMPLATE, $body2, -s TEMPLATE); close(TEMPLATE); $body2 =~ s/&/&/go; $body2 =~ s/</</go; $body2 =~ s/>/>/go;//追加 edit_template_page($body, $body2);//変更
>>920 の続き。そういえば、
>>919 に対する返信だった。
●sub edit_template_page内
<textarea name=body2 cols=64 rows=16 wrap=virtual>$_[1]</textarea><!--追加-->
【jump.cgi】
2度目の「&referer」を、「&position=bottom&referer」に変更。
【frame.cgi】
open(TEMPLATE, "$cwd/template.html") or cg::error("$cwd/template.html");
を
my $template_html = ($cg::params{"position"} eq "bottom") ? "template2.html" : "template.html";
open(TEMPLATE, "$cwd/$template_html") or cg::error("$cwd/$template_html");
に変更。
それから、template.htmlをコピーしてtemplate2.htmlを作る。
以上。
サイドのフレームも同じようにして出来るので、あとは自力でやってくれ。
922 :
920,921 :04/02/19 00:49 ID:nLY5hSMA
ぼけぼけ君でした。 perlのコメントは#だった。 首を吊ってきます。
うわぁっ、下のフレームサイズを変え忘れた。 【jump.cgi】 $ini::bottom_frame ? ",$ini::frame_height" : "" を $ini::bottom_frame ? ",$ini::frame_height2" : "" もうだめぽ。
改造スレと改造依頼スレがごっちゃになってんじゃねーか。 質問者も回答者もちっとは考えろや。
925 :
新入り :04/02/19 02:12 ID:???
>>925 スレ違い、と言いたいが、向こうで追い出されたのか。
それに、ボタンの位置や背景色なんかは、HTML部分をちょっと書き換えるだけだろう。
それより、そのページ、netscape7.1で見たのだが、レイアウトがめちゃくちゃだ。
927 :
新入り :04/02/19 03:01 ID:???
>>925 追い出されますた。(泣)
そう思って探したんですがよくわからんのですよ
ぜひともおしえてください。
そんなにダメダメなスクリプトなのか・・・
HTMLだけでなく、Perlのソースもひどいな。 これでは丸投げしたくなるわな。 HTMLが分かっていないようなので、ボタンの具体的な移動先(■TOPの左とか)と、 可能なら前回の改造で変更されたソースを晒してくれれば、考えるかもしれない。
丸投げで散々依頼して小出しにするというローカルルールを無視して それでこっちで世話になろうという神経がわかんね もしも書き換えてやろうとする優しい香具師がいるなら丸投げスレで相手しろよ 「あっちがだめになったらこっちにくればOK」という前例を作るべきじゃない
KENTのサポート掲示板か丸投げスレへ行け
携帯用掲示板で製造番号からIDを生成しようと思ったのですが 番号を取得してからどのように処理すればいいか、途中で躓いてしまいました。 どうしたらいいか、アドバイスを頂けないでしょうか? 以下がそのソースです。 my $ua = $ENV{'HTTP_USER_AGENT'}; if ($ua =~ /DoCoMo/i) { $uid = $1 if($ua =~ /\/ser(\w{11,15})/); } elsif ($ua =~ /UP\.Browser/i) { $uid = $1 if($ENV{'HTTP_X_UP_SUBNO'} =~ /^(\d{14})_/); } elsif ($ua =~ /^J-PHONE/i) { $uid = $1 if($ua =~ /\/SN(\w{11})\s/); ($day,$mon) = (localtime(time))[3,4]; $ip = $ENV{'REMOTE_ADDR'}; if ($ip =~ /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/) { $ip = $1; $moto = $mon + $day; ($ip1,$ip2,$ip3,$ip4) = split(/\./,$ip); $id = sprintf("%lx%lx%lx%lx%lx",$ip4,$ip1,$moto,$ip3,$ip2); $id = crypt($id,MT); $id = substr($id,2,8); } else { $id = '???'; } }
>>934 ちなみに2ちゃんねるでは、 MD5 を使っているようです。@/dev/random を初期値にしている模様
>>935 そのようですね。ソース見た事はあるのですが、理解できませんでした…
携帯のIDの生成に関するスレを見ても具体的な事が書かれてなかったので
どのようにすればいいか・・・
>>934 はDoCoMoの扱いが間違ってました。
my $ua = $ENV{'HTTP_USER_AGENT'};
if ($ua =~ /DoCoMo/i) {
$uid = $1 if($ua =~ /\/ser(\d{11})/);
$uid = $1 if($ua =~ /\;icc(\d{20})/);
} elsif ($ua =~ /UP\.Browser/i) {
$uid = $1 if($ENV{'HTTP_X_UP_SUBNO'} =~ /^(\d{14})_/);
} elsif ($ua =~ /^J-PHONE/i) {
$uid = $1 if($ua =~ /\/SN(\w{11})\s/);
($day,$mon) = (localtime(time))[3,4];
$ip = $ENV{'REMOTE_ADDR'};
if ($ip =~ /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/) {
$ip = $1;
$moto = $mon + $day;
($ip1,$ip2,$ip3,$ip4) = split(/\./,$ip);
$id = sprintf("%lx%lx%lx%lx%lx",$ip4,$ip1,$moto,$ip3,$ip2);
$id = crypt($id,MT);
$id = substr($id,2,8);
} else {
$id = '???';
}
}
my $ua = $ENV{'HTTP_USER_AGENT'}; if ($ua =~ /DoCoMo/i) { $uid = $1 if($ua =~ /\/ser(\d{11})/); $uid = $1 if($ua =~ /\;icc(\d{20})/); } elsif ($ua =~ /UP\.Browser/i) { $uid = $1 if($ENV{'HTTP_X_UP_SUBNO'} =~ /^(\d{14})_/); } elsif ($ua =~ /^J-PHONE/i) { $uid = $1 if($ua =~ /\/SN(\w{11})\s/); } の間違いでした・・・
更に間違いが…固有番号を適当にIPっぽく分けて処理する事にしました。 荒らし紛いな事してすみませんでした。
939 :
nobodyさん :04/02/23 14:29 ID:wHktcyd7
CGIカスタマイズについて分からない点が出てきてしまったので、宜しければご協力をお願いしますm(--)m 初期の設定ではアクセスしたときに、キーワード検索フォームと登録してあるcsvの情報が すべてページとして表示されるのですがこれを「アクセスしたときは検索の フォームのみ」で「検索後のHITしたものだけを表示」するようにしたいと思っています。 CGIのソースは、多分以下のところをカスタマイズするのだと思うのですが、 記述に関しての知識は持っていないので、よろしければ教えてください。 -----db.cgiより引用----- ####HTML出力 #ファイル検索 sub html { if (!open(IN,"$file")) { &error(bat_d); } if ($windows == 1){ @DB = <IN>; close(IN); } @DB = reverse(@DB); if ($FORM{'action'} eq "search") { $kw = $FORM{'kw'}; &jcode'convert(*kw,'euc'); foreach $line (@DB) { $value = $line; &jcode'convert(*value,'euc'); if ($value =~ /$kw/i) { push(@HIT,$line); } } } ---------------------- 'kw'は検索フォームのname 'search'は検索ボタン 読み込むcsvファイル名はdb.csv よろしくお願いします。。。
検索フォームの書き出し部がないので、フォームを表示しない云々は無理。 この部分だけ見ると、初回アクセス時にリストが表示されるって事は無さそう。 初回アクセス時には別ルーチンで中身を表示してると予想。 中カッコの数が合ってないのは後半を省略したからか? 検索フォームのnameというと、漏れは<form name="hoge"(以下略 しか浮かばないわけだが。 <input name="kw">の中身だろ?勝手に変な名前を作るな。 とりあえず>1を100回読んでスクリプト全体を晒せ。知識が無い奴が判断するな。
941 :
939 :04/02/23 15:15 ID:wHktcyd7
>>941 $FORM{'action'}の値を見て出力を切り替えれば?
html()の改造だけで済みそうだね。
どうでもいいけど、元のコードが汚なすぎる。
あぼーん
944 :
939 :04/02/23 16:23 ID:wHktcyd7
>>942 すいません。どう書き換えたら上手くいきますか・・。
わからないなりになんとなくやってみたんですが、
やはりエラーが出るか変わらないままでした・・。。
申し訳ないです。
946 :
940 :04/02/23 17:09 ID:???
>>946 (精神的な)健康のため、こういう改造には手を出さない方がいいよ。
948 :
919 :04/02/23 22:41 ID:???
>919-923
の文章を何回も読んでみて自分では出来ないなぁーと思い
海外のサイトで自分の欲しいものはないか再度調べてみましたが、
見つかりませんでした。
それで再度
>>920-923 を理解しようとしたのですが、
自分には理解できませんでした。
どの部分野津大敵にどうやって追加、
改造するか教えていただけませんか?
ソフトの製作者にメール出しても返信来ません。
たぶん凄く忙しいからだとおもいます。
めんどくさいと思いますが、教えていただけませんでしょうか?
よろしくお願いします
>>948 あの説明で分からないようなら、改造は無理。
っていうかほとんどコピペ可能じゃん。(「//追加」は削除するか「#追加」とする。
>>922 参照)
何が理解できんの?
950 :
919 :04/02/24 15:48 ID:???
>949
返信ありがとうございます。
frame.cgiとjump.cgiを書き換えてtemplate2.html
をアップロードするとちゃんと上下に違うものを表示できるのですが、
admin.cgiをアップロードするとサーバーエラー500が表示されます。
間違ってることはしていないような気がするのですが・・・
変更したadmin.cgiをアップロードしました。
どこが間違ってるか見ていただけませんでしょうか?
http://uploader.org/adult/data/up373.zip
>>950 >>922 見れ。
× \$ini::frame_height2 = $ini::frame_height2;//
○ \$ini::frame_height2 = $ini::frame_height2;
telnet/ssh でエラーメッセージ見るとか、httpd のログ見れば分かると思うん
だけど?無料鯖使っててどっちも試せないならローカルに apache 入れて、
うpすう前に挙動の確認ぐらいしる。
952 :
919 :04/02/24 17:22 ID:???
>951 ありがとうございました。 無事出来ました。大変助かりました。
ボチボチ新スレ?980まで粘る? テンプレは>916 >917あたりでいいと思うけど(個人的には917推し)。
955 :
nobodyさん :04/02/25 02:31 ID:JJruIFPn
食べ残しはイクナイから上げとこう
>「スクリプトを改造したいけどやりかたわかんないよー」という人がいましたら >ここで聞いてください。ひょっとしたらアドバイス出来るかもしれません。 スレ違いとも言えない気がする。 個人的には別のスクリプトを探す事を薦める。HTMLフォームのメールスクリプトなんて探せば山ほどある。 956の用途から考えると、このスクリプトは多機能すぎる。 ちなみに、CGIを使わないでメール送信は不可能。 htmlでフォームを作っても、送信された内容はCGIで受け取られて処理される。 蛇足。このスクリプト、いい意味でかなり面白い。 y_mail.cgiのsub a_make_koumoku内でユーザごとに*.cgiファイルを生成してる。 perlのことが分かってきたら読んでみると感動できると思う。
別に感動しなかった俺は駄目な奴なんだろうか・・・
人それぞれだろ。 漏れは無駄な処理だとは思うが、アイデアは面白いと思う。
俺は閉口した……。
彼女は閉経した……。
他スレから流れてきました。
仲間内でやってるサイトに日記を置きたいのですが、いろいろ見て周ってはいるものの、これだってCGIに巡り合えません。
要望としては、
●1つの日記に画像を複数枚(最低5枚)アップ可能。
●日記本文中に画像を張る位置をある程度指定できるもの。
●複数人で使う為、同じ日の日記が複数作成可能であること。
●ただし、書くことが可能なメンバーをパスワードで制限できること。
●フレーム内設置の為、無駄な装飾の無いもの。
●フレーム周りに同化させるために、色の変更などが設定出来るもの。
●フレーム内設置の為、大きな画像は自動的に縮小表示してくれるもの。
●月毎にログをまとめて、過去ログの読みやすいもの。
ってとこです。
CGIサイト等をいろいろ周って見た結果、、
http://www.nyats.com こちらにある、『なんちてBLOG』が無駄な装飾も少なく、シンプルで要望に近い機能を持っていました。
このCGIに、
●画像アップ数増加
●画像の自動縮小表示
の2つの機能を付加したいのですが、プログラミング知識に乏しく難航しています。
画像アップ数増加はなんとか出来たのですが、設置時にフレーム内に表示させたい為に、画像縮小の機能を付加したいわけです。
例えば、HTML生成の時に画像の幅が450以上の場合は450に縮小表示して、クリックで元の画像サイズでも見れるようにしたいのです。
上記の機能を実現できるようなアドバイスを、どうかよろしくお願いします。
上記に、 ●生成されるHTMLが可能な限り、Google等の検索に引っかからない。 というのも追加したいです。 お手数をおかけしますが、お力添え下さい。
>>963 そのスクのソースを見ないで書いて申し訳ないのだがアドバイスということなので一言。
うpろーど時に画像の大きさを取得しておいて
html生成時に希望以上の大きさの場合はimgタグで大きさ指定すれば?
その辺りの処理はKENTのimageboard(名前違うかも)が参考になるかも。
美麗なサムネイルを生成したい場合には
image::magicあたりを使うことになるが利用している鯖によっては使えんかもしれんので言及しない。
あとGoogleなどの検索に引っかからないというのはちょっと俺はわからん。
どこまでは引っかかるのは考えたことないので。
普通にmetaタグで指定すれば引っかからないかもしれんが未検証なのでノーコメント。
もう一つ。
このスレはほとんど死んでるので質問するときにはageるか、もしくは下スレに移動しれ
★三 【 スクリプト改造工房 PART 8 】 ★三
http://pc2.2ch.net/test/read.cgi/php/1077525387/
ありがとう。 とりあえず誘導にしたがい移動します。
復帰乙。
968 :
nobodyさん :04/05/09 22:54 ID:DfTetCoj
test
さっさと梅ちまおうぜ
>>852 えっとね。叩く気はさらさらないんだけど忠告をね。
ここはまるなげスレなのであなたの聞き方だと多分ボコボコ言われて「【 スクリプト改造工房 PART 7 】 へ」って誘導されちゃうと思う。
携帯対応に改造してもらいたいなら(かなり大胆な依頼だけどな)テンプレ守って依頼したら、
運がよければやさしい人になんとかしてもらえるかもしれないかもね。それだけ。
(・∀・)ニヤニヤ
あれだ。うん。誤爆さね。
このスレいつまでも残っていて紛らわしいな 埋めちまおう
次スレを立てるときは先走りせずスレのペースを読んで行いましょう。
埋め立ても立派な荒らしです。
荒らしは放置しましょう。
放置してくれるなら埋め
埋め立ても立派な荒らしです。