1 :
鍛冶屋のスミス :
2000/05/15(月) 15:07 「こういうふうにCGIを改造したいけどやりかたわかんないよー」 という人がいましたらここで聞いてください。 ひょっとしたらアドバイス出来るかもしれません。 なお、質問するときは 1)そのCGIのある場所(url必須!!!) 2)どんな風に改造して欲しいのか? (具体的にわかりやすく書く。HTMLで完成後のデザインを書いて指定してくれればなお良し) を必ず明記しよう。
2 :
名無しさん :2000/05/16(火) 17:23
こういうのが欲しい、ってのはダメですか?
可
4 :
名無しさん :2000/05/17(水) 12:23
http://psyco226.ug.to ここのトップの一番下にあるShort Messageっていうスクリプト、
結構面白いと思わない?
足跡残すのに、掲示板を使う程じゃないって思ってる人には親切。
あとは・・・街の灯の、ニュースに訪問者のレス付けられる奴とか。
5 :
名無しさん :2000/05/17(水) 13:17
>4 リンク先の奴ならかなり簡単に出来そう。 htmlを出力するbbsに少し手を加えれば良いだけ。 街の灯のはどんなのか知らない。
6 :
名無しさん :2000/05/17(水) 23:28
バナーも貼れる自動登録型の検索エンジンって無いですか? 「KENT」のHPで公開されている検索エンジンに バナーも貼れるような機能を持たせたものです。
7 :
名無しさん :2000/05/18(木) 05:05
8 :
名無しさん :2000/05/18(木) 06:22
ざっとみた感じ、ファイルロック関係のよーな気がする。
9 :
>5 :2000/05/19(金) 06:05
10 :
名無しさん :2000/05/19(金) 21:40
あげ
11 :
>6 (その1) :2000/05/20(土) 19:33
6> 「KENT」のHPで公開されている検索エンジンに
6> バナーも貼れるような機能を持たせたものです。
というわけで、その COSMO NAVI v1.3 にバナーを追加。
下の凡例はオリジナル1行目の「#!/usr/local/bin/perl」を「#!/usr/local/perl」に書き換えるという意味。
┏1━━━━━
#!/usr/local/bin/perl
▼
#!/usr/local/perl
┗━━━━━
上から変えていくと行番号を見失うので下から作業しましょう。
全部で32箇所。では、行ってみよう。
-----------------------------------------------------------
┏154━━━━━
#============#
# 設定完了 #
#============#
▼
# バナーのサイズ最大幅を制限します。
$bn_w_mx = 400;
# バナーのサイズの最大高さを制限します。
$bn_h_mx = 150;
#============#
# 設定完了 #
#============#
┗━━━━━
┏186━━━━━
($no@`$pt@`$sub@`$hp@`$name@`$email@`$pw@`$msg@`$date@`$t)
▼
($no@`$pt@`$sub@`$hp@`$name@`$email@`$pw@`$msg@`$date@`$t@`$bnr@`$bn_w@`$bn_h)
┗━━━━━
┏282━━━━━
<LI>パスワードは今後のメンテナンスに必要なので必ず記入してください。
▼
<LI>パスワードは今後のメンテナンスに必要なので必ず記入してください。
<LI>バナーをお持ちの場合、URLとサイズを記入してください。
<LI>バナーのサイズは幅$bn_w_mx×高さ$bn_h_mx以内とさせていただきます。
┗━━━━━
┏293━━━━━
<tr><td><b>URL</b></td><td><input type=text name=url size=60 value="
http:// "></td></tr>
<tr><td><b>パスワード</b></td><td><input type=password name=pwd size=8 maxlength=8>
▼
<tr><td><b>URL</b></td><td><input type=text name=url size=60 value="
http:// "></td></tr>
<tr><td><b>バナーのURL</b></td><td><input type=text name=bnr size=60 value="
http:// "></td></tr>
<tr><td> </td><td> 幅<input type=text name=bn_w size=5 value="88">ピクセル
高さ<input type=text name=bn_h size=5 value="31">ピクセル</td></tr>
<tr><td><b>パスワード</b></td><td><input type=password name=pwd size=8 maxlength=8>
┗━━━━━
┏348━━━━━
if ($msg eq '') { &error("紹介コメントの入力がありません。"@`"no"); }
▼
if ($msg eq '') { &error("紹介コメントの入力がありません。"@`"no"); }
if ($bnr ne '' && $bn_w > $bn_w_mx) { &error("バナーの幅が制限($bn_w_mx)を越えています。"@`"no"); }
if ($bnr ne '' && $bn_h > $bn_h_mx) { &error("バナーの高さが制限($bn_h_mx)を越えています。"@`"no"); }
┗━━━━━
12 :
>6 (その2) :2000/05/20(土) 19:34
┏367━━━━━
local($no@`$part@`$sub@`$hp@`$name@`$email@`$pw@`$msg@`$date@`$t)
▼
local($no@`$part@`$sub@`$hp@`$name@`$email@`$pw@`$msg@`$date@`$t@`$bnr@`$bn_w@`$bn_h)
┗━━━━━
┏396━━━━━
print OUT "$topno<>$part<>$sub<>$url<>$name<>$email<>$encode_pwd<>$msg<>$date<>$times<>0<>0<>$host<>\n";
▼
print OUT "$topno<>$part<>$sub<>$url<>$name<>$email<>$encode_pwd<>$msg<>$date<>$times<>$bnr<>$bn_w<>$bn_h<>0<>0<>$host<>\n";
┗━━━━━
┏428━━━━━
print "<tr><td>紹介文</td><td>:</td><td>$msg</td></tr>\n";
print "</table>\n";
▼
print "<tr><td>紹介文</td><td>:</td><td>$msg</td></tr>\n";
if ($bnr) {print "<tr><td></td><td>:</td><td><IMG src=
http://$bnr width=$bn_w height=$bn_h></td></tr>\n"; }
print "</table>\n";
┗━━━━━
┏443━━━━━
($no@`$part@`$sub@`$hp@`$name@`$email@`$pw@`$msg@`$date@`$t)
▼
($no@`$part@`$sub@`$hp@`$name@`$email@`$pw@`$msg@`$date@`$t@`$bnr@`$bn_w@`$bn_h)
┗━━━━━
┏509━━━━━
if ($msg eq '') { &error("紹介コメントの入力がありません。"@`"lock"); }
▼
if ($msg eq '') { &error("紹介コメントの入力がありません。"@`"lock"); }
if ($bnr ne '' && $bn_w > $bn_w_mx) { &error("バナーの幅が制限($bn_w_mx)を越えています。"@`"no"); }
if ($bnr ne '' && $bn_h > $bn_h_mx) { &error("バナーの高さが制限($bn_h_mx)を越えています。"@`"no"); }
┗━━━━━
┏522━━━━━
($no@`$pt@`$sb@`$hp@`$na@`$em@`$pw@`$ms@`$dt@`$ts@`$rec@`$cnt@`$ho)
▼
($no@`$pt@`$sb@`$hp@`$na@`$em@`$pw@`$ms@`$dt@`$ts@`$bnr@`$bn_w@`$bn_h@`$rec@`$cnt@`$ho)
┗━━━━━
┏533━━━━━
print OUT "$no<>$part<>$sub<>$url<>$name<>$email<>$pw<>$msg<>$dt<>$ts<>$rec<>$cnt<>$ho<>\n";
▼
print OUT "$no<>$part<>$sub<>$url<>$name<>$email<>$pw<>$msg<>$dt<>$ts<>$bnr<>$bn_w<>$bn_h<>$rec<>$cnt<>$ho<>\n";
┗━━━━━
┏570━━━━━
($no@`$pt@`$sb@`$hp@`$na@`$em@`$pw@`$ms@`$dt@`$ts@`$rec@`$cnt@`$ho)
▼
($no@`$pt@`$sb@`$hp@`$na@`$em@`$pw@`$ms@`$dt@`$ts@`$bnr@`$bn_w@`$bn_h@`$rec@`$cnt@`$ho)
┗━━━━━
┏606━━━━━
($no@`$part@`$sub@`$hp@`$name@`$email@`$pw@`$msg@`$date@`$ts@`$rec@`$count)
▼
($no@`$part@`$sub@`$hp@`$name@`$email@`$pw@`$msg@`$date@`$ts@`$bnr@`$bn_w@`$bn_h@`$rec@`$count)
┗━━━━━
13 :
>6 (その3) :2000/05/20(土) 19:35
┏658━━━━━
<tr><td colspan=2><hr size=2></td></tr>
<tr>
<td><b>分 類</b></td>
▼
<tr><td colspan=2><hr size=2></td></tr>
<tr>
<td><b>バナーのURL</b></td>
<td><input type=text name=bnr size=60 value="
http://$bnr "><BR>
幅<input type=text name=bn_w size=5 value="$bn_w">ピクセル
高さ<input type=text name=bn_h size=5 value="$bn_h">ピクセル</td>
</tr>
<tr>
<td><b>分 類</b></td>
┗━━━━━
┏712━━━━━
$pw@`$msg@`$date@`$ts@`$rec@`$count) = split(/<>/@` $_);
▼
$pw@`$msg@`$date@`$ts@`$bnr@`$bn_w@`$bn_h@`$rec@`$count) = split(/<>/@` $_);
┗━━━━━
┏719━━━━━
$ts{$no} = $ts;
▼
$ts{$no} = $ts;
$bnr{$no} = $bnr;
$bn_w{$no} = $bn_w;
$bn_h{$no} = $bn_h;
┗━━━━━
┏760━━━━━
print "</td><td><small>$msg{$_}</small></td>\n";
▼
if ($bnr{$_}) {$img_html{$_} = "<a href=\"$script?links=$no{$_}\" target=\"_top\"><IMG src=
http://$bnr{$_} width=$bn_w{$_} height=$bn_h{$_} align=left border=0></a>";}
print "</td><td><small>$img_html{$_}$msg{$_}</small></td>\n";
┗━━━━━
┏817━━━━━
$email@`$pw@`$msg@`$date@`$ts@`$rec) = split(/<>/@` $sline);
▼
$email@`$pw@`$msg@`$date@`$ts@`$bnr@`$bn_w@`$bn_h@`$rec) = split(/<>/@` $sline);
┗━━━━━
┏869━━━━━
print "登録日:$dt<P>$msg<hr size=2>\n";
▼
if ($bnr) {$img_html = "<a href=\"$script?links=$no\" target=\"_top\"><IMG src=
http://$bnr width=$bn_w height=$bn_h align=left border=0></a>";}
print "登録日:$dt<P>$img_html$msg</P><hr size=2>\n";
┗━━━━━
┏900━━━━━
local($no@`$pt@`$sub@`$hp@`$name@`$email@`$pw@`$msg@`$dt@`$ts@`$rec@`$axs)
▼
local($no@`$pt@`$sub@`$hp@`$name@`$email@`$pw@`$msg@`$dt@`$ts@`$bnr@`$bn_w@`$bn_h@`$rec@`$axs)
┗━━━━━
┏926━━━━━
print "<P>$msg<hr size=2>\n";
▼
if ($bnr) {$img_html = "<a href=\"$script?links=$no\" target=\"_top\"><IMG src=
http://$bnr width=$bn_w height=$bn_h align=left border=0></a>";}
print "<P>$img_html$msg</P><hr size=2>\n";
┗━━━━━
┏978━━━━━
local($no@`$part@`$sub@`$hp@`$name@`$email@`$pw@`$msg@`$dt@`$ts@`$rec)
▼
local($no@`$part@`$sub@`$hp@`$name@`$email@`$pw@`$msg@`$dt@`$ts@`$bnr@`$bn_w@`$bn_h@`$rec)
┗━━━━━
14 :
>6 (その4) :2000/05/20(土) 19:37
┏1026━━━━━
$pw@`$msg@`$dt@`$ts@`$rec@`$axs@`$ho) = split(/<>/@` $_);
▼
$pw@`$msg@`$dt@`$ts@`$bnr@`$bn_w@`$bn_h@`$rec@`$axs@`$ho) = split(/<>/@` $_);
┗━━━━━
┏1031━━━━━
print OUT "$no<>$part<>$sub<>$hp<>$name<>$email<>$pw<>$msg<>$dt<>$ts<>$rec<>$axs<>$ho<>\n";
▼
print OUT "$no<>$part<>$sub<>$hp<>$name<>$email<>$pw<>$msg<>$dt<>$ts<>$bnr<>$bn_w<>$bn_h<>$rec<>$axs<>$ho<>\n";
┗━━━━━
┏1175━━━━━
$pw@`$msg@`$dt@`$ts@`$rec@`$axs@`$ho) = split(/<>/@` $line);
▼
$pw@`$msg@`$dt@`$ts@`$bnr@`$bn_w@`$bn_h@`$rec@`$axs@`$ho) = split(/<>/@` $line);
┗━━━━━
┏1223━━━━━
$pw@`$msg@`$dt@`$ts@`$rec@`$axs@`$ho) = split(/<>/@` $line);
▼
$pw@`$msg@`$dt@`$ts@`$bnr@`$bn_w@`$bn_h@`$rec@`$axs@`$ho) = split(/<>/@` $line)
┗━━━━━
┏1237━━━━━
$pw@`$msg@`$dt@`$ts@`$rec@`$axs@`$ho) = split(/<>/@` $line);
▼
$pw@`$msg@`$dt@`$ts@`$bnr@`$bn_w@`$bn_h@`$rec@`$axs@`$ho) = split(/<>/@` $line);
┗━━━━━
┏1242━━━━━
$line = "$no<>$part<>$sub<>$hp<>$name<>$email<>$pw<>$msg<>$dt<>$ts<>$rec<>$axs<>$ho<>\n";
▼
$line = "$no<>$part<>$sub<>$hp<>$name<>$email<>$pw<>$msg<>$dt<>$ts<>$bnr<>$bn_w<>$bn_h<>$rec<>$axs<>$ho<>\n";
┗━━━━━
┏1302━━━━━
$page = $FORM{'page'};
▼
$page = $FORM{'page'};
$bnr = $FORM{'bnr'};
$bnr =~ s/^http\:\/\///;
$bn_w = $FORM{'bn_w'};
$bn_h = $FORM{'bn_h'};
┗━━━━━
┏1434━━━━━
■URL :
http://$url ▼
■URL :
http://$url ■バナー :
http://$bnr ┗━━━━━
-----------------------
以上です。
15 :
名無しさん :2000/05/21(日) 01:36
>1さん
こんな改造依頼はOKでしょうか?
CGI名「Webどらま」
1)
http://www7.big.or.jp/~jawa/download/dorama/ 2)一人の人が1日に何十回も投稿するのでログが一気に流れて困ってます・・・(T.T)
そこで1日1回に制限したいのですが、できますでしょうか・・・?
もしくは、最新の書き込みのIPアドレスを参照して、同じIPなら「連続投稿できません」というメッセージとともにはじく、というものでもいいのですが・・・
どうか、よろしくお願いしますm(__)m
16 :
ななしさん :2000/05/21(日) 02:14
481行あたりに ($tmp@`$tmp@`$tmp@`$tmp@`$tmp@`$lastipad) = split(/<>/@`$logs[$#logs+1]); define $tmp; if ($lastipad eq $ENV{'REMOTE_ADDR'}) { &error(1@`"ごめんなさいね。連続投稿ができないの。<br><center><form><txtarea>$FORM{'actor'}\n\n$FORM{'dorama'}</textarea></form><center>"); } こんなんでいいんじゃないかな? よくしらべてないからわかんないけど、$logs[$#logs+1]は $logs[1]か$logs[0]か$logs[$#logs]かもしれない。
17 :
名無しさん@1周年 :2000/05/21(日) 02:16
sub form_check { local($ck_no@`$date@`$dorama@`$ck_actor@`$ra) = split(/<>/@`$logs[0]); if ($ENV{'REMOTE_ADDR'} eq $ra) { &error(0@`"もっとネタを考えなきゃ駄目だよ。"); } これでOK
18 :
名無しさん :2000/05/21(日) 03:59
日記スクリプトが欲しいんですが、探して見つからなかったので・・・。
その日その日で一つずつ記事に対してユニークなアドレスを
付加するにはどうしたら良いんでしょうか?
記事に番号の付く掲示板を改造して作ろうと思ったんですが、
一つ一つが独立した形が良いなぁ、って思い直しました。
外観のイメージとしては
http://www3.plala.or.jp/user/こんな感じでして 、
readボタンを押せば、その日記が読めるといったのが希望です。
日付の所(イメージは21となっています)はJavascriptで自動的にその日の前の日の
日にちを入れたいのですが、それは自分で探してみるつもりです。
さらに欲を言えば、「全部読む」「一日分読む」「一月分読む」というアクションも
出来れば嬉しいのですが、、
取り敢えず、当面の目標は記事一つ一つに対してユニークなアドレスが付加され、
それぞれが独立した形になっている物、、を作りたい(改造したい)と思います。
難しいでしょうか?
19 :
名無しさん :2000/05/21(日) 05:14
あるところで掲示板のコメントを制限するものがありました。 if ($FORM{'comment'} =~ /$siyoufuka/) { &error('この言葉は使用できないです'); } とありまして、CGIの先頭にあった設定部分には $siyoufuka = ""; とありました。 ””の間に言葉を入れればその言葉は使用できなくなりましたが、2語以上 指定するにはどうすればいいのでしょうか?(ただ2個以上書いても効果がありませんでした) だれか知っておられたらお願いいたします。
20 :
名無しさん>19 :2000/05/21(日) 05:17
21 :
名無しさん :2000/05/21(日) 16:38
22 :
>21 :2000/05/21(日) 22:28
print "[$no] <font color=\"$sub_color\"><b>$sub</b></font>&#32"; print "投稿者:<b>$name</b> <small>投稿日:$date</small>&#32"; print "[<a href=\"$script?mode=resmsg&no=$no\">返信</a>]<br>\n"; print "<blockquote>$com<P>$url</blockquote><hr>\n"; -------------------------------------------------------------- 265行目あたりの上記の記述のどこかに$hostを挿入する("〜"の中じゃなくちゃだめ)
23 :
15 :2000/05/21(日) 23:36
>16、17さん ありがとうございます〜m(__)m でも・・・・・・・なぜか連続投稿できてしまいます・・・(T.T) なぜだ〜〜〜〜(ノT□T)ノ 〜┻━┻
24 :
名無しさん>23 :2000/05/22(月) 02:37
ログ見てみたら? 最新IPのチェックだけなら 串をスイッチするだけで簡単に突破できるし、 ダイアルアップ接続しなおすだけでもできる。 10分以内はどこからも連投禁止のほうが効果が あったりするかも。掲示板の対連続投稿ツール防御と 考え方は同じ。
25 :
15 :2000/05/22(月) 03:18
>24さん いえ、自分で連続投稿してみたんです・・・ もちろんダイアルアップは切断せずにやったのですが・・・ (IPアドレスも同じでした)
26 :
名無しさん>25 :2000/05/22(月) 03:20
17はちゃんとテストしたコードなんだけどなぁ。 どう改造しましたか。
27 :
15 :2000/05/22(月) 04:08
>26さん フォームチェック部分をこんな風にやったのですが・・・ # [ フォームチェック ] # sub form_check { local($ck_no@`$date@`$dorama@`$ck_actor) = split(/<>/@`$logs[0]); if ($ENV{'REMOTE_ADDR'} eq $ra) { &error(0@`"もっとネタを考えなきゃ駄目だよ。"); "); } if ($ck_no ne $FORM{'no'}) { &error(0@`"タイムオーバーだよ、きみぃ。もう、誰かが執筆しちゃったみたいだよ。一度戻って、再読み込みするといいだろう"); } if ($ck_actor == $FORM{'actor'}) { &error(0@`"同じ人がセリフを言うのは駄目だよ。"); } if (!$FORM{'actor'}) { &error(0@`"セリフを言う人を選ばないといけないなぁ。"); } if (!$colors[$FORM{'actor'}]) { &error(0@`"ちゃんと人を選んでくださいね"); } if (!$FORM{'dorama'} || length($FORM{'dorama'}) > 300) { &error(0@`"そんなセリフは認められないなぁ。"); } }
28 :
名無しさん>27 :2000/05/22(月) 04:16
最初の行、splitに$raが入ってない。 remoteチェックの中、要らんゴミが混じってる。 "); これでどう?
29 :
15 :2000/05/22(月) 04:18
↑は間違いです・・・m(__)m # [ フォームチェック ] # sub form_check { local($ck_no@`$date@`$dorama@`$ck_actor) = split(/<>/@`$logs[0]); if ($ENV{'REMOTE_ADDR'} eq $ra) { &error(0@`"もっとネタを考えないと駄目だよ。"); } if ($ck_no ne $FORM{'no'}) { &error(0@`"タイムオーバーだよ、きみぃ。もう、誰かが執筆しちゃったみたいだよ。一度戻って、再読み込みするといいだろう"); } if ($ck_actor == $FORM{'actor'}) { &error(0@`"同じ人がセリフを言うのは駄目だよ。"); } if (!$FORM{'actor'}) { &error(0@`"セリフを言う人を選ばないといけないなぁ。"); } if (!$colors[$FORM{'actor'}]) { &error(0@`"ちゃんと人を選んでくださいね"); } if (!$FORM{'dorama'} || length($FORM{'dorama'}) > 300) { &error(0@`"そんなセリフは認められないなぁ"); } }
30 :
21に続いて便乗質問ですけど :2000/05/22(月) 04:56
KentのlightBBSの管理者用の環境設定の所に設定できる項目を増やしたいんだけど どうやったらいいんですか? 以前ここの板であった「CGIについての質問なのですが」という板で禁止用語の設定なんかをこの管理パネルでもできるようにしたいのですが どのようにしたらいいのでしょうか? 項目とか、スクリプトの先頭に書いたりして禁止はできるのですが、それを管理者用のパネルからいじるとなると どうしてもうまくいきません。 どのように反映させればよろしいのか、宜しかったら教えてください。 追伸:このパネルで変更した物はlight.logの中に保存されていました。変更したものをlogに 書きこめるようにしたらいいと思うのですが、どうしてもうまくいきません。
31 :
名無しさん :2000/05/22(月) 05:46
32 :
名無しさん>31 :2000/05/22(月) 06:14
if ($host =~ /\Q.ne.jp\E$/i) { return ('OK!');} あとは普通の串チェックいれりゃいいんじゃないかいな? それとも生IPも弾くの?
33 :
名無しさん :2000/05/22(月) 15:12
34 :
名無しさん :2000/05/22(月) 16:50
>33 同じく
35 :
>33 :2000/05/22(月) 19:18
36 :
>35 :2000/05/23(火) 00:03
なんだろうけど、ソースが見たい・・・(-。-) ボソッ
38 :
名無しさん :2000/05/23(火) 01:27
こんな感じだけど &lt;!--#exec cmd="aaaa/bbbb.cgi"--&gt;
39 :
38 :2000/05/23(火) 01:30
でも cgi 毎回呼び出すより cccc.txt とかを cgi で吐かせて SSI で include した方がいいような気がする。
40 :
15 :2000/05/23(火) 01:34
>28さん たびたび、すみません・・・ 言われた通りに、@`$raとゴミを取り除いたのですが、 やっぱり連続投稿してしまいます・・・(T.T) 無理なのでしょうか・・・・
41 :
37>38さん :2000/05/23(火) 02:41
ありがとうございます。 やってみたんですが出来ませんでした。 相対パスで指定して良いんですよね? また、呼び出せるCGIに制限ってあるんでしょうか? 呼び出そうとしたのは掲示板です。
42 :
ぴょん基地 :2000/05/23(火) 02:54
相対パスでダメだったら、同じディレクトリ内でやってみたら ? > 41 また、 Content-type の問題とか、いろいろ試して見てネ 直接 URL を叩いたときは動くの ?
43 :
名無しさん>40 :2000/05/23(火) 03:29
何がやりたいか理解して貼り付ければミスすることなんてないと思うんだけどなぁ。 はいな。じゃ、これコピペして差し替えてね。 sub form_check { local($ck_no@`$date@`$dorama@`$ck_actor@`$ra) = split(/<>/@`$logs[0]); if ($ck_no ne $FORM{'no'}) { &error(0@`"タイムオーバーだよ、きみぃ。もう、誰かが執筆しちゃったみたいだよ。一度戻って、再読み込みするといいだろう。"); } if ($ck_actor == $FORM{'actor'}) { &error(0@`"同じ人がセリフを言うのは駄目だよ。"); } if (!$FORM{'actor'}) { &error(0@`"セリフを言う人を選ばないといけないなぁ。"); } if (!$colors[$FORM{'actor'}]) { &error(0@`"ちゃんと人を選んでくださいね。"); } if (!$FORM{'dorama'} || length($FORM{'dorama'}) > 300) { &error(0@`"そんなセリフは認められないなぁ。"); } if ($ENV{'REMOTE_ADDR'} eq $ra) { &error(0@`"もっとネタを考えなきゃ駄目だよ。$logs[0] $ENV{'REMOTE_ADDR'}"); } }
44 :
名無しさん :2000/05/23(火) 03:34
45 :
37>ぴょん基地さん :2000/05/23(火) 03:35
あ、同じディレクトリでやれば見事動きました。 ありがとうございます。
46 :
43 :2000/05/23(火) 04:48
ありゃ。デバッグ用のメッセージ残したままだった。 一番最後の&errorは後ろを削ってね。 &error(0@`"もっとネタを考えなきゃ駄目だよ。");
47 :
名無しさん :2000/05/23(火) 12:00
掲示板の中にはファイル名が〜.CGIじゃなくて、index.htmlになってるやつが ありますよね。あれはどうやってるんでしょうか?FAQだったらすいません。
48 :
>47 :2000/05/23(火) 13:12
代表的なのは3通りかな。 1)cols="100%@`*" のフレームに bbs.cgi を入れる。 これはサーバの設定と無関係で楽だし、どんなCGIでも使える手口。 2)2chもそうだけど記入された内容が HTML として出力される掲示板。 自作しない場合、そういう動作をする掲示板CGIを探すことになり ちょっと苦労する。 3).html でSSIを使えるようにして掲示板CGIの出力を挿入。 珍しいし、CGI可のサーバでも使えないことがある手法。
49 :
名無しさん>47 :2000/05/23(火) 13:15
htmlファイルに書き出してるだけ。2ch的にいえば、 「書き込みボタンでcgiを呼び出し」→「cgiは投稿内容を 処理してhtmlファイルを更新、クライアントには htmlファイルのURLへ飛ぶように返す」→「ブラウザは 更新されたhtmlファイルを表示」こんな感じ。
50 :
>47 :2000/05/23(火) 14:22
.htaccessに AddType application/x-httpd-cgi .html を追加。
51 :
そろそろ・・・ :2000/05/24(水) 04:15
52 :
名無しさん :2000/05/24(水) 06:16
われずリンクのあるサイトのことなんぞ知るか。 ていうか、本人に聞けば? いちばん早いよ。
53 :
名無しさん :2000/05/24(水) 22:39
HIBBSにsage機能を付け加えて欲しい
54 :
>52 :2000/05/25(木) 00:07
そうですね。ごめんなさい。 管理人が当初からスクリプトは恥ずかしくて見せられないって 言ってたからここで聞いたのですが・・・ もう少し頑張って自分でやってみます。
55 :
名無しさん :2000/05/25(木) 10:03
>54 cgiでhtmlファイルを全部読んで、それをprintで表示するようにする。 Short Messageを挿入したい行になんか適当なキーワード行を入れておく。 printで表示する前に、キーワード行かどうか判断して、キーワード行なら、 ログファイルから書き込みを表示する。 ログファイルの取り方は、普通の掲示板やチャットと同じでいい。 こんな感じで作れると思うよ。がんばってね。
56 :
名無しさん :2000/05/25(木) 18:38
特定の所からしかアクセスできなくすることは出来ますか? 例えばindex.htmlからじゃないとアクセスできないようにするとか なんですけど、掲示板にこういう機能をつけたいのですができますか? もし良ければお知恵を拝借したいのですがよろしくお願いいたします。
57 :
>56 :2000/05/25(木) 19:07
if($ENV{'HTTP_REFERER'}!~/index\.html/){ print "Content-type: text/html\n\n"; print "index.htmlからアクセスして下さい。\n"; exit; }
58 :
名無しさん>57 :2000/05/25(木) 19:24
そういう意味のindex.htmlじゃないと思う(ぴゅあ
59 :
54です :2000/05/26(金) 02:35
>55さん。 どうもありがとうございます。 助言を元に、自分の手で作ってみます。
60 :
56です :2000/05/26(金) 06:55
61 :
>60 :2000/05/26(金) 07:59
うん。それでオッケーだよ。
62 :
57 :2000/05/26(金) 08:04
if($ENV{'HTTP_REFERER'}!~/^
http:\/\/www\.abc\/~abc\// ){
print "Content-type: text/html\n\n";
print "外部からのリンクではアクセスできません。\n";
exit;
}
63 :
誰か・・・ :2000/05/26(金) 08:38
30の質問に答えてあげて下さい。 私も似たような事を知りたいので。
64 :
>63 :2000/05/26(金) 08:40
> 1)そのCGIのある場所(url必須!!!)
65 :
名無しさん :2000/05/26(金) 17:31
66 :
名無しさん :2000/05/26(金) 18:09
>65 $hostとかを入れればIP表示させれるよ でもID作らなければいけない理由は? どっちにしろIPどまりなのでIDの意味がないのでは? それにLIGHTBOARDには管理者のところで相手のIPが表示されるから 管理者にだけはIPは分かるよ。
67 :
名無しさん :2000/05/26(金) 18:16
AnsQに人工無能カツヲを組み込めますか?
68 :
>30@`63 :2000/05/26(金) 19:51
ここのsub env_view { ($head@`$title@`$t_color@`$t_size@`$t_face@`$bgr@`$bgc@` $text@`$link@`$vlink@`$alink@`$home@` $max@`$subj_color@`$name_color@`$mail1@`$mail2) = split(/<>/@`$init); ここと、 ここのsub env_edit { ($head@`$title@`$t_color@`$t_size@`$t_face@`$bgr@`$bgc@` $text@`$link@`$vlink@`$alink@`$home@`$max@`$subj_color@` $name_color@`$mail1@`$mail2) = split(/<>/@`$lines[0]); $lines[0] = "$head<>$FORM{'title'}<>$FORM{'t_color'} <>$FORM{'t_size'}<>$FORM{'t_face'}<>$FORM{'bgr'}<> $FORM{'bgc'}<>$FORM{'text'}<>$FORM{'link'}<> $FORM{'vlink'}<>$FORM{'alink'}<>$FORM{'home'}<> $FORM{'max'}<>$FORM{'subj_color'}<>$FORM{'name_color'} <>$FORM{'mail1'}<>$FORM{'mail2'}<>\n"; ここと ここのsub regist { ($head@`$title@`$t_color@`$t_size@`$t_face@`$bgr@` $bgc@`$text@`$link@`$vlink@`$alink@`$home@`$max@` $subj_color@`$name_color@`$mail1@`$mail2) = split(/<>/@`$init); ここに、セットすれ(改行は勝手に入れた)。 つか、汚いコードだから改造なんて考えないほうがよいよ。 メンテナンス性最悪。何箇所書き直すことになるんだよ、これ。 splitとjoinをサブルーチンにしとけばそれで済むのに。
69 :
>65 :2000/05/26(金) 19:54
IPからの生成じゃダイアルアップで意味が無いし、 下1バイト削ればIDにならないからこれも意味が無い。 carl板を参考にしてみたら?
70 :
>65 :2000/05/27(土) 00:54
結局クッキーがいいんでないの? ランダム生成すりゃ偽造は難しいだろ。 サーバーとクライアントでいつ破棄するかが難しいか。
71 :
>36 :2000/05/27(土) 03:46
72 :
>71 :2000/05/27(土) 04:22
お、ここはわれずリンク無いね。(笑)
73 :
>65 :2000/05/27(土) 07:24
74 :
>68 :2000/05/27(土) 09:03
せめてどっちのファイルかくらい書いてあげないとlightなのかlight2 なのかくらい 少し見てみたけど分かりにくかったからさ
75 :
63 (この板PREモードが有ると良いですね) :2000/05/27(土) 10:18
>64 >> 1)そのCGIのある場所(url必須!!!) スミマセン。私の場合、どれって言う訳じゃ無いんです。 ローカルでいろんな掲示板を動かして、改造ベースを探してるものですから。 >68 詳しく書いて頂いてありがとうございます。 環境設定を持たない掲示板に、設定メニューを加える際の参考にしたいと思って 便乗してしまいました。 >・・・だから改造なんて考えないほうがよいよ。 環境設定を持たない掲示板で、 $BBScolor = '"#F5F5F5"'; #BBSの色 をソース上で設定したとします。 変数$BBScolorに代入された"#F5F5F5"を掲示板上で書き換えるには どのようにすれば良いのでしょう。 具体的に教えて欲しいなんて我が侭は言いませんので、 考え方を教えて頂けないでしょうか。(無視されてもOKです) この板を見ていて、ちょっとPerlに興味が出てきたので独学してみます。
76 :
pm :2000/05/27(土) 12:19
掲示板上のボタンとかで一時的に変えられれば良いのなら、 %colors = ( blue => '#ccccff'@` red => '#ffcccc'@` ...etc ...etc ); $defaultcolor = '#f5f5f5'; <フォームのデータを取る部分> フォームのデータが%Formに入ってるとすろと、 $BBScolor = $colors{$Form{color}} || $defaultcolor; <表示する部分> formタグとか、ボタンとかを付けた上で、 print qq|<radio name="color" value=""><font color="$defaultcolor">■</font>\n|; while( ( $key@` $value ) = each %colors ){ print qq|<radio name="color" value="$key"><font color="$value">■</font>\n|; } という感じでしょうかねぇ…。 即興なので間違ってたらごめんなさい。
77 :
>75 :2000/05/27(土) 14:22
環境設定は、入力用画面表示、更新処理、
目的機能の3つで構成する。
ファイルに保存した設定情報は必要になる都度読み込む。
読み込みに失敗したらデフォルト値を使う。
更新処理では管理者パスを確認する。
管理用ページを出すには
http:// 〜/hoge.cgi?adminなどで
通常と区別し、スクリプトの最初で分岐する。
VBやVCが使えるなら別にむつかしいことなんてないよ。
perlで軽くキレイに、セキュリティに気をつけて、
複数プロセス前提で、さらにプロセスが処理途中でいつ
殺されても大丈夫なように組むのはそれなりにむつかしいけど。
78 :
300A :2000/05/27(土) 16:12
CGIを改造していて分からなくなってしまいました。 フォームの「ans」から受け取ったデータが、 「$ans」と一致しているなら「$flag1」に、 「$ansx」と一致しているなら「$flag2」に、とばしたいのですが 「$ans」に一致するように動作させても「$flag2」に飛んでしまいます。 どこを直したら良いでしょう?? ======================================================== $flag = 0; foreach $line (@DATA) { ($date@`$code@`$que@`$ans1@`$ans2@`$ans3@`$ans@`$ansx) = split(/\@`/@`$line); chop($ans); if ($QUERY{'ansno'} eq $code) { if ($QUERY{'ans'} == $ans) { $flag = 1; } elsif ($QUERY{'ans'} == $ansx) { $flag = 2; } last; } } if ($flag == 0) { $noans = $QUERY{'noans'} + 1; if ($noans < $end) { $flag = 3; } } elsif ($flag == 1) { $noans = $QUERY{'noans'}; $QUERY{'no'}++; $flag = 3; } elsif ($flag == 2) { $noans = $QUERY{'noans'}; $QUERY{'no'}; $flag = 3; } &cookie_regist(1); if ($flag == 3) { &html2; }
79 :
>78 :2000/05/27(土) 18:17
$QUERY{'ans'}、$ans、$ansxの値が数値ではなく文字列ならば、 ==ではなくeqで比較しなければいけないよ。
80 :
名無しさん :2000/05/27(土) 18:17
chop($ans); これの意図は?
81 :
300A :2000/05/27(土) 18:58
>79 $ans等の値は数字になっています。 >80 これをコメントアウトしたらCGIは当初の 「フォームの「ans」から受け取ったデータ…とばしたい」 にかなうのですが、 =========================== if (!open(NOTE@`"$datafile")) { &error(bad_file); } @DATA = <NOTE>; close(NOTE); =========================== で受け取ったテキストファイル(=データファイル)の $date@`$code@`$que@`$ans1@`$ans2@`$ans3@`$ans@`$ansx $date@`$code@`$que@`$ans1@`$ans2@`$ans3@`$ans@`$ansx $date@`$code@`$que@`$ans1@`$ans2@`$ans3@`$ans@`$ansx ・ ・ ・ このような感じで、データファイルに入っている複数行の(一行分で1セット) 「質問&回答」のデータのうち、一番上の物しか採用されなくなってしまいます。 (ランダムで質問データを表示したいと思っています) 日本語が変ですが、これでお分かりになったらお願いします。
82 :
名無しさん :2000/05/27(土) 19:58
$QUERY{'ansno'}を取得するに到るまでに問題があるんでしょ。 流れ図とか描いてみたら?
83 :
300A :2000/05/27(土) 20:51
データファイルの記述が間違っていました。 $codeを通し番号にするのを忘れていた、のです。 ハズカシ… どうもありがとうございました。(これで多分解決です)
84 :
名無しさん :2000/05/27(土) 22:10
>$codeを通し番号にするのを忘れていた、のです。 なら >if ($QUERY{'ansno'} eq $code) { は、数値じゃないの?
85 :
名無しさん :2000/05/28(日) 03:33
ちょいと伺うのですがsjisとeucの違いはなんですか? 大体先頭のほうに require './jcode.pl'; とかいてありますが、これがsjisなんですよね?(間違ってたらごめんなさい) eucにするにはここに何か別のものを入れればいいんですか?
86 :
えぬー :2000/05/28(日) 03:44
いや、それはSJISなものをEUCにしたり、その逆をしたり、その他のことをするためのライブラリの読み込みです。 どこかにjcode::convert(***@`***)ってのがあるでしょう。 jcode::convert(*_@`'euc')なら$_に入っている文字がEUCに変換されます。sjisと書いてあるなら、sjisになります。 って、この説明はおそらくあなたの知りたいことを直接は解決しないでしょうね。。。 なにを困っているのか書いてくださいな。
87 :
名無しさん :2000/05/28(日) 04:38
>86 単にsjisよりはeucのほうがいいと時々聞きましたので、興味本位で聞いてみました ¥が変なふうになるとかよくいうじゃないですか。だからそれ以後の文字が化けるとかって聞きました だからsjisよりeucのほうがいいならeucにしてみたいなと それで先頭にかいてあるrequire './jcode.pl'; というところを素人考えで require './euc.pl';とかにすればいいのかと思いまして。
88 :
63 :2000/05/28(日) 09:34
>76
ありがとうございます。
「くずはすくりぷと」みたいに表示の際に色を選ぶタイプですね。
頑張ってやってみます。
>77
>VBやVCが使えるなら別にむつかしいことなんてないよ。
使えません(泣)
メニューの追加、削除、簡単な条件分岐を付け加えるのと違って、
こういった方法論を知らないと改造は手が出せません。
とても参考になります。
そう言った意味で、別スレッドの
「せっかくだからこのスレで掲示板作ってみませんか?」
http://tako.2ch.net/test/read.cgi?bbs=perl&key=959378033 を期待を込めて眺めています。知識のある方がどんどん加わって
掲示板が出来上がると素晴らしいのですが……。
流れが速くて、裏に回った書き込みにレスを付ける形になりました。
スミマセンです。
89 :
名無しさん :2000/05/28(日) 11:53
>87 「EUCの方が扱いやすいねー」とか言う場合は、以下の2つの条件を満たすものをさします。 1、スクリプトがEUCで書かれている。 2、入力をEUCに変換する。 1、はエディタによります。またはftpソフトで変換してUPしたり。 で、2が「./jcode.pl」を使います。jcodeとは「日本語コード」の意味であって、特定のコードを指すわけじゃないので、 上に書いたように、コード変換はconvertという関数がしてくれます。
90 :
名無しさん :2000/05/28(日) 16:06
age
91 :
age :2000/05/29(月) 00:48
age
92 :
名無しさん :2000/05/29(月) 12:46
93 :
名無しさん :2000/05/30(火) 07:18
94 :
名無しさん :2000/06/01(木) 00:17
95 :
名無しさん :2000/06/01(木) 00:33
http://chat2.nantv.com/ ここのチャットレスポンスが凄く早いんですけど
どうやってるんでしょうか?
全国(chat2.nantv.com:8080)とか、東日本(chat2.nantv.com:8280)とかでポート指定している
のも意味あるんですかねぇ?
96 :
94 :2000/06/01(木) 03:38
解決、つーかすげー勘違いしてました。はずかしぃ。
97 :
名無しさん :2000/06/01(木) 06:54
98 :
97 :2000/06/01(木) 06:56
あ、因みにPetBom.cgiはフォーム入力されたメールアドレスに、 擬似的なペットのデータを送信して、ペットがメールを届けてくれたかのように見せるCGIです。
99 :
名無しさん :2000/06/02(金) 03:49
100 :
>92@` 99 :2000/06/03(土) 00:34
ソース見たけど、もう少し綺麗にできそうじゃねーか?
101 :
名無しさん :2000/06/03(土) 02:05
>100 お願いします。m(_ _)m
102 :
100 :2000/06/04(日) 00:01
>101 えーっと、これを書き直せばいいってこと?
103 :
101 :2000/06/06(火) 09:00
はい、そうです。 できれば、99の改造も・・・。
104 :
名無しさん :2000/06/06(火) 18:28
プチボード
http://www.kent-web.com/bbs/petit.html で
IPを取らないようにする改造。
スクリプト的に賢いやり方ではないですが、将来のバージョンにも
おそらく簡単に対応できる方法。
sub get_host {
$host = $ENV{'REMOTE_HOST'};
:
if ($host eq "") { $host = $addr; }
}
の数行 (v4.5では1338行から)を次の3行に書き換え。
sub get_host {
$host = '';
}
リモートホストに関する情報を空っぽとして指定するだけ。
105 :
名無しさん :2000/06/07(水) 13:15
106 :
名無しさん :2000/06/07(水) 13:34
104に便乗してもいいですか? 私もプチ☆ボードを使っているのですが。 2chみたいに名前の部分を空欄にして書きこむと名無しさんみたいに特定の単語を自動的に挿入してくれるようにするにはどうしたらいいのでしょうか?
107 :
>104@`106 :2000/06/07(水) 15:56
>104 475行目をコメントアウトすればいいんでないかい? #&get_host; >106 if ($name eq "") { &error("名前が入力されていません"); } 450行目を置きかえればOK。 if ($name eq "") { $name='名無しさん'; }
108 :
名無しさん :2000/06/08(木) 20:53
109 :
106 :2000/06/08(木) 22:58
107さんありがとうございますm(_ _)m もう一つよろしいでしょうか? 以前見たことがあるのですがプチ☆ボードで文の最後に『ざんす〜』『やで〜』とかが自動的に挿入されて色々な方言が楽しめる掲示板があったのですがあれはどうやっているのでしょうか?
>107 それはあえて避けました。 ・無駄に get_host を温存しない ・いつ get_host を呼ぶ箇所が変わったり増えたりしないとも限らない というわけで生かさず殺さずにしました。
111 :
名無しさん :2000/06/08(木) 23:45
112 :
109 :2000/06/09(金) 10:15
>111 そう、それですがそんな難しいのじゃなくて結構です。 語尾必ず、同じ単語が挿入されるだけでもいいです。
113 :
>109 :2000/06/09(金) 10:53
498行目の$commentの後に「ざんす〜」とか付ければOKだよ。 # ログをフォーマット $new_msg = "$number<>$FORM{'resno'}<>$date<>$name<>$email<>$subj<>$commentざんす〜<>$url<>$host<>$ango<>$color<>\n";
114 :
KAZ :2000/06/09(金) 11:10
数字と英数字を使ってランダムで文字を生成したいんですが どうやればいいんでしょう? レスキューの簡易データベースで、登録時にパスワード(ユニーク番号) みたいなのをつけたいと思ってます。パスワードといっても確認用 ぐらいの簡単なもので考えています。 よろしくお願いします。
115 :
名無しさん :2000/06/09(金) 11:51
116 :
名無しさん :2000/06/09(金) 15:50
>115 うーん、適当な掲示板スクリプトをちょこっと改造して その掲示板データファイルを手動で反映させていくのが 楽ですよ。 この手は掲示板と違って書き込み結果がすぐに表示されない分 無責任な登録が多くなります。 「必ず儲かる簡単ビジネス!詳しくはhttp: //〜〜へ!」 「大量の無修正画像!あなたも満足http: //〜〜!」 「てぃむぽ」「氏んでね(はあと)」「ばーーーか」 なんて登録が即座にdoc0.datに反映されたら嫌でしょう? プログラムの仕組みは難しくないですが、こういう書き込み 内容のチェックを入れるとなると相当面倒なことになります。 sendmailが使えるサーバに設置するなら、メールフォームの デザインを登録ページ風に変えて内容が115さんに送られるように すると、データ更新を素速くできるようになるでしょう。
117 :
名無しさん :2000/06/09(金) 15:59
>112 > 語尾必ず、同じ単語が挿入されるだけでもいいです。 語尾の判定を行なうだけのほうが高度な処理になると思います。 「ではさようなら・・・ またネ!(^^)」が 113さんの方法だと 「ではさようなら・・・ またネ!(^^)ざんす〜」 になっちゃいます。 これでもよいのならHTML表示部分を $commentざんす〜 に書き換えるほうがデータも無駄に大きくならないし、 気が変わったら $commentだがね〜 にするのも簡単。
118 :
名無しさん :2000/06/09(金) 17:38
>114 KAZさん >数字と英数字を使ってランダムで文字を生成したいんですが @seeds = ('a'..'z'@`'A'..'Z'@`'0'..'9'); srand; $foo = crypt(time@`rand(999999)); で「それらしきもの」が $foo に入りますので、 "." や "/" が気に入らなかったり文字数が多いと思ったら 適当に後処理というのは? > 登録時にパスワード(ユニーク番号)みたいなのをつけたいと思ってます。 ユニークかどうかは気にしなかったんですが、 そうそうダブることはないと思います。 件数が多くなければ、記録しておいた $foo を検索 して、ダブっていたら再生成とか。
119 :
115 :2000/06/09(金) 17:39
>116さん レスありがとうございます。 でも、掲示板スプリクトをいじろうにも、CGIのことがほとんど わからずに、ココに書き込んだかも・・・ それと、出来れば、同じページに入力画面を起きたいのです。 あと、無責任な発言ですが、ほとんど内輪しか来ない掲示板 なので、商用の書き込みがあることはほとんど無いかも知れません。 sendmailについては、ちょっとわからないです。
120 :
KAZ(114) :2000/06/09(金) 17:49
>118さん レスありがとうございます!さっそく試してみます。 これの文字数を決めるのってできますか? できたら6文字に限定したいんです。このくらいならかぶる事も ないかと...書くのが抜けててすみません。
#! /usr/local/bin/perl -w use constant PASSWD_LEN => 6; @L = ("A".."Z"@` "a".."z"@` "0".."9"@` "!"@` '\"'@` "\#"@` "\$"@` "%"@` "&"@` "\'"@` "("@` ")"@` "*"@` "+"@` "@`"@` "-"@` "."@` "/"@` '@'@` "["@` "\\"@` "]"@` "^"@` "?"@` "`"@` "{"@` "|"@` "}"@` "~"); srand(time ^ $$ ^ unpack "%L*"@` `ps axlww | gzip`); $passwd = join ""@` map { $L[int rand @L] } (1..PASSWD_LEN); print "$passwd\n"; __END__ srandに time ^ $$のみを使用しないのは以下の理由によります: time@` $$ともに推定しやすい値を返す。(多くのUNIXの実装で、 PID ($$)は順 番に割り振られます。) 3回に1回は x xor y = (x + 1) xor (y + 1)が成立する ⇒ CGIプログラムの ように頻繁に呼び出されるプログラムでは同じパスワードを生成する危険性が ある。 ここでは、システムで常に変化する情報 (ps axlwwの結果) を利用することに よって srandに渡される値の予測を困難にしています。`ps axlww | gzip` の 代わりに `gzip < /dev/random` としても良いでしょう。
122 :
名無しさん :2000/06/09(金) 22:07
> 121
あゝ、とても勉強になります。
> 115
http://www.web-kyoto.com/100/chat/no45/ なんてのも
ありますよ。
> 掲示板スプリクトをいじろうにも、CGIのことがほとんど
> わからずに、ココに書き込んだかも・・・
じゃぁ書き込みを表示しない掲示板への投稿フォームを
おるちゅばん掲示板につけるのが簡単かな。
<FORM action="./res.cgi">
自動レスを追加する:
<INPUT TYPE="text" NAME="d" SIZE=50> <INPUT TYPE=submit VALUE="追加">
で、res.cgiの中身。(ファイル同士の在処の関係は調整してね)
非常にアマい構造です。どういうことか理解したら、もっと丈夫な
掲示板を同じような感じに改造して取り替えるといいでしょう。
1)掲示板の書き込み部分と記録表示部を除去。
2)記録データの形式を変更。
3)掲示板の書き込み部分をおるちゅばんに設置。
下のハイフンだらけの行の *あいだの行* をコピーしてね。
(ハイフンだらけの行は不要ってこと)
-----------------------------------------------
#!/usr/local/bin/perl# 同じディレクトリに置く。
# res.cgi………705 or 755 ←このCGI
# kiroku.dat…606 or 666 ←空のテキストファイル
# jcode.pl……644 ←←←←←すでにお持ちのはず$body = '<body bgcolor="#99CCCC" text="#003366" link="#8A2BE2" vlink="#3CB371">';require './jcode.pl';
$log="./kiroku.dat";
if($ENV{'QUERY_STRING'}) {
($value = $ENV{'QUERY_STRING'}) =~ s/[\+ ]//g;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C"@` hex($1))/eg;
# $value =~ s/%(\w\w)/pack("C"@` hex($1))/eg;
$value =~ s/</&lt\;/g; $value =~ s/>/&gt\;/g;
&jcode'convert(*value@`'sjis');
$comment = substr($value@`2@`100);
} open(IN@`$log); @resd=<IN>; close(IN);
if($comment){ $#resd=50; $now=time;
$res="$now< → >$comment< ← >$ENV{'REMOTE_ADDR'}\n";
open(OUT@`"> $log"); print OUT $res@`@resd; close(OUT);
} print "Content-type: text/html\n\n<HTML>\n$body";
print "<CENTER><P><FONT size=6>登録しました。</FONT><BR>「 $comment 」<BR><BR><BR>";
print "<A href=\"./rusuban.html\">もどる</A></P></CENTER></BODY>\n</HTML>\n";
exit;
-----------------------------------------------
123 :
122 :2000/06/09(金) 22:11
改行が取り去られて書き込まれたのでもう一度。 ----------------------------------------------- #!/usr/local/bin/perl # 同じディレクトリに置く。 # res.cgi………705 or 755 ←このCGI # kiroku.dat…606 or 666 ←空のテキストファイル # jcode.pl……644 ←←←←←すでにお持ちのはず $body = '<body bgcolor="#99CCCC" text="#003366" link="#8A2BE2" vlink="#3CB371">'; require './jcode.pl'; $log="./kiroku.dat"; if($ENV{'QUERY_STRING'}) { ($value = $ENV{'QUERY_STRING'}) =~ s/[\+ ]//g; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C"@` hex($1))/eg; $value =~ s/</&lt\;/g; $value =~ s/>/&gt\;/g; &jcode'convert(*value@`'sjis'); $comment = substr($value@`2@`100); } open(IN@`$log); @resd=<IN>; close(IN); if($comment){ $#resd=50; $now=time; $res="$now< → >$comment< ← >$ENV{'REMOTE_ADDR'}\n"; open(OUT@`"> $log"); print OUT $res@`@resd; close(OUT); } print "Content-type: text/html\n\n<HTML>\n$body"; print "<CENTER><P><FONT size=6>登録しました。</FONT><BR>「 $comment 」<BR><BR><BR>"; print "<A href=\"rusuban.html\">もどる</A></P></CENTER></BODY>\n</HTML>\n"; exit; -----------------------------------------------
124 :
99 :2000/06/09(金) 23:52
うーん、やっぱり複雑なのかなぁ どなたかご自分のページでいいので公開してくれませんか? 人気出ると思うのですが・・・。
126 :
115 :2000/06/10(土) 08:44
122さん、非常に親切に有り難うございます。 ホントに感謝します。 そこで、また、更に甘えてしまうようなので恐縮なのですが kiroku.datファイル書き込みの時にファイルに mment=○×△ と、頭に mment= が付いて書き込まれてしまうようです。 いろいろ、試した結果、17行目の $comment = substr($value@`2@`100); この行が関係してるようなのですが、どのようにしたら ファイル書き込みの時に mment = を消すことができるしょうか・・・
127 :
名無しさん :2000/06/10(土) 09:11
>125 99じゃないですが、そのページ左下にある「ジオゴング」 というもののことではないですか? 「ショートメッセージ」と同じく、.cgiではなく、.htmlの 中にCGIが組みこまれているのが不思議だ、ということだ とおもいます。
128 :
名無しさん :2000/06/10(土) 18:00
129 :
128 :2000/06/10(土) 18:47
あ、置き換えられてしまった。しまった。 &nbsp;です。 Macならタグが有効なんだけどな。
130 :
名無しさん :2000/06/10(土) 20:24
> 115(126) 登録書き込みのテキストボックスのHTMLがこんな風になってませんか? 自動レスを追加する: <INPUT TYPE="text" NAME="comment" SIZE=50> 次のようにすれば大丈夫です。 自動レスを追加する: <INPUT TYPE="text" NAME="d" SIZE=50> もしくは・・・ > $comment = substr($value@`2@`100); > この行が関係してるようなのですが 正解です。例えば「Hello」と登録すると、「d=Hello」が送信されるので フォームから送られた内容の頭2文字である「d=」を削っています。 <INPUT TYPE="text" NAME="comment"> での送信内容は「comment=Hello」 になるので、処理するには「$comment = substr($value@`8@`100);」と なります。また、100 を変えると記録される文字数の上限を変更できます。
131 :
125 :2000/06/10(土) 20:29
127> .cgiではなく、.htmlの中にCGIが組みこまれているのが不思議だ、 HTMLを見ると <FORM action="/cgi-bin/geogong/geogong" METHOD="get"> の 部分ですよね? ただ単にフォームが書かれているだけですけど。
132 :
名無しさん :2000/06/10(土) 20:58
>128 リニューアル中だそうで、hagure.lzhがNotFoundでした。 おそらくスクリプト中に「split(/ /@`」という箇所があると思います。 2つのスラッシュの間の文字を区切りとして判断するのですが、 例えば「split(/\t \t/@`」とすると(\t はタブを意味する特殊文字) スペースの代わりに連続するタブ2個を区切り文字にできると思います。 もし、数カ所あったら1カ所ずつ試してみてください。 &nbsp ; はブラウザが空白と解釈するだけなので、着想は 良かったのですが方向違いでしたね。
133 :
128>132 :2000/06/10(土) 22:10
試してみます。その箇所は確かにありました。 そこをどういじれば良いか今手元にperlリファレンスがなくて分からなかった のです。(あっても分からなかったかもしれない) ありがとうございます。 Macだと&nbsp ; でも認知されてタグが有効になっていたので、迷ったのですね。
134 :
128>132 :2000/06/10(土) 22:34
614行目の ($a@`$b) = split(//@`$line);を ($a@`$b) = split(/\t/@`$line);に替えたら、タブ1個で変換できるように なりました! 本当にありがとうございました。
135 :
99 :2000/06/10(土) 22:59
127のかたのとおりの疑問でした。 >131 単にフォームが書かれているだけですけど というのは、どう言うことでしょうか? CGIではないのですか? 投票すると結果が反映されたhtmlページになるのが不思議 なのですが、その結果の枠がリンクされて表示されているだけな のでしょうか?
CGIでhtmlファイルを書き換えて、Location: か何かで飛ばしているだけでしょう。 2ちゃんだってそうだし、べつに不思議ではないです。
137 :
131 >99 :2000/06/12(月) 21:42
138 :
狐 :2000/06/13(火) 01:18
139 :
名無しさん :2000/06/13(火) 10:10
140 :
名無しさん :2000/06/13(火) 16:40
>139 57行目の「&time ;」で「$date_now」に現在時刻を入れてますね。 なのに書き込みデータをファイルに書く前にファイル中のデータを 「$date_now」に入れちゃっているのでその日付が次から次へと コピーされています。 563行目「$date_now="$year年 $mon月(後略)」を 「$date_now_maji="$year年 $mon月(後略)」に書き換えると $date_now_maji にマジな現在時刻が入るので、 253行目「$value = "$date_now\@`$new_number\@`(後略)」を 「$value = "$date_now_maji\@`$new_number\@`(後略)」に書き換えれば マジな現在時刻がデータに記録されるようになります。 すでに入っているデータと記述書式が違うのが気になるならば、 563行目を修正すればOK。
141 :
139>140 :2000/06/13(火) 17:12
ありがとうございます。ちゃんと動きました。 頑張ってもう少し勉強いたしますね。 いつかここでアドバイスできればいいなあと思ってます。
142 :
115 :2000/06/16(金) 15:06
>130 やってみたら、見事、かいけつしました。 教えてくれてありがとうございました。
143 :
名無しさん :2000/06/17(土) 04:03
machi4.virtualave.net/cgi-bin/lchat.cgi 此処のチャットが欲しいんですが・・・KENTさんのを独自で改造してるようなので、 どうしたらいいのかわからないんです教えて下さい。 machi4.virtualave.net/cgi-bin/lchat.cgi?mode=list 退室後にログをDL出来るようになってて、しかもそれが日付でわけられてるんです。 自分でもいろいろやってみたんですが上手くいかなくて…よろしくお願いします
>138 sub make_log内の <a href=\"$reload?thp=$i\&back_all=yes\"> の部分を、 <a href=\"$reload?dir=$dir\&thp=$i\&back_all=yes\"> にしてみてください。これで過去ログの「レスを全部読む」が動くようになりますよ
145 :
名無しさん :2000/06/17(土) 05:51
146 :
狐 :2000/06/17(土) 05:58
>144 ありがとうございます、みごとに動きました dir=$dir\&thp= の所なんですけど dir=$dir&thp= \を抜いても大丈夫かな・・・ 現在それで動かしているので そしてさらに不具合が・・・ 過去ログのレス全部読むで、表示されたページの 下のほうに、書き込み欄があるのですが そこで書き込み後、トップへスレッドが移動するのですが スレッドの先頭がその、書き込みしたレスの内容になるんですけど・・・
148 :
名無しさん :2000/06/17(土) 13:06
149 :
名無しさん :2000/06/17(土) 15:40
>148 SSIで以下のスクリプトを呼ぶ。 print "Content-type: text/plain\n\n".$ENV{"REMOTE_HOST"};
150 :
名無しさん :2000/06/17(土) 16:33
151 :
名無しさん :2000/06/17(土) 17:06
最小の機能って言っても…。 表示は1ページか複数ページか、ログ保存数は無制限/制限ありなのか、 入力欄はタイトル・名前・URL・メルアド・コメントなどどこまで必要なのか、 最大文字数、タグ入力、連続投稿等のセキュリティ関係はどうでもいいのか、 削除キーは要らんというが管理者削除も要らないのか…。 もうちょい「最小限」について詳しく書いてください。 とりあえず最低BBS↓。 #!/usr/local/bin/perl read STDIN@` $query@` $ENV{CONTENT_LENGTH}; foreach( split /&/@` $query ) { ( $key@` $value ) = split /=/; $value =~ tr/+/ /; $value =~ s/%([A-Fa-f0-9][A-Fa-f0-9])/pack("C"@` hex($1))/eg; last if $key eq 'comment'; } $value =~ s/[\r\n]+/<br>/g; $value .= "<hr>\n"; print "Content-Type: text/html\n\n"; print "<html><body>\n"; print "<form method=post action=\"test.cgi\">\n"; print "<textarea name=comment></textarea><br>\n"; print "<input type=submit value=submit></form>\n"; print $value; open LOG@` "+<bbs.log"; print reverse <LOG>; seek LOG@` 0@` 2; print LOG $value; close LOG; print "</body></html>\n";
153 :
151から152へのレス :2000/06/17(土) 19:58
>表示は1ページか複数ページか、ログ保存数は無制限/制限ありなのか、 1ページ、ログ保存は無制限 >入力欄はタイトル・名前・URL・メルアド・コメントなどどこまで必要なのか、 タイトル・名前・メルアド・ホームページアドレス・コメント >最大文字数、タグ入力、連続投稿等のセキュリティ関係はどうでもいいのか、 3つ対策しなくても良い >削除キーは要らんというが管理者削除も要らないのか…。 ログファイルを編集したらいりませんか?
154 :
名無しさん :2000/06/18(日) 03:16
age
155 :
>152 :2000/06/18(日) 13:59
それを、xxx.cgiとして実行したのですが、 なんかうまく行きません
156 :
種無しさん :2000/06/18(日) 16:44
>152 ファイル名をtest.cgiにするか、 print "<form method=post action=\"test.cgi\">\n"; の行の中のtest.cgiを好きなファイル名に置き換える
157 :
名無しさん :2000/06/18(日) 18:43
現在使用中のログファイル****.txt のパーミッションをブラウザ上から 変更したいんですけど、どうやったらいいんでしょうか? sub xxxxxx { chmod(0644@`****.txt); &header; print "<P><h3>完了</h3>\n"; print "</body></html>\n"; exit; } とやってもできないんですけど。
ファイルのパーミションを変更する場合、そのファイルが置いてあるディレク トリの書き込み権限が無いと失敗します。
159 :
名無しさん :2000/06/18(日) 21:10
>158さん ディレクトリは777にしているのですが。
160 :
名無しさん :2000/06/18(日) 21:28
chmod(0644@`"****.txt"); これでOKだと思います。
161 :
名無しさん :2000/06/18(日) 23:48
>これでOKだと思います。 sub xxxxxx { open(XXXX@`">****.txt") || &error("えらー"); close(XXXX); chmod(0606@`****.txt); &header; print "<P><h3>完了</h3>\n"; print "</body></html>\n"; exit; } のように新規ファイルを作成しての時はいいんですけど 使用中のログファイル****.txt を644とか600にしたい時に パーミッションが変わらないんです。
162 :
名無しさん :2000/06/19(月) 00:01
chmod(0644@`****.txt); と chmod(0644@`"****.txt"); ではperl的に意味が違うと言っているのですが、 そういう解釈ではありませんか?
163 :
名無しさん :2000/06/19(月) 01:50
minibbs v10形式で掲示板ログhtmlを自動作成するスクリプト お願いします。
164 :
名無しさん :2000/06/19(月) 02:02
>162さん >chmod(0644@`****.txt); と >chmod(0644@`"****.txt"); ではperl的に意味が違うと言っているのですが、 あ、そういう意味でしたか。すみません。 でも、両方試したつもりです。 $logfile = "****.txt"; chmod(0644@`"$logfile"); なども。 明日、もう一度試してみます。
165 :
名無しさん :2000/06/19(月) 08:32
半角カナが化けない様に改造したjcode.plってないでしょうか?
166 :
名無しさん :2000/06/19(月) 14:06
>>165 理論上、完全に防ぐことはできません。HTML 4.01 から使えるようになった
accept-charset 属性をサポートするUAが普及するのを待ちましょう。:-)
168 :
改造くん :2000/06/20(火) 16:36
169 :
名無しさん :2000/06/23(金) 05:01
170 :
名無しさん :2000/06/27(火) 02:56
うまく伝えられるかわからないですが、次のようなことはできますか? 掲示板で書き込みボタン ↓ ロックをかける ↓ 書き込み成功 ↓ 記事を表示。初期画面 ↓ まだロックをかけてる ↓この間10秒くらい ロックを解除 ようするに誰かが書き込みボタンを押すと、他の人は10秒間ほど書き込みできなくしたい。 ということです。
171 :
名無しさん :2000/06/27(火) 04:43
ファイルの更新時間を見て遅延ロック状態か判断すればいいよ。
172 :
はーい先生! :2000/06/28(水) 15:44
フォームメールcgiにCc:やBcc:を加えるにはどこらへんに何を追加したらいいんでしょう? 例えばレスキューのform2mailとかで具体的にonegaisimasu...
173 :
>172 :2000/06/28(水) 15:54
form2mailは知らないけど、 print MAIL "From: $mail\n"; となってるところに入れれば良いんじゃない?
174 :
172 :2000/06/28(水) 15:56
175 :
と思ったら... :2000/06/28(水) 16:20
form2mailは存在しました。マルチパート機能付きとして・・ まあでも、要点の箇所は変わらないみたいですが >173さん 2回プリントさせればいいということ? すみませんがいまいちわかりません。
176 :
173>174 :2000/06/28(水) 16:22
print OUT "To: $mailto\n"; print OUT "From: $email\n"; この辺。
177 :
>175 :2000/06/28(水) 16:24
print OUT "Cc: $cc_string\n"; とか。
178 :
>177 :2000/06/28(水) 16:36
あっ、そういうことなんですか! オンタイムで、ありがとうございます!!
179 :
KY-VIEW enterprise :2000/06/28(水) 21:59
KY-VIEW enterpriseに書き込みがあったら指定のアドレスにメールする機能を追加できませんか?
180 :
>179 :2000/06/28(水) 23:41
できます。
181 :
179 :2000/06/28(水) 23:54
>180 すいません、教えていただけないでしょうか。
182 :
180じゃないけど :2000/06/29(木) 13:51
183 :
179 :2000/06/29(木) 14:50
>182 いまいち判らないです… 他板への具体的な導入例があればなんとか。
184 :
名無しさん :2000/06/29(木) 16:36
enterpriseはライブラリが暗号化されてるので、改造は困難。 megalopolisならなんとかなるとは思うけど。
185 :
179 :2000/06/29(木) 20:54
>184 じゃあ180は凄いんですね。 megalopolisは根本的に違うんですか? >180 他力本願ですが改造方法希望ですー
186 :
名無しさん :2000/06/30(金) 11:08
187 :
>186 :2000/06/30(金) 13:25
暇だったから改造した。 アップ場所をくれたらアップするよ。
早速のレスありがとうございます!>186さん
ID lanbanhfe pass 1011lik
host www.acmecity.com
[email protected] よければ上のすて垢かメールで頂けると助かります。
187さんの間違え(^-^;
190 :
>11〜14さんへ :2000/07/01(土) 10:48
6さんではないですが、私もちょうど 同様の自動登録CGIが欲しかったんで たいへん感謝しています。 ありがとうございました。 ところで話は変わりますが、11〜14で改造した スクリプトをウチで配布したいと思っているんですが、 よろしいでしょうか? 改造後、同CGIを 知り合い連中に試しに見せたら 「俺も欲しい」と言われ、「ここ見て改造しろ」 とこのスレッドのアドレスを渡したんですが 「わからない」って言われちゃったもんで。 ずうずうしいお願いですが、なにとぞよろしくお願いします。 (もちろんあなたから許可貰った後にKENTさんにも申請します)
191 :
>188 :2000/07/01(土) 11:16
アップして置いたよ。 バグがあったら自分で直してね。
本当にありがとうございました。 無事設置でき、ちゃんと動作していますm(_ _)m
>190 あー、懐かしいな。いいですよ。 私かどうか判断しづらいだろうと思いますが、私です。
>yooさん ありがとうございます。 ところで配る際は、CGIの下の方に ”Arranged by yoo”と 書き込んだ方が良いでしょうかね?
195 :
名無しさん :2000/07/02(日) 06:13
197 :
190 :2000/07/02(日) 06:24
>yooさん 了解。それでは次はKENTの方に 再配布の許可申請をしてきます。 ありがとうございました。
198 :
名無しさん :2000/07/02(日) 07:34
>195 ブラウザ情報はは JavaScript ばかり使ってるので忘れちゃった。 1) 「###############下記の項目は、無制限に追加出来ます。#################」の下に 次の1行。 $host = $ENV{'REMOTE_HOST'} || $ENV{'REMOTE_ADDR'}; 2) 氏名: $name を 氏名: $name ($host) に。 3) スクリプトの最後に次の塊を追加。 sub keikoku { print "Content-type: text/html\n\n"; print '<html><head><title>Error</title></head>'; print '<body bgcolor="#ff0000" text="#00ffff">'; print "<p><big>$messe</big><br> 戻って修正してください。 </p></body></html>"; exit; } 4) 「####下記の住所、氏名、TEL、FAXは、」の上に if($name eq ''){$messe = 'それじゃ名無しさんですよ。。。'; &keikoku;} if($nennrei =~ /\D/){$messe = '年齢が変ですよ。。。'; &keikoku;} のように追加する。 上は $name が空っぽだったら、下は $nennrei に半角数字以外が書き込まれていたら。
199 :
名無しさん :2000/07/02(日) 08:29
200 :
名無しさん :2000/07/02(日) 09:21
198さん ありがとうございます。 早々ためしてみます
201 :
StVt :2000/07/02(日) 09:48
kent webのプチボード(
http://www.kent-web.com/ )で
レスを最新30件まで表示させたいんですが上手くいきません。
この辺りを変えればよいと思うのですが、、
## レスメッセージを表示
# レス記事はレス順につけるため配列を逆順にする
@lines = reverse(@lines);
$flag = 0;
foreach $line (@lines) {
($rnum@`$rk@`$rd@`$rname@`$rem@`
$rsub@`$rcom@`$rurl@`$rho@`$rp@`$rc) = split(/<>/@` $line);
if ($num eq "$rk") {
if ($flag == 0) { print "<hr width=95% size=1>\n"; $flag=1; }
# 自動リンク
if ($autolink) { &auto_link($rcom); }
print "<table border=0 width=100% cellspacing=0><tr>\n";
print "<td><font color=$rc><b><BASEFONT size=\"2\">";
print "$rname</b> > $rcom ";
print "<small>($rd)</small></font></td></tr></table>\n";
}
}
202 :
名無しさん :2000/07/02(日) 18:25
>201 > レスを最新30件まで表示させたい 現在の状態がわからないんだけど、例えば10件までならば その制限しているところをいいればいいんじゃないかな。
203 :
StVt :2000/07/02(日) 22:38
すいません、どうしたら良いのか解らないです。 プチボードを普通に使っていると、レスが100件くらい ついた場合に長すぎて困るんです。 最初の辺りで$count=30;といれて print "$rname</b> > $rcom "; の辺りに$count--; と入れたとして、$countが0になったときにどんな処理をしたら いいんでしょうか?というか根本的に間違っているのかなぁ
204 :
202 :2000/07/02(日) 23:46
はぁ、無制限なのか‥‥。petitの設計が根本的に間違っているような。 30に制限したとして「レスを全部読む」もつけないと不便じゃない?
205 :
StVt :2000/07/03(月) 01:24
トップページに組み込んであるので、「レスを全部読む」を したい時には本来の掲示板URLをリンクすればOKです。 えと if($count<0){exit;} とやったらそこで止まってしまいました。あうあう
つーか100件もレスすんなよ(笑
Petit v4.5+ (レスの表示数を制限するバージョン ) とりあえず、これで行けるんじゃないかな。 1)218行目からの2行を次の3行に。 # レス記事はレス順につけるため配列を逆順にする @slines = @lines; @lines = reverse(@lines); 2)346行目からの17行を次の16行に。 ## レスメッセージを表示 foreach $line (@slines) { ($rnum@`$rk@`$rd@`$rname@`$rem@` $rsub@`$rcom@`$rurl@`$rho@`$rp@`$rc) = split(/<>/@` $line); if ($num eq "$rk") { $rescnt["$rk"]++; if ($rescnt["$rk"] <= 30) { #ここの数字がレス表示件数の上限 # 自動リンク if ($autolink) { &auto_link($rcom); } $reshtml["$rk"] = "<table border=0 width=100% cellspacing=0><tr> <td><font color=$rc><b>$rname</b> > $rcom <small>($rd)</small></font></td></tr></table>\n".$reshtml["$rk"]; } } } print '<P><hr width="95%" size="1">'.$reshtml["$num"];
208 :
StVt :2000/07/03(月) 13:00
どういう処理なのかはっきりとは解りませんが、とりあえず出来ました。 ありがとうございます。自分のレベルの低さを改めて実感しました。 勉強して出直して来る事にします。ありがとー
211 :
>210 :2000/07/03(月) 20:26
212 :
>210 :2000/07/04(火) 11:26
返信は元投稿に従属させるのか?
213 :
名無しさん :2000/07/04(火) 11:52
>209 げっ!と思ったけど意外とシンプルにできました。 これで分かってくれそうだからちょっと簡単に書きますね。 326行目 sub writelog 中の「}elsif($mode eq 'a'){」の 'a'@`'b'@`'c' が3択それぞれの処理。 これらは 360@` 371@` 382 行目からになります。 それぞれ6行下にこの部分があります。 push(@newdatas@`"$no \' $ques \' $typea \' $ansa \' $typeb \' $ansb \' $typec \' $ansc \' $r_host") }else{ push(@newdatas@`$data); これを unshift(@newdatas@`"$no \' $ques \' $typea \' $ansa \' $typeb \' $ansb \' $typec \' $ansc \' $r_host") }else{ push(@newdatas@`$data); に変えます。push は後ろに追加、unshift は前に追加です。ログの前に追加なので上がります。 後ろに追加だったら順番が変わるよ? という突っ込みに備えて…。 ログを上の行から順番に繰り返し処理していく最中の出来事なので後ろに追加するということは即ちそのままの順番で書き込むことになるんです。 3問作って自分で答えたり削除したりしてさびしく試しました。ハハハ。 問題はないと思います。
>返信は元投稿に従属させるのか? 従属・・とは? ああ、もちろん元投稿とおなじ(スレッドみたいに) ところにRESできるといいです。 >画像掲示板でそういったデザインの奴なら 実はすでに使ってます(笑)<MINIBBS-EX
おお! >213 ありがとう! なんか、すごくうれしいです。改造した、実感を味わえました。 見事にあがってくれましたよー。 これがまた、2chみたく、スレッドをあげるか、さげるかの 指定ってなると難しいんでしょうね(笑) 私もPERLを学ぼう..
217 :
名無しさん :2000/07/04(火) 19:13
218 :
213 :2000/07/04(火) 22:02
>215 新しく設問を書き込むと問題が起きることが発覚! うー、不覚。深く反省。 ゴメンゴメン。ちょっと考えるので気長に待っててね。
219 :
213 :2000/07/04(火) 22:59
「ログが順番になっている」ということにずいぶん依存しているみたい…。 管理者モードも結構つらい事になってます。 鬱だ、氏の・・・ いや、もう一度悩んでみますね。
220 :
え〜と :2000/07/05(水) 00:01
特定のURLから来た人をerr.htmに飛ばすにはどうしたら良いでしょうか?
あ。ほんとだ問題がありますね。。 元に戻さないと.. これはやられた。。(T_T)
先ほどのレビュー板なんですが、 2chみたいに記事に番号つけることって、 難しいんでしょうか? これがないので、今、 >128 RES みたいなresの仕方ができなくて非常に不便です。 >2個↑ とかこんなカンジでRESさせてます(笑)
225 :
ちょっと趣旨が違いますが :2000/07/05(水) 05:43
220さんに便乗ですが、htmlのままで特定のURLからきた人を 違うページに飛ばすことはできますか?
SSIを使って、<META HTTP-EQUIV="Reflesh" CONTENT="..."> を吐き出すとか、JavaScript を使ってみるとか、自分が管理しているサーバなら Apache の設定ファイルをいじってみるとか。
227 :
名無しさん :2000/07/05(水) 06:49
229 :
225 :2000/07/05(水) 18:26
>japuさん 素早いレスありがとうございます。 レンタルサーバなのでApacheをいじるわけにはいかないので SSIとJavaScriptを使ってやってみます。
230 :
名無しさん :2000/07/06(木) 02:49
htmlファイルのヘッダーにはどんなものがあるんですか? Content-Type: くらいしかしりません。
231 :
名無しさん :2000/07/06(木) 02:53
Location
232 :
名無しさん :2000/07/06(木) 11:33
自分のHPに訪問者が着たらメールで誰かがきたことを知らせてくれるように カウンターを改造できないですか?
233 :
名無しさん :2000/07/06(木) 11:35
カウンターが回る度にメールで知らせてくれる 用にカウンターを改造できないですか?
できます。 あなたのFTPサーバーのIP、PASS、それにどこに設置すればいいかを ここに書き込んでください。
235 :
名無しさん :2000/07/06(木) 15:54
設置場所はcgi-binフォルダの中です。 IP、PASSは教える必要ないでしょ。
あ、あの・・・しつこくてスイマセンが、レスが無いという事は無理なんでしょうか?
237 :
名無しさん :2000/07/06(木) 23:24
金を払えば可能なんだろう。 でも無料でやってほしいんなら待つしかない。
>217 無理じゃないよ。 変更の入り口で「登録者パスワードと一致しなければはねる」という処理を 「登録者パスワードと一致もしくは管理者パスワードと一致しなければ」 に変えればいい。管理者がいじったときに同時に登録者がいじった場合に 問題が起きるかも。ここまで細かくスクリプトを読んでいないのでわからないけど そうなった場合に事故としてあきらめられるのかな。
239 :
パーラー小池 :2000/07/07(金) 02:39
電波じゃなさそうなのでレポート書きの息抜きにソース見てみたよ…。 sub passwd_decode{ というとこを sub passwd_decode{ if( $pwd eq $pass ){ $check = "yes"; return; } に変えてみれば、ユーザの編集画面で管理パスを入力すれば 編集できそうです。曲がりなりにもロックはしてるみたいなんで 衝突は起きない…かなぁ。 # $pw と $pwd が全く違う役割で、両方グローバル変数。 # こんなソース良く人に見せられるな…。すげぇ疲れた。
241 :
あうあうあ〜 :2000/07/07(金) 05:06
index.cgi で読み込んだ人と index.cgi?2 で読み込んだ人に違う処理を返したいんですが どうしたら良いでしょうか?
>239 > すげぇ疲れた。 でしょ。
243 :
たぶん :2000/07/07(金) 05:13
>241 if ($ENV{'QUERY_STRING'} eq 2) { &chigau_syori; }
そういえば何を改造したのか全く書いてなかった。 239 > 217 です。
ありがとうございました。お手間をかけてスイマセンでした。
247 :
190 > yooさんへ :2000/07/08(土) 21:55
>”新着情報”の所にバナーが表示されないのです。 あ、トラブルではなくて仕様です。簡単に何とかなりますよ。そちらに行きますね。
助かりました。どうもです。
250 :
うー。 :2000/07/10(月) 13:21
251 :
143 :2000/07/13(木) 04:48
ですが、やっぱり無理ですかね……
252 :
名無しさん :2000/07/13(木) 05:38
>143 ちょいソース見てみるべな
253 :
名無しさん :2000/07/13(木) 06:23
>143 sub log_viewのとこで 23:00-24:00の時間帯は、$logfileを 例えば$todayfileにコピーするようにすればいいのでは? そうすれば、24:00からは次の日の23:00までは $todayfileが過去ログとして残ると思うが・・・ダメか? コーディングは、自分でやってみてよ! まぁ、1時間もチャットのログ表示する度にコピーするのは 無駄が多いとは思うが
254 :
名無しさん :2000/07/13(木) 08:28
>250 YahooだとかINFOSEEKの検索フォームをコピーしてきて、 サイト内全文検索フォームの検索結果に挿入。 それが表示されるときに検索された検索語句を コピーしてきた検索フォームの検索語句フィールド中に 挿入させる、というのでできそうだけど。
255 :
yybbsで :2000/07/24(月) 11:41
256 :
ネイル :2000/07/25(火) 22:18
COSMO−NAVIなのですけど、検索した時に 表示させる件数を設定したいのですけど どうやったらいいのでしょうか?
$post_time に投稿時刻が入ってたら if( $post_time - time <= 86400 ){ print qq|<img src="new.gif">|; } とか、$comment にコメントが入ってたら(行の終わりが <br> になってると仮定して) $comment =~ s/^((>|>).*?)(?=<br>)/<font color="$quote_color">$1</font>/ig; $comment =~ s/<br>((>|>).*?)(?=<br>)/<br><font color="$quote_color">$1</font>/ig; とかかな? kentんとこのCGIの改造はこのスレで一回やって懲りたんで、 氏んでもやりたく無い。自分でやってください。 ごめん。
258 :
255>257 :2000/07/26(水) 11:10
素早い対応ありがとうございました。 早速TRYしてみます。
$comment =~ のとこに </font> があるけど、<\/font> とやらないとエラーです。 あと最後の行の色変えが上手くいかないです。すまぬ。 ログに入ってるのは <br> 区切りだと思って書いたけど、本当は投稿時に $comment =~ s/^((>|>).*)$/<font color="$quote_color">$1<\/font>/mg; の方が楽だね…。
とりあえず、 $linesep = "<br>"; $comment = join $linesep@` map { s[^(^>.*)][<font color="green">$1</font>]; $_ } split /$linesep/o@` $comment; または、 1 while($comment =~ s[(^|<br>)(>.*?)(<br>.*)?$][$1<font color="green">$2</font>\n${\(defined $3? $3: "")}]g); という感じでしょうか。 あ、ソースは見ていないので257さんのコードを見てデータ形式を想像しています。
262 :
QQQ :2000/08/01(火) 14:35
掲示板を改造して直リンを出来なくするにはどうしたらいいんでしょうか?
263 :
名無しさん :2000/08/01(火) 16:44
アンカータグを取ればいいだけですが、それが何か?
264 :
名無しさん :2000/08/01(火) 16:49
>262 掲示板またはその中のスレッドへの直リン? URL自動リンクの掲示板に画像やMIDIへのURLを書き込んだときの直リン?
265 :
QQQ :2000/08/01(火) 22:25
掲示板への直リンです
(BBSにリンクしてる)自分のページのURLが
http://foo.com/bar/index.html なら、スクリプトの最初のほうに
if( $ENV{HTTP_REFERER} ne '
http://foo.com/bar/index.html ' ){
print "Content-Type: text/html\n\n";
print "<html><body>\n";
print "直リン禁止\n";
print "</body></html>\n";
exit;
}
とか。パターンマッチの方がいいかもしれないけど。
Refererを吐かないブラウザ・環境だと悪意のない利用者もBBS利用不能になるし、
やらない方がいいと思うよ。BBSの入り口でクッキー発行、っていう手もあるけど、これもクッキーoffだと
ダメだし。
何よりウザがられて荒らされ率は確実に上がる。
>265 ここのようにHTMLを生成する掲示板の場合は266さんの方法は使えないです。
265のような厨房にマジレスは不要かと
FYI: とりあえず、referer を調べて弾く方法は、SetEnvIf と deny from env=... の組合せで任意のファイルに対して可能。ただし、一般ユーザではダメ。 詳しくはApacheのマニュアル参照。
270 :
名無しさん :2000/08/02(水) 03:41
271 :
名無しさん :2000/08/02(水) 04:42
>270 タイトル一覧のところですよね?サンプル板のHTMLを見ただけですが、 hilight300.cgi?page_num=10&dir=log#958856212 のような表記をさせている箇所を hilight300.cgi?thp=958856212&dir=log のような表記をするように書き換えて、 <a href="〜" taeget="_blank"> でいけると思います。 ただし「記事を全部読む」がクリックできる状態のスレッドでないと何も表示されないですね。 これをできるように変更できないこともないとは思いますが、しんどそうです。
272 :
学級委員 :2000/08/02(水) 07:19
ハイライトついでに僕も質問していいでしょうか? 同じスクリプトを使ってるんですけど、スレッドのタイトルにスペースが 入っちゃうと、スレッド一覧のところにそれ以降が表示されないって言う 仕様?があるんですね。これを直すにはどうすれば良いんでしょうか。 例: 「ご飯食べたい」ならちゃんとスレッド一覧に「ご飯食べたい」 と表示されるんですが、 「ご飯 食べたい」という名前のスレッドにすると、上のスレッド一覧が 「ご飯」という名前になってそれ以降が表示されないんです。 製作者の方が最近サポート板に来られないんで困ってます。 お詳しい方よろしくお願いします!
275 :
名無しさん :2000/08/03(木) 03:16
age
276 :
名無しさん :2000/08/03(木) 04:20
>272 270のURLのサンプルで試しましたが、大丈夫でしたよ。 > 1ご飯 食べたい (1) 2 タイトルに ←tab ←日本語スペース ←ASCIIスペース (1) スレッド一覧で、sageでレスしたスレッドの番号(赤い数字)が 1になっちゃうバグがあるようですね。
277 :
k :2000/08/03(木) 11:47
278 :
kowa :2000/08/03(木) 13:06
>277
1つ忠告しておきます。
kent-webのyybbsはあまり評判が良くありません。
(データの構造や、メモリの使い方など・・・・)
私もおすすめしません。
また、あなたの作ったスレッド「掲示板にタイトル一覧」
http://tako.2ch.net/test/read.cgi?bbs=perl&key=965171887 を見て、あなたに勉強する気が見られませんでした。
ですので、既存の2CH方bbsを探してそれを使う事をおすすめします。
どうしてもと言われるのなら、perlやhtmlをもっと勉強してから出直して
下さい。
「掲示板にタイトル一覧」スレッドの7@`12@`17でした。
279 :
>278 :2000/08/03(木) 13:09
親切な奴だ。
280 :
kowa>279 :2000/08/03(木) 14:06
あんたなら、どう言う?
281 :
>280 :2000/08/03(木) 14:13
無視する。
282 :
kowa>281 :2000/08/03(木) 14:38
無視したら、他のもっと親切な人が犠牲になるのでは? (もっと親切な人がいるかどうかは不明だが) まぁ、いいや。今後は無視します。 つーことで、277は終了!!!!!!
283 :
名無しさん :2000/08/03(木) 19:57
284 :
名無しさん :2000/08/03(木) 20:07
minibbsあたりから移植したら?
.
286 :
学級委員 :2000/08/04(金) 21:29
276さん、ご親切にありがとうございます。 このバグ?は起きるときと起きないときがあるんです。 英語の半角文字なんかだとほぼ確実に起きるんですが… たとえば this is a pen だと this しか表示されなかったり。
287 :
名無しさん :2000/08/04(金) 23:07
288 :
名無しさん :2000/08/04(金) 23:39
設定のbodyタグにbackground入れればいいよ。
289 :
287 :2000/08/05(土) 08:30
$body = '<body bgcolor="#ffeedd">'; の部分ですか? 変更してみたのですが、上手くいきません・・・ どのように記述を変更すれば良いのでしょうか?
290 :
>289 :2000/08/05(土) 08:42
HTMLをまず勉強しましょう。
291 :
287 :2000/08/05(土) 09:34
解決しました。上手くいかなかったののはタイプミスでした。 288さん、ありがとうございました。
292 :
名無しさん :2000/08/05(土) 15:18
293 :
名無しさん :2000/08/05(土) 20:00
関係ないんですが パーミッションの設定ってサーバーによって違いますが それってどうやって皆さんわかるんですか? ほんと初心者質問ですいません
294 :
ぴょん基地 :2000/08/05(土) 21:25
ls -l
295 :
名無しさん :2000/08/06(日) 01:14
>>292 試しに.htaccessに
ErrorDocument 404 index.html
とか書いてみるとよろし
404のエラーが出る時どうなるか
よくサーバ引っ越した時に使う手
>292 ここは"CGI改造工房"スレッドでス。 "あなたの英文翻訳します"スレッドじゃあーりません
297 :
名無しさん :2000/08/06(日) 01:29
>295 書いたのですが、今までと変わりありません。 どうしたらいいのでしょう?
298 :
名無しさん :2000/08/06(日) 06:00
>297 .htaccess 使えないっていうオチ?
299 :
名無しさん :2000/08/06(日) 06:13
そのようだ(藁
300 :
にくく :2000/08/06(日) 06:29
>試しに.htaccessに >ErrorDocument 404 index.html >とか書いてみるとよろし >404のエラーが出る時どうなるか そんなもん、書いてもどうにもなんねーよ。 自分でそうやってみたのか? 知ったかぶりの厨房さん?(ワラ エラーメッセージ表示するhtmlファイルつくんなきゃ意味ねーだろ。 どうせやるなら、 ErrorDocument 401 /~hoge/error/error401.html ErrorDocument 403 /~hoge/error/error403.html ErrorDocument 404 /~hoge/error/error404.html ErrorDocument 500 /~hoge/error/error500.html とかって書いて、 error***.htmlのファイルを/errorとかのディレクトリ作って置いとく。 パスはサーバによってちがうからな。 それからまちがっても/~hoge/とかって、ホントに書くなよ (わら
301 :
名無しさん :2000/08/06(日) 07:40
hogeってアカウントなんかいいな(わら
302 :
猫娘。 :2000/08/06(日) 08:31
303 :
名無しさん :2000/08/06(日) 22:42
>300 ありがとう。変だと思ったら.htaccessのcを1個多く書いてたよ。 ダメ過ぎな自分が嫌になった…鬱だ。
あ、パス書き忘れたよ 鬱だ 氏に対
305 :
302 :2000/08/07(月) 06:13
ゆうiもーど→ゆiもーど の間違えです。スミマセンでした。。。
306 :
名無しさん :2000/08/07(月) 08:51
掲示板の背景やらタイトルやらをブラウザだけで変更出来るように 改造するのって、難しいでしょうか?
perl全然書けないなら厳しいと思う。 多少でも書けるならなんとか
>306 レンタル掲示板借りれば?(w
309 :
名無しさん :2000/08/09(水) 17:04
age
311 :
名無しさん :2000/08/09(水) 18:29
310です。間違ってsageが入ってしまいました。ごめんなさい。
312 :
>310 :2000/08/09(水) 22:11
313 :
名無しさん :2000/08/10(木) 00:03
>312様 ありがとうございます。私の説明不足で申し訳ございません。 実はメッセージフィールド($message)の中の書き込みで URLを張りつけた時に、リンク出来るようにしたいのですが、 やはり難しいのでしょうか?お手数お掛けしてすみません。
314 :
名無しさん :2000/08/10(木) 00:05
313は310です。重ね重ね失礼致しました。
315 :
どっちにしまショー? :2000/08/10(木) 19:09
316 :
どっちにしまショー? :2000/08/10(木) 19:19
レスには残りません。 ではなく、 レスのホストはログに残りません。 です。 すいません。
せめて本体ファイルくらいテキスト化してどこかにアップしたら? 回答者にわざわざDLまでさせるのかい?
318 :
どっちにしまショー? :2000/08/11(金) 04:13
319 :
名無しさん :2000/08/11(金) 04:54
320 :
サイトじゃないが>319 :2000/08/11(金) 05:09
とりあえずHTMLを勉強して <BODY BGCOLOR="#000000"> とかは <BODY BGCOLOR=\"\#000000\"> みたいに、アヤシゲな記号は全部エスケープ(\)しておけばヨシ!
321 :
319 :2000/08/12(土) 01:29
>320 とってもエグくなりました(T-T)
322 :
名無しさん :2000/08/12(土) 08:17
>>313 何か変な答えだけど、URLリンク機能を持った掲示板スクリプトを改造して、
投稿内容確認表示した結果をBBSのCGIにPOSTするとか・・・
323 :
名無しさん@そうだコミケに逝こう!! :2000/08/12(土) 09:09
ダブルクォートを含んだタグをprintするときは\でエスケープせずに print "<BODY BGCOLOR=\"#000000\">"; ↓ print qq(<BODY BGCOLOR="#000000">); にするのが吉。「qq();」は「"";」と等価。 こうすれば構文がスマートになるよん♪
それだけ。
325 :
名無しさん :2000/08/12(土) 11:53
ずっと上のほうで話題になってたけど 結果をHTMLで吐くBBSのところで 結果を全てprint すればよいと書いてあったんですけど 具体的にはどうすればよいのでしょうか?
326 :
325 :2000/08/12(土) 12:12
ちょっと説明不足みたいなんで 普通の*.cgiで排出される結果を*.htmlに排出する方法は どうすればよいのでしょうか?
327 :
名無しさん :2000/08/12(土) 13:10
SSI
328 :
名無しさん :2000/08/12(土) 15:02
httpd.confを書き換えて*.htmlの拡張子を実行するように設定してしまう
329 :
325 :2000/08/12(土) 16:01
>328 それはねぇ・・・ あとrescue.ne.jpのMiniDatabase v2.1で 登録***件中***件Hitしましたって出す方法ありますか?
330 :
名無しさん :2000/08/12(土) 22:25
age
331 :
名無しさん :2000/08/12(土) 22:26
> 329 簡易データベースってやつだよね? 方法は無くはないだろうけど 毎回無駄にすべてのデータを検索かけることになると思うよ。
332 :
329 :2000/08/12(土) 22:43
よくinfoseekとかでみる検索結果******件って出るのが やってみたいんです。 登録何件中はデータが何行あるか数えればよさそうだし。。
333 :
名無しさん :2000/08/12(土) 22:53
334 :
329 :2000/08/12(土) 23:56
>>333 動作めちゃ重い
scriptの設置(データベースの変数)も分かりにくかったし。
>>334 331での予告通りの改造です。対象は rescue.ne.jp 簡易データベース v2.1。
------------------
(1) 次の部分をとりあえずコピーしてスクリプトの最後にペースト。
foreach $num ($FF .. $#BASE) {
:
:(中略)
:
# 検索終了処理
if ($hit == $page) { $next_num = $num; last; }
else { push(@NEW@`$data2); $hit++; }
}
(2) 「foreach $num ($FF .. $#BASE) {」を「$kensu=0; foreach $num (0 .. $#BASE) {」に変更。
その前の行に「sub kensu {」を入れる。
(3) 「# 検索終了処理」から「}」までの最後の4行の部分を削除して「$kensu++;}}」と書く。
(4) 「#■検索処理」の後の「close(IN);」を「close(IN); &kensu;」に変更。
(5) 「#■検索結果」の後の「<h2>《検索結果》</h2>」を「<h2>《検索結果》</h2><p>$kensu hit</p>」に変更。
------------------
$page の件数に達したら停止する部分を除去したサブルーチンで検索させて件数を求めています。
先に言っておくけど「1/2/3/4/5」のリンクは面倒そうだからパス。
(5)のHTML出力デザインは改造が成功したのを確認してから変更してね。
336 :
329 :2000/08/13(日) 11:46
>>335 ありがと。でもよくやってくれるなぁ・・・
前から使ってるのでだいたいポイントは読めていたし、 実作業は確認含めて5分程度だったのでたいしたことないです。 時間がかかったのは投稿文の作成・・・。 高速軽量化の余地は多分にあります。 ヒントは「次のページ」のリンクに$kensuの値を含めて、 (4)の部分でフォームから渡された件数の値があるかどうかを見る、です。 ただし、こうすると「次のページ」をたどっている間に追加登録された データがあっても件数表示には反映されません。 実際問題としてあまり問題じゃないですがね。
338 :
名無しさん :2000/08/15(火) 05:27
339 :
338 :2000/08/15(火) 07:36
あ、出来ました出来ました。すいません。
>338 一応結果書いて欲しかったんですけど・・。
$name =~s/HOGEHOGE/"HOGEHOGE"/g; $name =~s/password/HOGEHOGE/g; ※2ちゃんねる形式
342 :
どっちにしまショー? :2000/08/16(水) 14:23
343 :
名無しさん :2000/08/17(木) 13:50
あげときます
344 :
名無しさん :2000/08/18(金) 00:30
345 :
名無しさん :2000/08/19(土) 13:05
またあげます
346 :
名無しさん :2000/08/19(土) 14:56
347 :
名無しさん :2000/08/19(土) 15:47
>どっちにしまショー (1)sub formdecode の最後に1行追加 : $ans =~ s/\r|\n//g; $ans .= "\t$ENV{REMOTE_HOST}"; # 追加 (2)「ログの表示」のところに2行追加 : @ansbs = split(/<>/@`$ansb); foreach (@ansas) { s/\t.*//; } #追加 foreach (@ansbs) { s/\t.*//; } #追加
回答してほしいならソースくらいテキスト化してどこかにアップしろよ… 最近こんなのばっかだな。
349 :
どっちにしまショー? :2000/08/19(土) 17:43
>347 ありがとうございます! おかげで助かりましたです。 トクトクはREMOTE_HOSTはダメなようですけどね(苦笑)
350 :
名無しさん :2000/08/19(土) 21:58
検索スクリプトを使ってるのですが、サーバーに負荷がかかりすぎる為、 PM11:00〜AM1:00までは使用禁止にしたいのです。 検索用スクリプトの最初にちょこっと書けばいいと思うのですが、 どんな風に書けばいいのでしょ?だれか教えて下さい。
351 :
名無しさん :2000/08/19(土) 22:19
時間を取得して、その間は「ただいま利用できません。」って書く。 やり方は、本でも見ませう。
HTMLを表示する直前で時間で分岐させればいいづら。
353 :
名無しさん :2000/08/20(日) 16:45
354 :
名無しさん :2000/08/20(日) 19:41
kentのyybbsのフェイザー対策版。欲しーー
355 :
名無しさん :2000/08/21(月) 15:27
KENTさんトコのアイコン掲示板を i-modeも対応して欲しいっす。
355はi-modeの事を何も知らないかネタかどちら?
357 :
名無しさん :2000/08/22(火) 09:09
358 :
名無しさん :2000/08/24(木) 16:19
age
{ my($hour) = (localtime(time))[2]; if ($hour > 22 or $hour < 2) { print "Content-type: text/html; charset=x-euc-jp\n\n"; print 'この時間は使えないですよん'; exit; } }
360 :
おち :2000/08/25(金) 12:24
教えてください 掲示板に書かれたURLから飛んでも 相手にURLのリンク元表示、リンクした 事が、わからなくする事は 出来ますか?スクリブス教えて下さい。
361 :
名無しさん :2000/08/25(金) 12:47
>360 それはどう考えても無理。 ハイパーリンクさせない用にすることは出来るが。
72?(w
>360 某掲示板とのマルチポストうぜぇよ。
364 :
おち :2000/08/25(金) 20:43
>363 ごめんなさい >361 出来ました 有難う御座いました
365 :
名無しさん :2000/08/25(金) 21:08
簡単ですけど、盛り上げるのはセンスがない人には難しいです
367 :
名無しさん :2000/08/25(金) 21:36
かなり古いレスの蒸し返しで申し訳ないのですが
>>37 >>38 のSSIを使ってhtmlへCGIを挿入し表示させる方法が
今一分からないのです。
&lt;!--#include file="hoge.cgi" --&gt;や&lt;!--#exec cgi="hoge.cgi" --&gt;
を使って、表示させることはできるのですが、
書き込んでSUBMITボタンを押してもhoge.cgiにジャンプするだけで
書き込みが反映されません。
(ジャンプ先からは書き込めるのですが)
html表示→CGI処理→書き込みを反映したhtml表示を可能にするにはどうしたら
いいんでしょうか?
書き込み処理後にprint"Location:
http://www.hoge.com/xxx.html\n\n ";を
挿入してCGI処理→html表示まではできたのですが・・・。
368 :
365 :2000/08/25(金) 23:09
366 そのセンスがあるって数名に いわれました
369 :
名無しさん :2000/08/26(土) 00:02
370 :
367 :2000/08/26(土) 01:28
371 :
名無しさん :2000/08/26(土) 02:01
>367 &lt;!--#include> などを使ってHTMLファイルにCGIの出力を表示させる意味は何? 普通に xxx.cgiにアクセスじゃダメなの?
372 :
367 :2000/08/26(土) 02:14
>371 ご意見ごもっともです。 とにかく技術的に興味があるのが一番です。 それに単純にユニークなレイアウトですし。 一つの手法として、一般的になっていないのは、やはり SSI+CGIでサーバーに余計な負荷がかかるからでしょうか? できれば教えて頂きたいです。 ちなみに、フレームからCGIを呼び出してみました。 それも結構重たかったのですが、それと同じ位重たくなるのでしょうか?
なんだ。 必要に迫られてってわけじゃないのね。 興味でやるのは構わないけど、そういった動機で人の手を煩わすのはどうかと思うわけです。 試行錯誤で頑張ろう。
374 :
367 :2000/08/26(土) 02:36
>373 最近、ここに出入りしだしたばかりなのでここのルールというのを よく知らないのですが、必要に迫られていないと聞いてはいけない のでしょうか?もしそうだとしたらお詫びします。 ただ、約1週間まえにこのテク?を知ってからあれやこれやと試して みましたが、さっぱり実現できず思いあまってお聞きしたというのが 実状なんです。なにかいいリファレンスでもあれば教えて頂きたいのですが、 それもダメですか?
375 :
ほういち :2000/08/26(土) 04:47
>374 状況がよく見えないんだけど・・・ともかくSSIを使って目的の 物をHTMLに表示させる事には成功したんだよね? で、そっからSUBMITを押すと意図した通りに動作しないという事かな? なら、確認なんだけどSSIはつまるところ、指定された内容を展開して HTMLに挿入してるだけだから、生成されたHTMLが正しいのかどうか 確認してみればいかがでしょう?submitボタンでcgiを呼ぶ時の 引数がおかしかったりしてないですか?
376 :
名無しさん :2000/08/26(土) 04:52
>興味でやるのは構わないけど、そういった動機で人の手を煩わすのはどうかと思うわけです。 君ここに何しに来てんの?(´ー`)
377 :
367 :2000/08/26(土) 07:24
>で、そっからSUBMITを押すと意図した通りに動作しないという事かな?
はい、その通りです。
>submitボタンでcgiを呼ぶ時の引数がおかしかったりしてないですか?
現在の設定では<FORM METHOD="POST" ACTION="hoge.cgi">にしています。
ちなみにxxx.htmlとhoge.cgiは同一ディレクトリに置いています。
説明不足ですみません。ちゃんとした説明になるかどうか分かりませんが
1.xxx.htmlのテーブルタグ内にはhoge.cgiが表示されています。
2.その際のSSIの記述は&lt;!--#include file="hoge.cgi" --&gt;または
&lt;!--#exec cgi="hoge.cgi" --&gt; です。
3.表示されているSUBMITボタンをおすと、xxx.htmlが表示された状態から
hoge.cgiのみが表示された状態に変わります。その際表示されるhoge.cgi
には、xxx.htmlが表示されている状態で書き込んだものは反映されていません。
ちなみに、リロードしても同様です。
4.hoge.cgiのみが表示されている状態でSUBMITボタンをおせば、正常に
書き込む事ができます。
5.そしてprint"Location:
http://www.hoge.com/xxx.html\n\n ";
によって、xxx.htmlに画面が切り替わります。
こんな感じで分かりますか?
378 :
367 :2000/08/26(土) 07:32
補足です。 hoge.cgiはBBSで 4は、hoge.cgiのみが表示されている状態で書き込んだ後 SUBMITボタンをおせば、正常に書き込めるという意味です。 私がやりたいことは、xxx.html内に表示されたhoge.cgiに書き込んで SUBMITボタンを押すと、画面上xxx.htmlがリロードされ、 その後表示されるxxx.htmlには書き込みが反映されるようにしたいのです。
379 :
名無しさん :2000/08/26(土) 08:55
3でSUBMIT押した時点でログファイルにはちゃんと書き込みされてるの? hoge.cgiに切り替わった時に反映されてるかは別としてログファイルのほうにね。
380 :
367 :2000/08/26(土) 09:14
>379 いえ、書き込まれていません。
381 :
名無しさん :2000/08/26(土) 09:50
hoge.cgiがリファラーをチェックしてるとか。 この場合はリファラーがxxx.htmlになって書き込めないんじゃないの?
382 :
367 :2000/08/26(土) 11:02
>381 ありがとうございます! リファラーのチェックを外したら動きました。 変な話ですが、感動してしまいました。 ついでといっては何なのですが、この場合の(htmlにcgiをインクルード させる場合)運用上の問題点についてお聞きしたいことがあります。 サーバー負荷の問題と、セキュリティの問題というのがあると思うのですが、 1.まずサーバー負荷の問題については、単純にhoge.cgiを呼び出した場合に 比べて、どの位変化するものなのでしょうか? 2.タグの無効化だけでは、やはりセキュリティ上未だ問題があるのでしょうか? 図々しいとは思いますが、出来れば教えて頂きたいです。
383 :
名無しさん :2000/08/26(土) 13:07
チャットの入室者状況だけを一つのページにまとめて 表示したいのですが、これってSSIでしょうか?
384 :
ほういち :2000/08/26(土) 17:35
>SSI includeで悩んでた人 おめでとう。よかったですね! 追加質問についてはちょっとわかりません。ただ、セキュリティの 件については、いろんなパターンがありますので、まずご自分で 調べた方がいいと思います。いずれにしても掲示板に書き込める ような量ではないと思います。(セキュリティのアドバイスは) >381 すごい!一発回答ですね。僕はポイントを思い切り外してました。 >383 SSIでもCGIでも実現できますよ。hoge.htmlの中にSSIで入室状況 の部分を挿入するか、cgiでhtmlごと書き出してやるかどちらでも 大丈夫と思います。(当然ですが、SSI単独では無理です。SSI+CGI で実現するようになります。)
385 :
384 :2000/08/26(土) 17:37
SSI includeって書いてしまった。恥かしい。 SSIはServer Side Includeの略だっつーの。と自分でつっこんどく。
386 :
383です :2000/08/26(土) 18:03
>384さん どうやってやるのか全くわからないので ほんと厚かましいのですがそういうのが勉強できる所は ないものでしょうか? 自分でSSI、CGIでさがしてみたのですがどうも 的を得ないもので・・
>ほういちさん、みなさん いろいろとレスありがとうございました。 セキュリティ関係は、時間をかけて勉強していきますね。
388 :
名無しさん :2000/08/27(日) 00:47
389 :
モルツ :2000/08/27(日) 01:41
http://www.osk.3web.ne.jp/~ryui/down/index.htm で紹介されているThe Show10で二重投票を禁止させるようにしたいのです。
このCGIは「○○とかけて××ととくそのこころは△△」
というものを投稿してもらい、そのネタに対して
面白ければ座布団をあげ、つまらなければ座布団をもっていくというものです。
方法としては「ネタ」を投稿した人のIPを記録。
そのネタに対して「投票」した人のIPを記録して
「ネタ」を投稿した人のIPといれかえていく。
そこで同じIPだったらエラーを出すというように
簡易的ではありますが、二重投票を禁止させたいのです。
ネタを投稿された人のIPを記録する方法までは
できたのですが、それ以降がどうやっていいかわかりません。
いちおうできたとこまで(1行加えただけですが)スクリプト
あげときますので、わかる方いらっしゃいましたらアドバイスください。
よろしくおねがいします。
http://buffy.acmecity.com/fang/463/show10.txt
390 :
CGIほしい :2000/08/30(水) 14:22
391 :
>390 :2000/08/30(水) 15:02
100万円なりー 納期は1ヶ月後。
392 :
>390 :2000/08/30(水) 15:10
俺なら10万で作ってやるけど、 お前には作ってやんない
393 :
名無しさん :2000/08/30(水) 15:22
んじゃおいらが90万円でうけおって 20万円で392に外注する
394 :
名無しさん :2000/08/30(水) 16:36
>393 大人ってずるいよ
>388 そこのサポートでつけてもらえばいいやん
396 :
名無しさん :2000/09/01(金) 02:03
既存の掲示板を、レンタルサービス用にすることは可能ですか? また、それをしようとした場合に、どの程度の知識があれば可能 でしょうか?
397 :
名無しさん :2000/09/01(金) 02:44
とりあえず、厨房共の厨房質問に延々と答えていける根気があればok(ワラ
398 :
名無しさん :2000/09/01(金) 03:31
397に激しく同意。 ソース配布もそうだけどいつもにこにこスマイル。 自分なら発狂するだろな〜
399 :
名無しさん :2000/09/02(土) 19:30
ここにきているスンバラシイ方々。 kentのyyboardにスレッド一覧の付け方を 伝授してほしいっす まぢで。おねがいしまっす
400 :
名無しさん :2000/09/02(土) 23:06
>399 同じような質問を他のスレッドでもよく見かけますが…
だめじゃん(ワラ
っていうかyybbs使うのはもうやめよーよヽ(´ー`)ノ
>403 YYBBS使ってるやつは、初期設定のままが多いから 遊べるのよねん(わら なくなったら困るわ!
405 :
名無しさん :2000/09/05(火) 19:14
406 :
名無しさん :2000/09/05(火) 23:07
>405 それぐらい他のスクリプトを見ながらやりなさい。
407 :
名無しさん :2000/09/06(水) 01:33
>406 まあまあ。ここはそういうスレなんだから。 でもUpload Board - Version 0.06のソースがアプされないと どうしようもないね。
408 :
:2000/09/06(水) 01:40
>>404 っていうか、こっそりいろんなレンタル鯖でKENTのスクリプトを
検索してみて分かったことは、yybbsとか、設置されてるだけで
実質的に使われていないところが異常に多い。だから
遊べるところ探すのは難しい。めんどくさい
>>404 >なくなったら困るわ!
NotFoundはいやづら。。。
410 :
名無しさん :2000/09/06(水) 12:16
411 :
名無しさん :2000/09/06(水) 12:45
index.cgi の getcookie って関数で $histry って グローバる変数(TTに代入してますな 表示してるのは index.cgi の nyuusitu って関数だね そこ消せばOKです しかしアレなソースですな
412 :
405 :2000/09/06(水) 18:43
>406 当方のをアプしていいんでしょうかね?
413 :
410 :2000/09/06(水) 20:50
>411さん レスありがとうございます、早速開いて見たのですがそのnyuusituという のが発見できませんでした。 できればもう少し詳しく(何行目から何行目までの〜〜を削除すればOKとか) 教えていただけないでしょうか? すいません。
414 :
名無しさん :2000/09/06(水) 21:42
411はもう413の相手しないほうが幸せになれるに一票
エディタやページャの検索機能とか使えないのか?
416 :
名無しさん :2000/09/06(水) 23:26
「メモ帳の Ctrl+F さえ使えない」に一瓢
メモ帳にもあるでしょ。<検索機能
418 :
名無しさん :2000/09/06(水) 23:31
プラットフォームもブラウザーも問わず、 いかなるファイルでもアップすることが出来るCGIが欲しいです。 色々検索して試してみたのですがよけいな機能が付いているのと、 ブラウザーによってはアップできないファイルがあったりと、 しっくりくる物が見あたりません。 どなたか情報をお願いします。
かぶった(;´Д`)
420 :
410 :2000/09/07(木) 08:37
ありました、検索機能なんて便利な機能があったんですね。 で発見できたのですが、その文字だけを消せばいいってことですか? それてもその列全部消しちゃうとか? なんか質問ばかりですいません。
421 :
名無しさん :2000/09/11(月) 18:21
422 :
名無しさん :2000/09/11(月) 19:47
コードを改造するまでもなく、$start_color と $end_color を 同じ色にすればいいだけだと思うが
423 :
421 :2000/09/11(月) 21:31
ブラウザのソース表示とかログファイルが 読みにくくなるのです。 ブラウザのソース表示の場合ばタグが人文字毎に 入って、読みづらく成ります。
グラデーションなんて一般的とは思えない機能なんだし普通のを探したほうが速いと思ったり。
425 :
名無しさん :2000/09/12(火) 00:46
しかも423を見ると十分修正すべきとこがわかってるようで それなら自分でできると思うが
426 :
( ´∀`)さん :2000/09/12(火) 20:04
>>421 -425
421は目的がわかっても、実行するスキルがなく
ここに書き込んでみた初級者と見た
しょーがねーな、安直なやりかただが 153行目からのforeach{}の中を foreach $log (@logs) { ($no@`$start_color@`$ender_color@`$text) = split(/<>/@`$log); print "<INPUT TYPE=\"checkbox\" NAME=\"del\" VALUE=\"$no\"> \n"; $text =~s/\n$//; print "$text<BR>\n"; } に変えてみろ。 機能を増やすならともかく、減らすのは簡単、 でも別なの探したほうがいいと思うが
428 :
421 :2000/09/13(水) 11:47
>>421 -427
427さんの言われる通りにしました。
ソース表示が読みやすくなりました。
グラデーションの設定部分はHTML部で
それらしいのを削除したらできました。
ありがとうございました。
429 :
名無しさん :2000/09/13(水) 15:03
<<質問です、すいません>> HTMLファイルのホームページに掲示板を“埋め込む”(HTMLのページに 掲示板のように入力フォームから書き込まれた内容をその都度反映させる) ことって可能なのでしょうか? まあ掲示板のcgiスクリプトに文章なりタグなりを直に書きこんでしまえば 良いのですが、それだとページを更新するさいにはcgiファイルそのものを 書き換えなければならないですよね。 わたしが考えているのは、スキンで掲示板のレイアウトを変更できるタイプの 掲示板で、かつHTMLファイルとして出力するタイプの掲示板スクリプトを つかう方法です。これだとスキンを書き換える事でcgiそのものをいじらずに 更新することが出来そうなきがします。 他によい方法があったらご教授下さい。
430 :
むぎ茶 :2000/09/13(水) 15:08
ないよ
がんばってね(はぁと)
432 :
名無しさん :2000/09/13(水) 20:54
429の日本語が凄く読みづらいのは俺だけなのだろうか。
433 :
名無しさん :2000/09/14(木) 00:07
そのサイトなんか電波入ってるンですけど・・・ ダウンロードしようとしたら名前とか入力求められましたよ んでソースに↓の文字列が入ってるんですが・・・ ..::it::.. ..::isjustanaliasofmine::.. ..::youknowbutyoumustnoticeitkeepsmycopy::.. ..::rightswhichisthereferenceobjecttomyownrealexistence!::.. !!youcantexploitme!! !!Killing Lemon!!
435 :
むぎ茶 :2000/09/14(木) 01:25
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619; &#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619; &#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9617;&#9618;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619; &#9619;&#9617;&#9617;&#9617;&#9617;&#9617;&#9617;&#9618;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9617;&#9618;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619; &#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9617;&#9617;&#9617;&#9617;&#9617;&#9617;&#9617;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619; &#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9617;&#9617;&#9618;&#9619;&#9619;&#9619; &#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9617;&#9618;&#9619;&#9619;&#9619; &#9619;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619; &#9619;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619; &#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619; &#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619; &#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Λ_Λ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( ´∀`)< オマエモナー ( ) \__________ | | | (__)_)
∧⊂ヽ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (゚Д゚)ノ < コピペうぜえ | ⊃| \________ | | ⊂ノ〜 ∪
>>432 私も。
そもそもスキンじゃなくてテンプレートだろ、とか思った。
これだけじゃアレなので。
そんなのPOSTされた内容に応じてHTMLファイルを出力して
Locationで飛ばせばいいだけじゃ?とか思ったり。
昔作ったけど バグがあるから、そのまま放置してる・・・・
440 :
名無しさん :2000/09/14(木) 21:05
http://around.tripod.co.jp/ ここのエーラウンドにて配布されている
2ちゃんねる型掲示板についてなのですが、
普通名前の欄に何も書かないで投稿すると
「名無しさん」等の名前が代わりに表示されてしまいます。
名前欄に何も書かないで投稿すると投稿を弾くようには
出来ないのでしょうか?
2chのような大きな掲示板サイトなら「名無しさん」機能は
必要だとは思うのですが、個人で使う掲示板にこの機能があると
もし「名無しさん」で投稿された際に誰が投稿したか
全く判らないので凄く不安なのです。
どうか宜しくお願いします。
ちなみに「2CHTYPE_2143.LZH」と言う物を使用しております。
441 :
名無しさん :2000/09/14(木) 21:51
>>440 初歩の初歩レベルで改造可能と思います。
そのスクリプトは見た事ないからなんとも言えないですが、
フォームの本文部分に何も入れずに送信しようとしたらエラーに
なるような処理があると思います。
それを参考にしたらすぐ改造できますよ。
>441 具体的にここに書いて頂けませんか? そのままコピペして利用したいです。
443 :
むぎ茶 :2000/09/14(木) 23:54
↑ あほ。
$name ||= $ENV{'REMOTE_HOST'};
445 :
名無しさん :2000/09/15(金) 00:16
441さんじゃないけれど… aska.cgiの341〜343行目に $name = $FORM{'name'}; if ($name eq "") { $name = "$nanashi"; } if($name ne substr($name@`0@`40)){ &error("長い名前では投稿できません"@`"no"); } ってのがあって、342行目の「 if ($name eq "") { $name = "$nanashi"; } 」で 名前の欄が空白のときに、aska.cgiの最初で設定している$nanashiの文字に 置き換えているので、343行目の名前が長すぎるときにエラーにしてるのを 参考にいじればできるよ。
446 :
440 :2000/09/15(金) 00:52
441さん、444さん、445さん、レス有難う御座います!! プログラムは全くやった事が無いのですが、 早速341〜343行目を周りのプログラムを見て一番それっぽく 以下のように書き換えてみましたがこれでいけますでしょうか? ━━━━━━━━━━━━━━━━━━━━━━━━━ $name = $FORM{'name'}; if ($name eq "") { $name = "$nanashi"; } if($name ne substr($name@`0@`40)){ &error("長い名前では投稿できません"@`"no"); } ━━━━━━━━━━━━↓━━━━━━━━━━━━ $name = $FORM{'name'}; if ($name eq "") { &error("名前を入力してください"@`"no"); } if($name ne substr($name@`0@`40)){ &error("長い名前では投稿できません"@`"no"); } ━━━━━━━━━━━━━━━━━━━━━━━━━ それと、444さんの書いている $name ||= $ENV{'REMOTE_HOST'}; と言うのは名前の表示部分にリモートホストを表示すると言う事なのでしょうか? 無知なばかりに質問だらけですいません。 これを機に本屋に行ってCGIの本を買ってきます・・・
>446 sub error がどうなってるかわからないから確証は無いけど書式としてはあってるよ。 バックアップ取って例してみ。 444はネタなので無視すべし
448 :
441 :2000/09/15(金) 03:39
447さんのおっしゃる通り多分大丈夫だと思います。 444の件ですが、単純にネタかもしれないけど、もしかしたら、 >もし「名無しさん」で投稿された際に誰が投稿したか >全く判らないので凄く不安なのです。 という事だったので 「なら、名前が入ってなかったらリモートホストを表示すれば、 誰が投稿したか見当がつくんでは?(小規模掲示板だから)」 っていう事の示唆だったのかもしれません。
深読みしすぎ(笑)
450 :
むぎ茶 :2000/09/15(金) 06:29
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619; &#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619; &#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9617;&#9618;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619; &#9619;&#9617;&#9617;&#9617;&#9617;&#9617;&#9617;&#9618;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9617;&#9618;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619; &#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9617;&#9617;&#9617;&#9617;&#9617;&#9617;&#9617;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619; &#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9617;&#9617;&#9618;&#9619;&#9619;&#9619; &#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9617;&#9618;&#9619;&#9619;&#9619; &#9619;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619; &#9619;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619; &#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619; &#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9617;&#9618;&#9619;&#9619;&#9619; &#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
451 :
弐ch編者 :2000/09/17(日) 19:00
>341 それだとキャップ者がおおくなると処理重くなるから (毎回100個キャップあったら100回置換するから) キャップパスがファイル名の中身が名前のファイルを作って キャップパスに#とかつけさせて(メールに指定させたり やったほうがいいよ 2ちゃんもこんなかんじだったとおもう(うちも
452 :
名無しさん :2000/09/17(日) 21:34
投稿数がよほど多くなければそんな実装するだけ無駄。 スクリプトの都合を利用者に押し付けるとパスぱらし等 余計な手間が増えるだけ。
453 :
名無しさん :2000/09/18(月) 20:08
はじめまして。 あの掲示板の改造の仕方を教えてください。 2chみたいにレスが10個だけ表示されてあとはリンクを押すとすべてが表示されるみたいにするにはどうしたらいいのですか? どなたか教えてください。 よろしくおねがいします。
>あの掲示板の改造の仕方を教えてください。 「あの掲示板」ってなんですか? 日本語を小学校から勉強し直して出直しなさい。 あなたの脳みそじゃ6年みっちり掛かるだろうから、 以後6年間質問はしないように 以上
455 :
名無しさん :2000/09/18(月) 21:26
>454 「あの掲示板」は「あの」でしょう。 君は小学生以下の人格なので刑務所にいきましょう。 そんな人格だと社会に適応できませんよ。
「あの」については多分あんたの言い分が正しいでしょう。 しかし、だからといってそのことだけでただちに相手の人格を否定するようでは あなたの社会復帰は遠そうです。 せいぜい精神病院での療養に励んでください。
457 :
名無しさん :2000/09/19(火) 04:41
458 :
440 :2000/09/19(火) 07:28
最近何故かここに繋がらなく、返事が遅れてしまい 申し訳御座いません。 改造した2ちゃんねる型掲示板ですが、無事 動かすことに成功しました!! レスをくれた方々、本当に有難う御座いました。 >444さん なんと!アレはネタだったのですか、 私も441さんの仰る様、リモートホストで 投稿者を判断する事なのかと思っていました(^^;
459 :
名無しさん :2000/09/20(水) 20:11
460 :
名無しさん :2000/09/20(水) 22:59
>459 まずソースの拡張子を".txt"に変えたやつを どこかにアップロードしてね
461 :
名無しさん :2000/09/21(木) 07:48
死ね>460
462 :
名無しさん :2000/09/21(木) 08:18
何故?>461
459=461 全角くんはわかりやすいね。
464 :
初心者 :2000/09/24(日) 11:29
>464 まずソースの拡張子を".txt"に変えたやつを どこかにアップロードしてね
guest guest
467 :
464 :2000/09/24(日) 19:10
468 :
名無しさん :2000/09/24(日) 22:33
>467 以下のように改造して試してみてください。 ざっと見ただけなので動作がおかしいとこがあるかもです。 1. 359行を修正 print OUT "$FORM{'name'}\t[$color$sex</font>]\t$FORM{'mes'}\t$host\n"; ↓ print OUT "$FORM{'name'}\t[$color$sex</font>] $FORM{'juusho'} ($FORM{'nenrei'}才)\t$FORM{'mes'}\t$host\n"; 2. 263行と264行の間に追加 print "<th><input type=submit value=\"入室/利用状況確認\"></th>\n"; # 追加ここから @juusho = ('北海道'@` '青森'@` '鹿児島'@` '沖縄'); #←手抜き(w @nenrei = (0@` 15@` 18@` 21@` 24@` 35@` 60@` 100); print "<tr>\n"; print "<th>住所 <select name=\"juusho\">\n"; foreach (@juusho) { print "<option value=\"$_\">$_</option>\n"; } print "</select></th>\n"; print "<th>年齢 <select name=\"nenrei\">\n"; for ($i = 0; $i < @nenrei - 1; $i++) { $n = $nenrei[$i]."〜".($nenrei[$i+1]-1); print "<option value=\"$n\">$n</option>\n"; } print "</select></th></tr>\n"; # 追加ここまで &entry_file_in;
469 :
名無しさん :2000/09/28(木) 08:38
あげ
470 :
教えて君No.470 :2000/10/03(火) 04:44
471 :
教えて君No.470 :2000/10/03(火) 04:50
#◆記事(通常時)内容の文字サイズ(CSS設定) $span_size = 'small'; #◆記事(図表モード時)内容の文字サイズ(CSS設定) $pre_size = 'small'; の small を 10pt なり 20px なり xx-large なり x-small なりに書きかえると うまくいくかもしれませんね。
473 :
教えて君No.470 :2000/10/03(火) 06:07
>472さん レスありがとうございました。 >10pt 20px xx-large x-small これの中で最も小さいのはどれなのでしょうか? perlの知識は薄いもので・・・。
> perlの知識は薄いもので・・・。 (CSS は HTML です・・・)
475 :
教えて君No.470 :2000/10/03(火) 08:17
>474さん なるほどすみません。用語の知識も無いもので。
>これの中で最も小さいのはどれなのでしょうか? たった4種類のものを試行錯誤して自分の目で確認すれば済む事まで人に頼みますか…はぁ。
477 :
教えて君No.470 :2000/10/03(火) 11:17
>476 なるほど・・・。と反省して自分でやってみましたところ、 x-smallで上手くいきました。どうもありがとうございました。
478 :
>476 :2000/10/03(火) 14:22
11:52:22 nfo>winsock version 2.2
13:27:21 err>members.fortunecity.comが見つかりません
13:27:21 err>TCPIP error
14:02:53 suc>members.fortunecity.comが見つかりました
14:02:53 suc>members.fortunecity.com(204.198.135.20):80にconnect成功しました
14:02:53 rtn>サーバへリクエスト送信
14:02:53 cmd>GET /vidspool1/spoolmovie/Lexus_vicca_nakita.www.sexpool.net.mpeg HTTP/1.0
14:02:53 cmd>Host: members.fortunecity.com
14:02:53 cmd>Accept: */*
14:02:53 cmd>Accept-Encoding: gzip
14:02:53 cmd>Referer:
http://members.fortunecity.com/vidspool1/spoolmovie/index.html 14:02:53 cmd>User-Agent: Iria/1.06
14:02:53 cmd>Connection: close
14:02:53 rtn>サーバからのレスポンス
14:02:54 res>HTTP/1.1 200 OK
14:02:54 res>Date: Tue@` 03 Oct 2000 05:00:22 GMT
14:02:54 res>Server: Apache/1.3.9 (Unix)
14:02:54 res>Last-Modified: Sun@` 03 Sep 2000 00:29:58 GMT
14:02:55 res>ETag: "46b898-71b98c-39b19b86"
14:02:55 res>Accept-Ranges: bytes
14:02:55 res>Content-Length: 7453068
14:02:55 res>Connection: close
14:02:55 res>Content-Type: video/mpeg
14:05:14 err>socket error
14:05:14 nfo>members.fortunecity.comから切断します
14:05:20 suc>members.fortunecity.comが見つかりました
14:05:20 suc>members.fortunecity.com(204.198.135.20):80にconnect成功しました
14:05:20 rtn>サーバへリクエスト送信
14:05:20 cmd>GET /vidspool1/spoolmovie/Lexus_vicca_nakita.www.sexpool.net.mpeg HTTP/1.0
14:05:20 cmd>Host: members.fortunecity.com
14:05:20 cmd>Accept: */*
14:05:20 cmd>Accept-Encoding: gzip
14:05:20 cmd>Referer:
http://members.fortunecity.com/vidspool1/spoolmovie/index.html 14:05:20 cmd>User-Agent: Iria/1.06
14:05:20 cmd>Range: bytes=375440-
14:05:20 cmd>Connection: close
14:05:20 rtn>サーバからのレスポンス
14:05:21 res>HTTP/1.1 206 Partial Content
14:05:21 res>Date: Tue@` 03 Oct 2000 05:05:17 GMT
14:05:21 res>Server: Apache/1.3.9 (Unix)
14:05:22 res>Last-Modified: Sun@` 03 Sep 2000 00:29:58 GMT
479 :
>>476のバカへ :2000/10/03(火) 14:26
1: 名前:鍛冶屋のスミス 投稿日:2000/05/15(月) 15:07 「こういうふうにCGIを改造したいけどやりかたわかんないよー」 という人がいましたら→「ここで聞いてください。」← ひょっとしたらアドバイス出来るかもしれません。 なお、質問するときは 1)そのCGIのある場所(url必須!!!) 2)どんな風に改造して欲しいのか? (具体的にわかりやすく書く。HTMLで完成後のデザインを書いて指定してくれればなお良し) を必ず明記しよう。
480 :
名無しさん :2000/10/03(火) 18:11
>480 html.cgi に msg という名前の関数がありまして そこに下のような行を追加するとうまくいくかもしれません # $msg->[1] に記事の内容が入ってるようなので # 記事の内容をみて削除されているようなら日付のかわりにあぼ〜んと表示するだけです sub msg{ my $msg = shift; $msg->[2] = $INIT_defaultname if $msg->[2] eq ''; print qq|<br><b><font color="$INIT_resid_color">$msg->[0].</font></b>\n|; print ' <b>'; if( $msg->[3] ){ print qq|<a href="mailto:$msg->[3]">$msg->[2]</a>|; } else{ print $msg->[2] } print "</b>\n"; print ' 投稿日: '; if ($msg->[1] eq 'あぼ〜ん') { #<<< これを追加>>># print 'あぼ〜ん'; #<<< これを追加>>># } else { #<<< これを追加>>># # ( GMT + 32400sec = JST ) THANKS TO :Kenta my( $min@` $hour@` $day@` $month@` $year ) = (gmtime $msg->[4] + 32400)[1@`2@`3@`4@`5]; printf "%d/%d/%d %02d:%02d<br>\n"@` $month+1@` $day@` $year + 1900@` $hour@` $min; }#<<< これを追加>>># $msg->[1] =~ s/&lt;!--QC--&gt;/<font color="$INIT_quote_color">/g; $msg->[1] =~ s/&lt;!--MC--&gt;/<font color="$INIT_murmur_color">/g; print $msg->[1]@` "\n"; print "<br>" unless $msg->[1] =~ /<br>$/; }
481 ですが記事の内容のチェックとか文字コードがどうこうとかは 適当にやって動くようにしてください。
う〜む
484 :
名無しさん :2000/10/04(水) 12:30
あげまん
485 :
>278 :2000/10/04(水) 21:18
YYBBSの記事タイトル一覧の表示のさせ方ですが Ver: 3.5だと278さんのやりかたで、できなくなっていました。 Ver: 3.5対応版の改造方法をおしえていただけないでしょうか?
486 :
遊 :2000/10/05(木) 00:26
487 :
278>485 :2000/10/05(木) 09:32
時間を下さい。 私が分析をしたのは、V2.81の頃なんで、V3.Xはきちんと読んでないんです。 手元にあるのもV3.4だし。 データの構造や、読み出し方法もV2.81と変わっているので、ちとむずい。
488 :
> :2000/10/05(木) 13:31
>> perlの知識は薄いもので・・・。 >(CSS は HTML です・・・) それも違う、CSSはCSSだ。 それ以上でも以下でもない。 どちらにせよ、文字を大きくするか小さくするかがPerlとは全く関係ない ことに気が付いていない470は逝ってよし。
490 :
>487 :2000/10/05(木) 16:03
すみません、頑張ってくださいです。
491 :
>485 :2000/10/05(木) 16:06
yybbs.cgi 390行目付近の以下を探してください。 # ページ区切り処理 $start = $page + 1; $end = $page + $p_log; # 記事を展開 open(IN@`"$logfile") || &error("Open Error : $logfile"); $top = <IN>; ------------------------------------------------------- 「$end = $page + $p_log;」行と「# 記事を展開」行の間に 以下を挿入(全角スペース→半角スペースに変換する事!) ## ---------------------- x-kowa改 start ------------------------## print "<TABLE BORDER=1 WIDTH='90%' BGCOLOR=\"$tbl_color\"><TR>\n"; open(IN@`"$logfile") || &error("Open Error : $logfile"); $top = <IN>; $i=0; $j=0; print "<tr>"; while (<IN>) { ($no@`$reno@`$date@`$name@`$mail@`$sub@` $comment@`$url@`$host@`$pw@`$color@`$icon) = split(/<>/); if ($reno ne "") { next; } ## レスは表示しない $i++; $j++; ## 親記事をカウント print "<td width=20%>"; $ttl = $sub ; if (length($ttl) > 20) { $ttl = substr($ttl@`0@`18); $ttl .= ".."; } if ($i >= $start && $i <= $end) { print "<a href=\"$script\#$no\">"; print "<$no>$ttl"; print "</a>"; } else { print "<a href=\"$script?mode=res\&no=$no\">"; print "[$no]$ttl"; print "</a>"; } print "</td>"; if ($j eq 5) { print "</tr><tr>"; $j=0; } } close(IN); print "</TR></TABLE><br>\n"; ## ---------------------- x-kowa改 end --------------------------## 次ぎに、上記を挿入後の行数で410行目あたりの print "<td valign=top nowrap><font color=\"$sub_color\"><b>$sub</b></font> "; を探す。 この行の上に以下を追加 if (!$reno) { print "<td valign=top><a name=$no>[$no]</a></td>"; } ## x-kowa改 以上!
492 :
>487 :2000/10/05(木) 16:08
早くやってくださいね。急いでますので。ぺこぺこ
493 :
491 :2000/10/05(木) 16:12
すまん長すぎたか・・・ 動作確認してないのでチェックよろしこ。 クレジットに「x-kowa改」とでも書いてくれ(わら
494 :
485>492 :2000/10/05(木) 16:19
492は自分じゃないです。
495 :
名無しさん :2000/10/05(木) 17:17
481は問題ありです
496 :
ががーん :2000/10/05(木) 23:57
>495=社会ゴミ
497 :
名無しさん :2000/10/06(金) 03:03
hilightを nifty の@homepageで使うにはどこを直せば いいんでしょうか? cgiとhtmlが別鯖管理なのでうまくいきません。
それは改造じゃなくて設定だろうが。
499 :
遊@486 :2000/10/06(金) 05:36
>488さん 許していただいてありがとうございます……
とりあえず、330行のところに、
if ( $mail eq "sage") {
unshift (@tmp@` "$read[$i]");
}else{
push (@tmp@` "$read[$i]");}
ってのを入れてみたら、一応sageになるようなんですけど、
書き込み直後の表示が変になります。リロードすると直るんですけど……
ちなみに、↓こんな感じです。
http://asoviva.hypermart.net/cgi-bin/99/asoviva.html どうにかならないものでしょうか?うーむ……
500 :
遊 :2000/10/06(金) 06:04
あ、二つしかスレッド立てて実験しなかったので分かりませんでしたけど…… 499の方法だと、文字通り下がっちゃいますね。どこにあろうと一番下に。
501 :
x-kowa :2000/10/06(金) 09:52
>485 出来たかぁ? >497 hilightをしらないんだけど @niftyはディレクトリを相対指定すればcgiからhtmlを指定 可能ですよ。 「../homepage/index.html」とか・・・
502 :
名無しさん :2000/10/06(金) 18:28
>499=遊 @tmpと@headline_htmlと@sortの3つを同時に作ってるようなので それぞれをsageに対処させないとだめっぽいですね。 308行、317行、318行のpushを、それぞれ($mail ne 'sage')のときのみ実行。 330行を、 next if ($id_in == $id_t && $mail ne 'sage') に変更 で、どうか。自信ないけど。
503 :
ががーん :2000/10/07(土) 05:57
>489 知識自慢は逝って良し
504 :
>503 :2000/10/07(土) 09:40
うざ
505 :
名無しさん :2000/10/07(土) 13:45
>>497 そのhilightは2ちゃんねると同様に書き込みがHTMLになるタイプですね。
niftyはCGIサーバのデータファイルへのアクセスを不可に設定しているので
HTMLサーバに書き込まないと見えない、ということですね。
以下はniftyでサーバ間の通信が可能だと仮定しての話。
CGIサーバにファイルを書き出すことはできるでしょうから、
hilightでindex.html生成後に、ftpアカウントとパスワードを使って
HTMLサーバにftp転送する処理を付加します。
要は、CGIが書き出したHTMLをあなたがftpでHTMLサーバに転送する
手順をCGIにやらせる、ということです。
かなり しんどくさい です。
506 :
501 :2000/10/07(土) 15:01
niftyは、指定可能かどうかはともかく、hpcgi(n).nifty.com サーバの HTMLファイルにはアクセスできないと思うんだけど。やってみたことあるのか? つーかリンク先の意味が不明だ。
508 :
506 :2000/10/07(土) 16:54
>507 CGIで、HTMLファイルを「../homepage/doscmd.htm」って指定すれば htmlの書き換えは可能なんだよ。リンク先のやつはそうやってるんだ。 つーか、もしかしてネタ? だったらごめん。
509 :
名無しさん :2000/10/07(土) 17:02
得意気に語んなよ。 人の迷惑考えろ能なしが。
510 :
506 :2000/10/07(土) 17:10
>509 確かに私はperlもまともに作れませんが、「能なし」って・・・ 497の質問に対して505のレスだと@niftyでは、cgiからhtmlの 書き換えは簡単には出来ませんってって事になるでしょ? だから、ディレクトリを相対指定すれば可能ですと言ってる のに・・・・ 間違った情報をそのままにしておいた方が「迷惑」だと思うのだが?
質問に「別鯖」なんて書いてあったから別のサーバのことかと思ってたよ。
>511 私も説明が苦手なので、説明不足だったと思います。 これからもよろしくおねがいします。
514 :
遊 :2000/10/08(日) 00:56
>502さん それでいけました。バッチリでした。 ありがとうございます。 なんか皆さんsageで書かれているので私も……
515 :
485 :2000/10/09(月) 04:51
>x-kowaさん できましたー ほんとうに感謝です。 「KENT & MakiMaki & x-kowa」にしておきます。
516 :
CGI初心者 :2000/10/09(月) 12:49
517 :
名無しさん :2000/10/09(月) 14:52
>516 できると思うからソースが簡単に見られるようにして。 拡張子を".txt"に変えたやつをどこかにアップロードして そのURLをここに書いてくれればオッケー。
518 :
CGI初心者 :2000/10/09(月) 18:25
519 :
名無しさん :2000/10/09(月) 20:01
>518 186行目の「@DATA = reverse(@DATA)」で逆順にしてるのを やめればいいっすね。 この行を削除するか、行頭に"#"をつけてコメントアウト。
520 :
CGI初心者 :2000/10/09(月) 20:03
ありがとうございました!!大感謝です!
521 :
便乗質問 :2000/10/10(火) 18:38
すみません、516、518さんのアップボードを見て 自分も使いたいなと思ったのですが、1行レス投稿されると 親記事が一番上に上がるにはどうしたらいいでしょうか?
522 :
名無しさん :2000/10/10(火) 18:54
523 :
名無しさん :2000/10/10(火) 21:16
>521 どのへん改造しようとして、どこで挫折したか書かないと、 誰もうまく答えられないよ。 もちろん「まったくわからないので丸投げします」ていうのも アリだが、それだと反感を買って放置の可能性が高い。 516=518は少なくとも自分でソースをアップする誠意を見せたので 好感を持たれたんだろう。
524 :
便乗質問 :2000/10/10(火) 22:14
>523 仰る通りですね、ご指摘ありがとうございます。 改造については、全くわかりませんでした。 ただ自分のサーバスペースは友人との共用で、indexが友人のサイトの 入口なのでテキストアップが出来なかったのです(友達に嫌がられて)。 自分でアップ出来る環境になったら、又改めて質問しようと思います。
525 :
名無しさん :2000/10/10(火) 23:12
質問をする前に本を読んで勉強しろよ。 入門用のサイトもある。 そのためのスレもあるだろ。 質問に答えている奴も、その辺りの事を考えて答えてやってるのか?
あまり知識の無い自分でも 「他人に教えてあげられるんだ」 という快感に酔いしれてるだけです。
527 :
名無しさん :2000/10/13(金) 05:06
安室のページみたいなチャットって作れませんか? どうしても合う言うものを作ってみたい。
>527 PERLの前に日本語勉強してね
529 :
:2000/10/13(金) 07:56
>>527 「安室のページみたいなチャット」が判らないと教えられないよ。
ここは改造スレであるから自力でなんとかしようとする人が来るもんだと思ってたが、違うのか?
>>527 安室のチャットがどんなか知らんが、それが借り物なら
クレジット(作者のサイトのURLや名前)が下のほうにあるんじゃないか?そこ参考にすれ。
529 にもあるように質問するなら具体的に書かないと解答のしようがないぞ。
頭の中覗けるわけでも有線で繋がってるわけでもなし。
>>529 「作れませんか?」って質問だから
「作れますよ。頑張ってね」で終了
悪い、俺なんか勘違いしてたみたいだ。鬱さげ。
533 :
名無しさん :2000/10/14(土) 05:48
534 :
BBS :2000/10/15(日) 03:24
安室だけにage
535 :
モルツ(389) :2000/10/15(日) 03:45
すいません。2度目でコピペで申し訳ないのですが、困っているので
よろしくお願いします。
以下コピペ。。
http://www.osk.3web.ne.jp/~ryui/down/index.htm で紹介されているThe Show10で二重投票を禁止させる
ようにしたいのです。
このCGIは「○○とかけて××ととくそのこころは△△」
というものを投稿してもらい、そのネタに対して
面白ければ座布団をあげ、つまらなければ座布団をもっていく
というものです。
方法としては「ネタ」を投稿した人のIPを記録。
そのネタに対して「投票」した人のIPを記録して
「ネタ」を投稿した人のIPといれかえていく。
そこで同じIPだったらエラーを出すというように
簡易的ではありますが、二重投票を禁止させたいのです。
ネタを投稿された人のIPを記録する方法までは
できたのですが、それ以降がどうやっていいかわかりません。
いちおうできたとこまで(1行加えただけですが)スクリプト
あげときますので、わかる方いらっしゃいましたらアドバイスください。
よろしくおねがいします。
http://buffy.acmecity.com/fang/463/show10.txt
ある程度perlがわかるなら、人気投票などの2重投票禁止が ついてるスクリプトを参考にさせてもらったら早いと 思いますが、いかがですか?
537 :
名無しさんとも言える :2000/10/15(日) 05:07
>>535 今書いたんでてきとーだが。
# [SCRIPT START]
$IPFILE = 'ip.log';
# IPアドレスを $IPADDR に読む
open(IP@` $IPFILE);
($IPADDR = <IP>) =~ s/[\n\r]//g
close(IP);
if( $IPADDR eq $ENV{'REMOTE_ADDR'} ){ # IPチェック
print "Content-Type: text/plain\n\n";
print "二重投稿です。";
exit;
}
##########################
#### この辺で投稿処理 ####
##########################
# IPアドレスを書き出す
open(IP@` '>'.$IPFILE);
print IP $ENV{'REMOTE_ADDR'};
close(IP);
print "Content-Type: text/plain\n\n";
print "投稿完了。";
exit;
# [SCRIPT END]
問題点)
1月経とうが、100年経とうが同じIPからは投稿できない。
(ずっと同じてのはそうそうないから気にしなくていいかもしれんが)
538 :
モルツ :2000/10/16(月) 00:05
レスありがとうございます。
http://buffy.acmecity.com/fang/463/show10.txt にあげたスクリプトでログの形式が
記事NO@`名前@`メアド@`○○とかけて@`××ととく@`その心は△△@`日付@`獲得座布団枚数@`IP
という順番になっているのですが、座布団の処理をするごとに
獲得座布団枚数といっしょにIP部分を書き換えていきたいのです。
新規投稿の際にログにIPを記録するところまではできているのですが、
IP部分を書きかえるというのができないのです。
ついでにIPが一緒ならエラーを出すといのもできません。
要はログを読み出してIP部分はここだよ、とさせる方法がわかりません。
要は厨房です。
>ほういちさん
人気投票のスクリプトを参照してみたんですけど、
ちょっと私にはわかりませんでした。。
Perlまったくわからないので。。
>名無しさんとも言えるさん
その方法だと、同じIPから投票できる回数は1回限りですよね。
私はLAN回線のIP固定なので、できればそれは避けたいのですが。
スクリプトありがとうございました。
でもなぜか500です。。
ちゃんと組み込んだはずなのですが。
おそらく私の力不足です。すいません。。
というわけで皆様、できれば↑の方法でできるよう
ご教授お願いいたします。
できれば何行目にこれを入れるとかアドバイスいただけると・・・。
ホント、厨房で申し訳ないです。
長文スイマセン。。
>>538 500エラーって、そのんまんまコピペしてないかい?
全角空白は見栄えのために入れてるだけだからタブに変換しときよ。
私は質問に対するヒントなら余裕がある限り出すけど答えそのものは正直あまり出したくない。
一例>
IP保存してるファイルの最終更新日時を現在と比較して1日経ってたら同IPでも投稿を許可。
(-M $FILENAME) で更新から何日経ったかが小数点付きで返される。
全角空白はちゃんと消したんですが。。 他にエラーが出やすい点ってあるんですか? すいません、もう少し知識をつけてから来るべきですね。
542 :
537 やっちゃった :2000/10/16(月) 01:58
あー、 ($IPADDR = <IP>) =~ s/[\n\r]//g の後に ; 付け忘れてたわ。スマソ。 でも telnet でスクリプトを試してないの? エラーメッセージ見れば大抵どの変に問題あるかわかるじゃろ。 自分のマシンに Perl 組み込んでもいいし。
>537さん ありがとうございます。できました。 ちゃんと2重投稿蹴ることができました。 今後はtelnet入れてメッセージ見ることにします。 っていうか、気づけよ>俺って感じですよね。すいませんでした。 厨房の私に付き合ってくれて、どうもありがとうございました。
544 :
537 :2000/10/16(月) 03:36
>>543 そう素直に謝られてしまうとこっちが気まずくなったりする(w
好感が持てるのでついでにこれも書いておきます。
前の if 判定部分をこれで置き換えてください。
IP ファイルの最終投稿(更新)から1日越えていれば、同IPでも投稿許可します。
1 の部分を書きかえれば一週間でも1月にも変更可能です。
さらに短くするなら半日が 0.5、6時間なら 0.25 としておけばできる(はず)です。
if( $IPADDR eq $ENV{'REMOTE_ADDR'} && (-M $IPFILE < 1) ){ # IP、日付チェック
>544=537さん おぉー、ありがとうございます。 現在おかげさまでメチャ快適に動いています。 重ね重ねありがとうございました。
546 :
やし :2000/10/18(水) 06:32
な、なんだか上げにくい雰囲気ですのでsageでお尋ね致します・・・。
http://www2q.biglobe.ne.jp/~terra/cgi/news.htm こちらのCGIでリンクのタグOKにしたいのですが、どんな分を挿入すれば
いいでしょうか。
たぶん、以下の部分に増やせばいいと思うんですが・・・。
sub tag_change {
local($_) = $_[0];
$_ =~ s/&eq;/=/g;
1 while s/(.*)(&lt;(img([!-:A-~\s\=]+))&gt;)/$1<img$4>/i;
1 while s/(.*)(&lt;(b)&gt;(.*)&lt;\/b&gt;)/$1<b>$4<\/b>/i;
1 while s/(.*)(&lt;(i)&gt;(.*)&lt;\/i&gt;)/$1<i>$4<\/i>/i;
1 while s/(.*)(&lt;(font[\s\w\=\#\"\']+)\&gt;(.*)\&lt;\/font\&gt;)/$1<$3>$4<\/font>/i;
$_ =~ s/=/&eq;/g;
$_;
}
書き込みの時に
<A HREF="****.html">こちら</A>
と書き込んだら
こちら←にリンクが貼られるようにしたいのですが。。。
547 :
やし :2000/10/19(木) 01:10
うっうっう。こんなに下がっては誰にも読んではもらえない・・・。(T_T)
548 :
名無しさん :2000/10/19(木) 05:03
549 :
548 :2000/10/19(木) 05:22
ごめんなさい クッキーで二重カウント禁止できる機能ついている物の方が きっと改造しやすいんでしょうね 改造元のCGIは何でもいいんですが、、、
その掲示板のソースがわからないと何とも言えないんだけど。
551 :
名無しさん :2000/10/22(日) 04:05
553 :
名無しさん :2000/10/22(日) 11:28
>>551 その機能を2ch型で付けるとCGI鯖を飛ばしかねないぐらい負荷が
かかるらしいぞ。別タイプの2ch型掲示板は機能が付いていながら、
使用を推奨していなかった(なら付けるなと思った)
554 :
名無しさん :2000/10/22(日) 12:05
素人は勉強しましょう。
556 :
初心者です :2000/10/22(日) 19:33
初心者です。 ぷちボードをHTML表示にしたいのですが どうすればいいでしょう。 よろしくおねがいします。
557 :
名無しさん :2000/10/22(日) 21:28
右クリックでソースの表示
558 :
初心者です :2000/10/22(日) 22:35
>557 そういう意味ではありません。 パールマスターの方お願いします!!
559 :
バール兄弟 :2000/10/22(日) 23:25
>558 もうちょっと勉強しようね。 お役立ちスレッドも出来たしさ
560 :
教えて君 :2000/10/22(日) 23:53
CGIで生成されるページに &lt;!--#include virtual=""--&gt; みたいな感じでSSIを組み込みたいのですが、 どうしたら良いのでしょうか? 板違いでしたらすみません
561 :
名無しさん :2000/10/23(月) 00:02
一般に、CGIで生成されたHTMLの中はパースされません。無理。 つーかCGIで生成されるんなら、全部そのCGIで処理すれ。
562 :
名無しさん :2000/10/23(月) 00:36
KENTさんのCOSMO NAVIにランダムジャンプ機能をつけたいんだけれど どうすればよいのでしょうか。
563 :
554 :2000/10/23(月) 01:42
おしえて・・
564 :
名無しさん :2000/10/23(月) 03:16
教えてくれるまで待て。 そして逝け。
>556 >562 1をよく読め。 元のソースの場所もわからないのにどうやって改造するんだよ?
566 :
名無しさん :2000/10/23(月) 08:50
なんか似たような質問あった気がしますが許して
http://www1.kcn.ne.jp/~mig-poco/cgi/mibbs.lzh の2ch型掲示板って@niftyで設置できませんか?
htmlなどのファイルとCGIファイルが別なので無理っぽいです。
どうも書き込んだ後に homepage○/username/index.htmlではなく
hpcgi○/username/index.htmlを見に行ってしまうのが
駄目なような気がするんですけど。
長文ごめんです。
567 :
名無しさん :2000/10/23(月) 21:29
>>566 ニフティでは、CGIでファイルが作れないと思った。
そういうところじゃ、2ch型は基本的に無理だよ。
568 :
初心者です :2000/10/23(月) 22:07
よろしくお願いします。
>567 やっぱ無理ですか。 レスサンクス。
このスレの最新レス100くらい読めよ。 niftyでも、htmlの指定は可能だよ。
571 :
あのー :2000/10/24(火) 00:49
572 :
名無しさん :2000/10/24(火) 01:17
<textarea cols=$com_wid rows=7 name=comment wrap=$wrap></textarea>
>570 一応全部読んだんですけど、書き換える部分が わからんかったので。 スマンです
>566 時間が許すなら今度の日曜日に見てみるから待ってくれるか? おれもNIFTY会員なんで試してみたい。
>574 どーもッス いつまでも待つよ
サポートBBSがあるじゃん。 なんでそこで聞かないの?
>576 サポートBBSに、すでに似たような質問があったんですけど 解決してないっぽかったので、ここに書かせてもらいました ごめんよ
578 :
名無しさん :2000/10/28(土) 03:38
age
下の「ゆいぼーど2」を改造したいのですが、
http://www.mirai.ne.jp/~mikeneko/yuibot/yui/chat/board/yui2/index.html デフォルトのゆいぼーど2だとスレッド(ゆいぼーどで言うところのトピック)
の一覧表示のさいにスレッドの作成順に一覧表示されるため、古いスレッドに
レスを付けても、新しく作成されたスレッドに埋もれてしまう形になって分かり
にくい仕様になっているようです。
これをレスを付けられたスレッドを、スレッド一覧表示の先頭に移動するよう
改造したい(2ちゃんねるで言うところの“あげ”ですね)です。
簡単に言うと
「ゆいぼーど2をスレッドの“あげ”に対応させたい」
という事です。
m(_ _)mどうかヨロシクお願いしますm(_ _)m
m(_ _)mどうかヨロシクお願いしますm(_ _)m
581 :
ミクリ :2000/10/30(月) 20:06
KENTさんのYYBBSで特定のタグ(metaやjava scriptなど)だけを無効にするには、どう改造すればよいのでしょうか? よろしくお願いしますm(_ _)m
m(_ _)mどうかヨロシクお願いしますm(_ _)m
583 :
名無しさん :2000/10/31(火) 00:26
>583 どんなアクセス制限をしたいのかわからないと教える事が出来ません。
585 :
名無しさん :2000/10/31(火) 03:51
名前とパスワードを入れるフォームを入り口に設置。
586 :
583 :2000/10/31(火) 10:51
>584 ごめんなさい! IPでアクセス制限をしたいんですけど・・ このチャット、入室したときにIPがでるんですけど あれでアクセス制限をしたいんです。 できますかね?やはり585さんのようなやり方しか ないのでしょうか・・。
金を出せば出来る。
588 :
名無しさん :2000/10/31(火) 14:20
114行目に -- okpchat.cgi -------- $kill_file = './kill.dat'; $host = $ENV{'REMOTE_HOST'}; open(DB@`"$kill_file") || die "Cannot Open Log File $kill_file: $!"; @lines2 = <DB>; close(DB); foreach $line (@lines2) { next if(length($line)<4); chop $line; if( $host=~/$line/ ){ print "Status: 404\n\n"; exit; } } ---------- あとは kill.dat を置くだけ。 -- kill.dat -------- ocn.ne.jp odn.ne.jp tiki.ne.jp ---------- ゆいちゃっと。 kill.dat の名前かえるのと、 置くディレクトリはブラウザで見れないところへ。
日本語変だ。許せ。
590 :
名無しさん :2000/10/31(火) 15:02
CGIで画像のサイズ(たて・よこ)取得することできますか? あと、pngcatって誰か作ってませんか?
591 :
名無しさん :2000/10/31(火) 15:04
あー間違えた!CGI制作工房と読んでました。 申し訳無いです。
>588 どうも有り難うございます!! 早速試してみたいと思います。
593 :
588 :2000/10/31(火) 16:06
ごめん、下記の行要らない(^^; next if(length($line)<4);
594 :
すいません579です :2000/10/31(火) 18:05
595 :
nanasii :2000/10/31(火) 20:25
sub listing の中の ... @roomlist = sort { $a <=> $b; } @roomlist; @roomlist = reverse (@roomlist) if ($rev ne 'off');#offでなければ逆順にする。 ... このあたりだろ。多分。 # 言っとくがまともによんでない。
596 :
nanasii :2000/10/31(火) 20:42
$filedata = -M "./den/log.$room.dat"; このデータが'room'の最新書き込みの古さみたいだから $sorting_hash{$filedata} = $room; みたいな配列つくってそれで@roomlistをsortするように さっきの部分を改造する。 594@`595ともlist.cgi中の sub listingの最初の20行以内の部分の話。
いや。。つーかこれすでに改造中か。 595@`596はナシね。
600 :
名無しさん :2000/11/02(木) 23:59
>590 ありがとうございます.いい人だ まず英語から勉強してきます.
601 :
かなりCGI初心者 :2000/11/06(月) 17:42
http://www.2apes.com/products/dwnld/apbdp_sjs.lzh 既出でしたら、すみません。
apebordのcgiの特徴が
例 message&lt;!--s--&gt;をHTMLに書き込むと
そこにメッセージログがでます。
+バージョンはIPの取得をしてる見たいだけど、管理用のみしか表示してません。
それをスキンの方にも表示させたいのですが、
例えば、host&lt;!--s--&gt;というのをつけるにはどうしたらよりしいですか?
リモートホストでいいのです。
ブラウザ環境も取得して、表示できると。。。。
一応本をみながら、アクセス解析を自分で作ったくらいしか知識がないですので、 全部教えてくれというのはあつかましいと思います。 せめて、道を示してくれると、ありがたいです。 あとはなんとか、自分で勉強します。
603 :
適当君@tako復活だぴょん :2000/11/06(月) 18:59
>602 DLして教えろって? print"リモートホスト$ENV{'REMOTE_HOST'}\n";
604 :
名無しさん :2000/11/06(月) 19:20
apeboardってHTMLをいちいち置換して表示するアレだよな。 だったら、たぶん $html =~ s/message&lt;!--s--&gt;/$message/; とかいうのがあるから、同じように $html =~ s/host&lt;!--s--&gt;/$ENV{REMOTE_HOST}/; とかやるんでないの。 いちいち下載する気もないし、これ以上はわかりません。
605 :
かなりCGI初心者 :2000/11/06(月) 19:38
メインCGIソースより抜粋 # メイン部分の作成と文字列の変換(親部分)----------------------- $maintmp = $mainhtml; $maintmp =~ s/(name="target")/$1 value="$dispid"/i; $maintmp =~ s/idnum&lt;!--s--&gt;/$dispid/i; $maintmp =~ s/name&lt;!--s--&gt;/$dispname/i; $maintmp =~ s/url&lt;!--s--&gt;/$dispurl/i; $maintmp =~ s/icon&lt;!--s--&gt;/<img src="$icon_path$dispicon\.$icon_format" width="$icon_width" height="$icon_height" alt="$dispicon" border="0">/i; $maintmp =~ s/subject&lt;!--s--&gt;/$dispsubject/i; $maintmp =~ s/message&lt;!--s--&gt;/$dispmsg/i; $maintmp =~ s/date&lt;!--s--&gt;/$dat_tmp/i; $maintmp =~ s/mail&lt;!--s--&gt;/$dispmail/i; $maintmp =~ s/(a href="resinput")/a href="$thisurl?command=viewres&target=$dispid"/i; というような記述があります。 そこに $maintmp =~s/host&lt;!--s--&gt;/$ENV{REMOTE_HOST}/i; になるんでしょうか? CGI自体IPを取得してますので、 一応datファイルのなかに名前、メアド、時間、題名、内容、IPという順に あります。 それのIPのみを引っ張り出したいです。
606 :
かなりCGI初心者 :2000/11/06(月) 19:45
補足ですが、 管理用のページでは投稿者のIPが表示されてます、 そのソースでは $disphostと書いてます。 ということは $maintmp =~s/host&lt;!--s--&gt;/$disphost/i; になるんでしょうか?
ちょっと自分でやってみます。 本当はIPより、ブラウザ環境とかを表示させたいと思ってます。 取得については、このソースでどういう書き方をしたらよろしいですかね?
608 :
かなりCGI初心者 :2000/11/06(月) 20:13
できました。(笑)
考えて方は間違っていませんでした。
>>604 ありがとうございます。
何回も書き込んですみません。 次はブラウザの環境の取得を勉強してみます。 これはちょっとてこずりそうです。
610 :
むぎ茶 :2000/11/06(月) 23:47
↑ バカだろ。 そのくらいでてこずってるようじゃ、お先が知れてるね。わr
>609 サンプルでいいから見せい!
apeって設置とか面倒くさいのに人気あるね。 何ででしょ。
HTMLさえ書ければよいから。 ape使ってるくせにデフォルトのデザインなトコには萎え。
うん。むぎ茶なみだね。
それは言い過ぎだ。
616 :
名無しさん :2000/11/09(木) 00:00
むぎ茶みたいなくそは別として、親切な人多いなぁ でも私は面倒なのでしない
618 :
名無しさん :2000/11/12(日) 23:50
age
619 :
名無しさん :2000/11/13(月) 10:36
620 :
名無しさん :2000/11/13(月) 10:54
>619 それってCGIとか関係なくて 単にaタグリンクにtarget=_blankを 指定するだけなんじゃないのか??
621 :
名無しさん :2000/11/13(月) 11:00
petit.cgi の 1251行目 $_[0] =~ s/([^=^\"]|^)(http\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#]+)/$1<a href=$2 target=_top>$2<\/a>/g; ↓ $_[0] =~ s/([^=^\"]|^)(http\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#]+)/$1<a href=$2 target=_blank>$2<\/a>/g;
622 :
oyaji :2000/11/13(月) 18:28
623 :
名無しさん :2000/11/14(火) 00:23
CGIに直リン防止機能を付けたいのですが、 if ($base_url ne ".") { $ref_url = $ENV{'HTTP_REFERER'}; $ref_url =~ s/\?(.|\n)*//ig; $ref_url =~ s/\%7E/\~/ig; if ($ref_url !~ $base_url) { &error("直リンはダメ!"); } でいいのでしょうか?
そう聞くか? 逆に聞かないか? >623
625 :
名無し人間 :2000/11/14(火) 17:36
CGIの改造って一体どうやってやるんですか? HTMLを書きかえる時みたいにメモ帳を使って?
627 :
名無しさん :2000/11/15(水) 00:05
↓ここにある、Multiply Data Base
http://wand.cside.ne.jp/cgis2.html#haihu を改造して、データの検索専用にしたいのですが、どうしたら良いでしょうか。
したい事
1:タイトル、副タイトル、内容以外の要素を追加したい。(逆に入力日はカットしたい)
2:データの検索専用(*.datはローカルで入力)にして、軽くしたい。
3:窓口の*.htmlにチェックボックス式のフォームを置いて、キーワード検索と同様に絞り込みたい。
4:おまけで、利用数をカウントしたい。
以上です。よろしくおねがいします。
628 :
むぎ茶 :2000/11/15(水) 00:18
>>627 むぎ茶の言い方もどうかと思うが、
改造する場所のソースをここに提示できる程度の簡単なことか、
提示できるくらい、改造個所を絞り込めてないと、ほとんど無理だよ。
聖人のような人でなければ、DLして解凍して改造個所を探すようなことはできない。
とりあえず、
2. 利用者は書き込めないようだし、単に管理モード(?)を使わなければ良いだけでは。
それともスクリプトのその部分を削除してコンパイル時間を減らしたいということ?
3. 見た感じ、単に <input type=checkbox name=key1 value="キーワード"> などとやればできそう。
ただ、key1という名前のデータは1つしか送れないようなので、ラジオボタンの方がいい。
1と4はスクリプト見ないとなんとも。
630 :
625の名無し人間 :2000/11/15(水) 05:15
http://www.kent-web.com に行きました。
最初はよく分からなかったけど
パソコン上でCGIを実行するためのソフト(HTTPD )が必要だということですね。
CGIを改造するには
まずメインプログラムファイルをエディタで開かなければいけないことが分かりました。
このエディタというのはメモ帳で良いんですか?
631 :
名無しさん :2000/11/15(水) 05:43
とりあえず、Apacheとperlをダウソだな。両方で15MBくらいだっけ。 がんばれ。くれぐれも鯖で実験しないように。 メモ超でも良いが、エディタ使った方が、\";とか 予約語のタイプミスが激減して作業楽だぞ。 最近perlからphp+mysqlに移行。 さらば<>区切り。さらばflock。鬱氏。
632 :
>631 :2000/11/15(水) 08:50
>さらばflock flockなくても、lock tableやら、rollbackやらがあるじゃん、、、
633 :
625の名無し人間 :2000/11/15(水) 09:05
>631 ありがとうございました。 Apacheというのがどんなものなのかはまだよく分かっていませんが これから勉強して覚えていきたいと思っています。 エディタを使った方が楽だということですが ここで言うエディタというのは秀丸などのソフトのことですよね? 何度もすみませんが教えて欲しいです。 あと、がんばれという言葉がすごく嬉しかったです。 本当にありがとうございました。
634 :
627 :2000/11/15(水) 11:18
>>629 >2. 利用者は書き込めないようだし、単に管理モード(?)を使わなければ良いだけでは。
> それともスクリプトのその部分を削除してコンパイル時間を減らしたいということ?
そうです。
>3. 見た感じ、単に <input type=checkbox name=key1 value="キーワード"> などとやればできそう。
> ただ、key1という名前のデータは1つしか送れないようなので、ラジオボタンの方がいい。
それだとあまり意味が…cgi-lib.plでも使えば上手くいくでしょうか?
まぁ勉強中なので勉強がてらいじってるのですが、うまくいかなくて。
失礼しました。
なんとか上手くいきました。
636 :
sada :2000/11/18(土) 20:19
TheRoomのOne Line BBS Light Ver.1.10で、メッセージ($msg)の連続投稿ができないんですけど。 改造箇所を教えてもらえませんか。 ://dream.lib.net/room/sys/dlcount/dlcount.cgi?f=2_1
637 :
名無しさん :2000/11/19(日) 00:30
638 :
名無しさん :2000/11/19(日) 00:45
639 :
>636 :2000/11/19(日) 01:36
メッセージの連続投稿ができないの意味がわからないんですが・・・ 確かに同じメッセージを連続で投稿する事はできない処理になって ますね。それの事でしょうか?もしそれのことでしたら改造点は 157行目からの条件分岐を以下のようにコメントアウトすれば いけるのでは? ##if ($y2[2] eq $msg){ ## close(IO); ## }else{ $a1=time(); unshift(@y1@`"$name<>$color<>$msg<>$a1<>$ip/$host<>\n"); if ($#y1 >= $pastlines){pop(@y1);} truncate(IO@`0); seek(IO@`0@`0); print IO @y1; close (IO); ## }
640 :
名無しさん :2000/11/19(日) 03:30
641 :
名無しさん :2000/11/19(日) 06:01
642 :
むぎ茶 :2000/11/19(日) 06:45
人に頼り過ぎなんだよ、ばーか
改造してほしけりゃ金払え
エディタというのは秀丸などのソフトのことですよね? (/_;)
646 :
茶碗蒸 :2000/11/20(月) 14:44
相談は有料です。
648 :
名無しさん :2000/11/20(月) 16:28
>>646 \8000/時で承りますがどうされますか。
649 :
茶碗蒸 :2000/11/20(月) 18:23
8000円払うので教えて下さい。 と、思ったんですけど.htaccessで認証とることにします。 じゃー、書くなよ。はい、すいません。
650 :
初心者でごめんなさい :2000/11/20(月) 19:30
>>650 8000円払ってから質問してください。
>>650 と申しますか、その様な機能を付けるのは
初心者でごめんなさい様が思われているより簡単かと存じます。
私は、自分で考えない教えて様に教える頭はございませんので
予めご了承頂きたく思います。
>どうすれば出来るか教えてください
651様も仰られている通り
8@`000円をお支払い下さい。
ギブ アンド テークですにょ。
653 :
むぎ茶 :2000/11/21(火) 01:18
やんわりと断ってます。 8000円
655 :
648 :2000/11/22(水) 01:50
元ネタがあったのか(笑)
657 :
名無しさん :2000/11/22(水) 16:23
で、偉そうにしてるが、本当はわからないんだろ?(ワライ
で、笑ってるけど、本当はお前が知りたいだけなんだろ?(ワライ
659 :
>658 :2000/11/23(木) 03:03
で、おまえも知らない一人なんだろ?(ワライワライ
バ・カ?
661 :
名無しさん :2000/11/23(木) 11:55
たららららららららららららららららららららららあっらあー
で、知りたいからって煽ってるだけなんだろ(ワライワライワライ
663 :
>662 :2000/11/23(木) 14:44
で、で、やっぱり知らないんだろ?(ワライワライワライ ちなみに俺は知らないぜ。ちなみに俺は659でも657でもないぜ。 ついでにオマエの母ちゃんデーベーソ。
ageてる時点で同類
sageる理由がわからん。 さらに何をそんなにムキになっているのかもわからん。
ところでわからないことは馬鹿にされるようなことかな? 勉強すればいいだけだし、例え知識があっても他人を馬鹿にするような人はえらくもなんともないじゃん。 sageる理由は板とまったくなんの関係もないただの煽りだからだよね? マターリシヨウヨ
668 :
>667 :2000/11/23(木) 22:26
いいかげんに煽るのヤメロ。どっか逝け。
>667 だからageるなよヴォケ。
>668 だからageるなよヴォケ。
しくじった、鬱だ。。。。 よーするに内容無いのにageるな。分かったか?>668@`663@`661
672 :
age :2000/11/23(木) 23:39
age
>672 出ると思った。行動単純で良いね(ワラ
674 :
名無しさん :2000/11/23(木) 23:45
わからないから教えて下さいと言っただけなのに どうしてバカとか言って罵るんですか? このスレッドの主旨に沿った質問をしただけなのに?
675 :
>673 :2000/11/23(木) 23:46
出ると思ったと言うと思った。単細胞バカ芯でくれ。
余所でやれ。673、675。
>>675 真似か。。。独創性無いね。
ま厨房だしこんなもんかね。
>>676 ハーイ。他に当ても無いので止めマース。
まだやってるよ。しつこいやつ。お前気持ち悪いよ。
679 :
名無しさん :2000/11/24(金) 00:34
∧_∧ うるせー!黙って聞けや!! ( `∀´) ι ゚ ( ¶¶¶ つ匚τ゚ 。 | ̄ ̄ ̄ ̄ ̄| 水掛け論ですよ。 おやめなさい
680 :
名無しさん :2000/11/24(金) 00:56
>>680 その掲示板で管理人に聞くのが手っ取り早いと思うが。
682 :
むぎ茶 :2000/11/24(金) 01:56
perlの勉強しなくても管理人に聞く位出来ます。 やっぱむぎ茶って●●・・・。
Perlを勉強するのが一番良い道だと思いますが、どうでしょう?
685 :
名無しさん :2000/11/24(金) 19:56
ていうか、これじゃこのスレ必用ないね。
>>685 実際、この板のPerl/CGI関係の住人の大半は、
自助努力が皆無の教えてくんしか来ないなら、このスレは
なくなってほしいと思ってるよねえ・・・
かといって、その手の教えてスレが乱立するのも困る。
687 :
名無しさん :2000/11/24(金) 20:23
このスレは努力しない教えて君が罵られて、努力するよう成長する為のスレです
688 :
名無しさん :2000/11/24(金) 20:59
個々で聞いていいかわかんないですが、思い切って質問します。
CGIじゃないんですけど、Apacheのrewriteがわかんないです。
map.txtに
olduser1 newuser2
olduser1 newuser2
の用に書いておいて、
http://www.hoge.net/olduser1 とアクセスがあったときに、
/home/newuser/public_html/ の中身を表示させたいんですが、
どうもうまくいきません。rewriteのエンジンはちゃんと動いて
いるようです。
RewriteEngine on
RewriteMap change txt:/usr/local/apache/conf/map.txt
RewriteRule ^/([^/]+)/(.*)$ /${change:$1}/$2 [R]
としています。
うまい。
690 :
名無しさん :2000/11/24(金) 22:06
>>688 これだと 〜/olduser1のリダイレクト先である 〜/newuser1が
またRewriteRuleの正規表現にマッチして、無限ループに
なっちゃいますよね。うーん、どうするのがいいんだろう。
そういえばhttpd.conf設定スレッドはなかったですね。
.htaccess質問スレの軒先を借りるのがいいのかな。
>>688 リダイレクト動作じゃなくて、リライト動作ではだめ?
RewriteRule ^/([^/]+)/(.*)$ /${change:$1|$1}/$2
692 :
名無しさん :2000/11/24(金) 23:11
cgi利用時の@ARGVについて質問させて頂きます。 hogehoge.cgi?111+222+333+444 とのQUERY_STRINGのとき、 @ARGV = ('111'@`'222'@`'333'@`'444') と展開されるのは期待して良いのでしょうか? とほほlngがこの方法を使ってたんで気になりました…
693 :
名無しさん :2000/11/25(土) 00:04
694 :
692 :2000/11/25(土) 02:09
696 :
名無しさん :2000/11/25(土) 11:59
>>691 だめでした。
これらの設定を書くのは、httpd.confのふつうのところ
(<Directory></Directory>内とかじゃなくて)に
書いていいんですよね?
それと、
RewriteRule ^/([^/]+)/(.*)$ /~${change:$1|$1}/$2
として、
http://www.hoge.net/~newuser1 ではアクセスできます。
697 :
名無しさん :2000/11/25(土) 13:23
>>696 名前の置換が発生するときだけURLを書き換えればよいと思う。
リライトしたい場合
RewriteCond ${change:$1} !=""
RewriteRule ^/([^/]+)/(.*)$ /home/${change:$1}/public_html/$2
リダイレクトしたい場合
RewriteCond ${change:$1} !=""
RewriteRule ^/([^/]+)/(.*)$ /~${change:$1}/$2 [R]
ていうか、RewriteCond、よくわかってないんだけど。
RewriteCondで指定する「$1」は、
「後続のRewriteRuleの正規表現でマッチした$1」
という理解でいいのかな?
698 :
名無しさん :2000/11/25(土) 15:03
>>697 /usr/local/apache/conf/map.txtは
olduser1 newuser1
olduser2 newuser2
(old/newの間はタブ、newuser1@`2はシステムに登録されているユーザー)
です。
RewriteRule ^/([^/]+)(.*)$ /~$1/public_html$2
として
http://www.hoge.net/newuser1 にアクセスすると
http://www.hoge.net/~newuser1 がアクセスできました。
ところが、
RewriteMap change txt:/usr/local/apache/conf/map.txt
RewriteRule ^/([^/]+)(.*)$ /~${change:$1}/public_html$2
とすると、change の部分がnullになってしまいます。
RewriteRule ^/([^/]+)(.*)$ /~${change:$1|nobody}/public_html$2
とすると、nobodyが代入されてるので、changeに$1がちゃんとわたされて
いないようなのですが。。
>>698 ${change:$1}がヌルでないことをRewriteCondでチェックしてる?
あと、リライトでは置換後のパスに「~」を含めたらまずいのでは?
リダイレクトなら置換後のパスに「~」が使えるけどな。
うちではこれで動いたから、とりあえずコピペしてみ。
RewriteMap change txt:/usr/local/etc/apache/map.txt
RewriteCond ${change:$1} !=""
RewriteRule ^/([^/]+)(.*)$ /home/${change:$1}/public_html$2
しまったmap.txtのパスは/etcが余計だった。そっちのパスに合わせてちょ。
701 :
698 :2000/11/25(土) 17:36
やっぱり動きません。 RewriteCondでnullチェックの条件を付けたら、RewriteRuleが 効かなくなったので、${change:$1} へきちんと([^/]+)の 部分がわたって、changeで変換されていないようなのです。 すべてServerConfig部に記述していいんですよね? map.txtが悪いって訳じゃないですよねぇ。 pathもパーミッションも問題ないし、なかみは 単純なプレーンテキストのタブ区切りですし。。
703 :
698 :2000/11/25(土) 18:36
原因が分かりました。。apacheのバージョンで 1.3.14ではNG、1.3.12ではOKでした。 bugってことになりますよね。。 大変お世話になりました!
うちはまだ1.3.12だったよ。 1.3.14に入れ替えるのは止めたほうがいいのかのお。 まあ、なにはともあれ、ごくろうさんでした。>698
706 :
名無しさん :2000/11/27(月) 01:47
>>706 apache1.3.14 with patchでのrewrite正常動作を確認しました。
709 :
名無しさん :2000/12/02(土) 15:18
http://www.chibaken.net/cgi_s/teraco2/teraco_cgi.txt このアクセス解析のCGIは毎日ログをYYMMDD.logというように吐き出すのですが、
これをsendmailで自分のところへ毎日ログをメールで送るようにしたいのです。
自分は日付が変わってから最初のアクセスのときにメールを送る場合、
203行目のあたりを改造すればいいと思うのですが、具体的にどうすれば良いかわかりません。
また、日付が変わると同時にメールが送ることができればそれにこしたこともないと思います。
その場合の改造のし方も教えて頂けないでしょうか。
710 :
名無しさん :2000/12/02(土) 18:52
>>709 >日付が変わってから最初のアクセスのときにメール
これは次の方針でいけると思います。
・最新のログファイル名(YYMMDD.log)は"lastlog.dat"とかいうファイルに保存しておく。
・207行のcloseの直後に、lastlog.datからファイル名を読み出し、さらにそのファイル内容を読み出し、送信する。
・送信したら、新しいログファイル名(ここでは$tuika_log)をlastlog.datに書き込む。
711 :
名無しさん :2000/12/03(日) 03:32
>>711 do_enterの最後にでもメールを送ればいいんじゃない?
メール送信スクリプトをどっかで見つけてきて参考にすれば
そんなに難しくないからやってみれ。
713 :
709 :2000/12/03(日) 14:04
>>710 アドバイスありがとうございます。
まだ上手くいっていませんが、もうちょっと頑張ってみようと思います。
本当にありがとうございました。
714 :
711 :2000/12/03(日) 15:25
>>712 さん
お返事本当にありがとうございます。
感謝感激です!
過去ログを見てWEBPOWERのスプリクトをダウンロードしたのですが
それを参考にしてもよいでしょうか?
それとも他のスプリクトを参考にしたほうがよいのでしょうか?
ってなんか的外れな質問かもしれませんがすみません
do_enterの最後ですね
ちょっと頑張ってみます!本当にありがとうございました。
715 :
:2000/12/05(火) 23:14
スプリクトってなんだよ?
スリプクトの間違いでした。
718 :
711 :2000/12/06(水) 14:00
あ ほんとだ!スプリクト(笑)
719 :
名無しさん :2000/12/08(金) 18:00
チャットに入室メール通知をつけることが出来ました! どうもありがとうございました!
721 :
名無しさん :2000/12/09(土) 09:40
ζ / ̄ ̄ ̄ ̄\ / \ /\ \ / | ||||||| (・) (・) | (6-------◯⌒つ | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | _||||||||| | ヵッォ このスレageるぞ \ / \_/ / \________________ \____/
722 :
名梨さん :2000/12/09(土) 14:25
>>719 $chat =~ s/@はあと@/\&hearts;/;
でどうよ?
723 :
名梨さん :2000/12/09(土) 14:28
やられた。
>>722 を訂正。
ゆいチャットベースなら
$FORM{$key} = $value;
みたいな行の上に
$value =~ s/@はあと@/&amp;hearts;/;
でいいと思うよ。IE限定。
Symbol書体の「ゥ」でもいけるぞ。
724 :
名梨さん :2000/12/09(土) 14:33
>>723 もっかい訂正してもいいっすか。
$value =~ s/\@はあと\@/&amp;hearts;/g if($key eq 'chat');
親切心働かせようって考えたのが間違いだったかな。。。
725 :
名無しさん :2000/12/09(土) 18:07
726 :
>725 :2000/12/09(土) 18:37
読むほうのスクリプトでどう処理してるかわかんないとね… とりあえず19行目を $agent= "$ENV{'HTTP_USER_AGENT'} $ENV{'HTTP_REFERER'}"; とでもしとけば? これだとAGENTと一緒に表示されるよ。 もしくは # 書き込みデータの編集 $disp_log = "$count: $date: $addr: $host: $agent: $ENV{'HTTP_REFERER'}: \n"; にして、取り出すほうで ($count@`$date@`$addr@`$host@`$agent@`$referer) = split(/: /@` $disp_log); とかで取り出した$refererを表示させるとか。
727 :
名無しさん :2000/12/10(日) 11:08
>722 723 724 親切にありがとうございましたおかげできちんとうごくようになりました
728 :
719 :2000/12/10(日) 11:27
今度は、参加者表示のところに覗くだけで名前がでるようにしたいのですができますか? その名前の後ろに(ROM)と表示させたいです。今回は手本となるCGI がないのでお手数かけますがお願いします。 ゆいちゃっとPRO(スタンダード)がベースです。
729 :
>728 :2000/12/10(日) 19:15
大昔のサポート掲示板にあったログだけど… ↓ ゆい >ERIさん pref.cgiのsub sankaで push (@sanka3@` "$handle☆") if($handle ne $host2); の1行を、 if($handle ne $host2){ push (@sanka3@` "$handle☆"); }else{ $rom=$rom+1; } に変更し、 push (@sanka3@` "$name☆") if($name ne $host); の1行も、 if($handle ne $host2){ push (@sanka3@` "$name☆"); }else{ $rom=$rom+1; } に変更して、 chat.cgiのsub htmlは、 print "<FONT SIZE=2>参加者($num)ROM($rom):"; のみの修正ではどうでしょうか。 (11/21(金)5:34)このままだとホスト表示だから、途中でクッキー取るようにすれば 常連なら名前も出せるんじゃない?
730 :
729 :2000/12/10(日) 19:19
ごめん、まちがえた。 あれはROM人数表示のやつだ。
732 :
719 :2000/12/10(日) 21:35
IP表示まではできました
733 :
名無しさん :2000/12/13(水) 21:01
http://hisoka.vis.ne.jp/script/veda.html vedaという掲示板を利用しているんですけど、iモードで見ると
ファイルが大きすぎて大変なんです。
設定でスレッドを10個、レスを10個表示するようにしているので
すが、iモードだとスレッドを3個、レスを3個くらいが妥当かと思
っています。
そこで、同じ内容(ログファイル)を利用してiモード用の掲示板を
作りたいのですが、どこをどう改造すればよいのでしょうか?
734 :
名梨さん :2000/12/14(木) 10:44
>>733 readme.htmlによると、以下の設定が可能なようです。
ひとまず、3を代入してみては如何でしょう?
デザインを変えるためには、Perlの基礎的な構文と、HTMLの知識があればなんとかなると思います。
# ここの作者さんは「編集不可」みたいな事を言ってるので、お気をつけて。。。
$INIT_maxlines_current
最初のページ($INIT_htmlfileで設定したファイル)に表示するスレッドの数です。デフォルトは 30 です。
$INIT_maxreses
ひとつのスレッドに対する最大のレスの数です。レスがこの数を超えるとそのスレッドにはそれ以上投稿できなくなります。デフォルトは 200 です。
$INIT_showres
ページ表示のときに表示するレスの数です。デフォルトは 10 です。
735 :
名無しさん :2000/12/14(木) 19:33
パソコン用と同じ内容(ログファイル)を利用してiモード用 掲示板を作りたいんですけど
>>735 tcupレンタルしとけ。うん、君にはそれが似合ってる。絶対。
>>735 ついでなんでドリキャスでも見れるようにしてください。
739 :
名梨さん。 :2000/12/15(金) 02:16
マジレスしてみるか。
>>735 それだと「改造」では無く「新規作成」の方が早いと思います。
iMode対応の掲示板スクリプトを使うか、tcupを借りると良いでしょう。
過去ログを残すなら、HTMLを加工して置いておくのは如何?
>>738 ドリキャスで掲示板見る時の制限ってどんな感じっすか?
知らん。ドリキャス持ってない。
>>740 2chにもドリキャス経由のカキコあるみたいだから、
普通は対応しなくても大丈夫だと思うよ。たぶん。
742 :
馬鹿馬 :2000/12/15(金) 16:21
海外のCGIを落として記述を日本語に書きなおしてあげてみたら 文字化けしてしまうのはどうしてでしょうか? メタタグも入れたんですが・・。
>>742 ソースのアップもせず、どのスクリプトを使っているかも言わず、
文字化けしてしまうのはどうしてでしょうか? ってご無体な…
ドリキャスってなんかの「3」って聞いたような気がするんだけど 何の3なんだろ?もじら、ねすけ、IE?
ドリキャスのブラウザってアクセスオリジナルだろ?
746 :
名無しさん :2000/12/16(土) 12:01
747 :
とほほ :2000/12/16(土) 13:58
とほほさんの「ラウンジ」に二重投稿防止機能をつけたいのですが、どうやった良いでしょうか?
http://wakusei.cplaza.ne.jp/twn/cgi-bin/wwwlng.txt IPを調べて一定時間の連続投稿禁止にするのでは無くって、ログファイルを読み込んで、同じ内容だったら書き込めないようにしたいのです。
また、他のサイトからの書き込みを排除するために、ログファイルに書き込む時にリファーをとって自分のCGIからの書き込みに限定したいのですがどうしたら良いでしょうか?
お知恵を拝借させていただきたいと思います。
748 :
↑ :2000/12/16(土) 15:10
ラウンジは結構いいスクリプトだよねぇ(重いけど) 最近は2chクローンの大規模なマルチスレッド&フロートBBSが増えてきたけど、そんなに書き込みが多くないんだったら見にくいだけだっての!! 規模が大きくないのだったら、ラウンジはいいものだと思うぞ?まあ、実際に使われてるのはあんまり見ないけど(笑) って、独り言言ってスマソ。
>748 そう?うちなんか親記事などは少ないがレスは平均にしても30は付くから結構便利だなと思っているけど。 まあレスが管理人しかつかねーとこなら無駄やけどな(ワラ
>>744 >>745 Mozilla/3.0+(DreamPassport/3.0)
っつーのを今日偶然ログで見つけた
これそうだよね?
>>750 ピンポン。
Mozilla/3.0 (DreamPassport/1.01)
Mozilla/3.0 (DreamPassport/2.0)
Mozilla/3.0 (DreamPassport/2.1)
Mozilla/3.0 (DreamPassport/3.0)
752 :
名梨さん。 :2000/12/16(土) 20:49
>>746 dayx.cgiを、ミラーサイトやiMode用サイトから呼び出してみては如何?
そういう事じゃなくて?
>>747 前者は、ログファイルの形式がどうなってるかややこしかったので割愛。スマソ。
後者は、appendMessageサブルーチンに記述。
if (index($ENV{'HTTP_REFERER'}@`"ラウンジCGIを設置したURL") == -1) {
&showErrorPage("他のフォルダを参照することはできません。");
exit(0);
}
を追加、かな。
>>751 便乗質問ですが、UserAgentにMozillaを名乗らない有名なブラウザってあります?
753 :
747 :2000/12/16(土) 21:23
>>752 ありがとうございました!!リファーの件、うまくいきました。感謝、感謝です。
とほほラウンジで保存されるログの形式は以下の通りです。こちらの方も、お力添えがいただければ大変ありがたく思います。Subject: スレッドのタイトル
========================================
From: 最初の書き込み人
Date: 2000/12/16(土) 21:02:10
本文がこれです。
========================================
From: 次にレスした人
Date: 2000/12/16(土) 21:02:28
こうやってログファイルは書かれます。
========================================
From: 3番目にレスした人
Date: 2000/12/16(土) 21:02:45
これがこのスレッドの最新レスです。
754 :
大馬鹿3太郎 :2000/12/17(日) 01:01
>750.751 あってた良かった(w だとすると結構ドリキャスユーザーの来るページや掲示板の作成は 気を付ける点もけっこうあるんじゃない
755 :
とほほ :2000/12/17(日) 11:47
757 :
かずさ :2000/12/17(日) 17:27
758 :
ななし :2000/12/17(日) 17:57
759 :
:2000/12/17(日) 20:21
>>757 2ちゃんねる型はみんなカコワルイけど。それにしてもなんかね。
IEのせいかと思ってNNにアドレス入れたら直リン禁止で蹴られるし。
760 :
757のかずさ :2000/12/18(月) 07:21
763 :
名梨さん。 :2000/12/18(月) 20:49
すみませんが、手抜き気味な返答をさせて戴きますです。
>>753 =747
はじめに言っておきますが、コードは汚いです。
でも、wwwlng.txtを読んで勉強する気なら、わかりやすいと思ってこうしました。
# トピックに発言を追加する
という行を探して、その下に判定ルーチンを書くのが良いかと思います。
open(IN@` $file);
while (<IN>) {
if (/^Reply-To: /) {
} elsif (/^From: /) {
} elsif (/^E-Mail: /) {
} elsif (/^HomePage: /) {
} elsif (/^Date: /) {
} elsif (/^Solved: /) {
} elsif (/^========================================[\r\n]*$/) {
} elsif ($hflag && ($_ eq "")) {
} else {
# ここに本文があるはずです。何故そうなるかは、上の行と同じ行を探してみてください。
if ($FORM{'MESSAGE'} eq $_) {
error("これは二重投稿です。");
}
}
close(IN);
こんな感じです。
(ログが複数行にわたって保存されてる場合は、少し修正しないとだめかも)
あとは、理解出来次第、if-elsifを正規表現などに直してみてください。
# これよりも簡単に本文を取り出せる方法があったら、それを選択すべきだと思う。
# Subjectだけ比較して判定する、とかだったら、もっと簡単に書けますね。
764 :
名梨さん。 :2000/12/18(月) 20:55
>>763 error("二重投稿です。");
のところを
&showErrorPage("二重投稿です。");
になおしてください。スマソ。
>>755 -756
とてもためになったです。THXです。
UAによる処理の分岐をしようかと思ったんですが、
自分の弱小サイトは殆どIEだったもので。。。
LynxやiCabはMozillaと言わないみたいですね。
昔IEがUAによる差別をされないためにMozillaを名乗ったと聞きましたが、
やはり今の有名どころブラウザも、そういうのを意識してるのかなぁと思い、
752のような質問の仕方になったわけでした。
765 :
名梨さん。 :2000/12/18(月) 21:06
>>760 =757
ソースへの直接リンクのみ応談って事にしましょう。(できれば圧縮も勘弁)
アクセス向上に貢献してるみたいで、なんか気持ち悪いです。
右クリック禁止とか言うし。
自作アイコンは、スクリプトに対して
s/現行ログトップ/<IMG SRC="logtop.gif" border=0>/g;
ってな感じでどうですか。
>>762 # 記事を展開
という行の下あたりにある
while (<IN>) {
を次のように書き換えてみましょう。
@data = <IN>;
@data = reverse @data;
foreach (@data) {
# 効率の問題とかは考えて無いです。念のため。
>>765 うまく作動しました。
ありがとうございました。
>>763 ありがとうございました。後は、自力でなんとかやってみます!!
769 :
(゚∀゚) :2000/12/23(土) 23:16
770 :
名梨さん。 :2000/12/26(火) 04:41
久々に来た。
ラウンジネタ、多いですね。このコードは改造向けじゃないと思う。
>>769 頭が死んでるので、まともじゃない可能性大ですが。
1.QUERYにstartを指定された時は、最新記事の制限を取り払う。
(もし、ログファイルが最新順なら、読み込んだ後reverseする)
2.ログファイルを読み込む所に、カウンタ変数を仕込む。
3.カウンタ変数がstartの値になるまで、データは破棄する。
(上でreverseしたなら、最後に、ログファイルをreverseする)
こんな感じは如何?
ログの全件数が先に取得できるなら、
reverseしなくても、全件数-startぶんだけ取得すれば良さそうです。
# やっぱり、ログは1レコード1行が好みだなあ。。。
771 :
むぎ茶 :2000/12/26(火) 17:02
BBSで記事管理部分なんか作るからめんどうなんだよ news reader みたいに表示だけにしとけ。 バックエンドは inn かなんかで楽チン。実績あるし。
772 :
むぎ茶 :2000/12/26(火) 17:03
そーいや 2ch ってトップカテゴリの NetNews つくるって話が 前にあったような 実現するといーないーな
>>772 いいっすねえ…
でも開けてみたら大量Flameだったりして(笑
frameね。 flameは炎。
775 :
名無しさん :2000/12/27(水) 00:26
>>769 もともとラウンジのスクリプトは全ディレクトリを走査してspliceしてるだけだからメモリ食うけど・・・。
サブルーチンshowTopPageの
splice(@files@` $num);
の行を
@files = splice(@files@` $num * ($page-1)@` $num);
にすればいいんじゃない?
$pageは最初からの時は1ね。
>>774 おおーぃ(泣
その「Frame」は骨組みのフレームだよう…
ホントにフレーム起こす気か?
勘弁してくれよー
777 :
774 :2000/12/27(水) 05:09
スマソ。cgi板だからHTMLのframeのことかと思ってた。
779 :
名無しさん :2000/12/27(水) 16:45
>>778 まずデータをどんなふうに保存するのか決めるといいすね。
例1 - カテゴリごとに別ファイルを用意する
例2 - ひとつのファイルで、その中をカテゴリごとにまとめる
例3 - カテゴリ名を付加したデータをバラバラに保存し、表示するとき並べなおす
改造なら(3)がもっとも簡単で、(2)、(1)の順に面倒になると思う。
新規作成なら、逆に(1)がもっとも簡単で、(2)、(3)は面倒だろう。
>> 779 なるほど.だいぶ整理がつきました. 新規作成てなわけで 例 1 がいいと思いました. カテゴリ別にファイルを用意し,それぞれのファイルを読みこませるわけですね ご指摘,ありがとうございます
781 :
(゚∀゚) :2000/12/30(土) 21:31
>>769 で質問した者です。
>>770 様、
>>775 様
ありがとうございます。見事にできました。
ARIGATOUΨΨΨ
それで、今度はトピックの内容表示のほうを
何件かずつ表示できるように改造しようと思ったのですが、わかりません。
ログの形が一発言一行のやつなら簡単そうなんですが、この掲示板の場合、
========================================
From: 名前
Date: 2000/12/30(土) 13:50:21
本文ああああああああああああああああああ
ああああああああああああああああああああ
========================================
From: 名前
Date: 2000/12/30(土) 13:51:43
本文いいいいいいいいいいいいいいいいいい
いいいいいいいいいいいいいいいいいいいい
========================================
みたいな感じになっているんです。さっぱりピーマンです。
どうしたらいいのでしょうか。
HINTOKUDASAIΨΨΨ
782 :
ほういち :2000/12/30(土) 21:48
>781 質問内容がいまいち見えないのですが、ログが1レコード1行に なってないので困ってるって事でしょうか? splitの使い方を知ってる前提ですが、1レコード1行の場合、 ファイルから1行読んでセパレータで切り分けますよね。 で、1行づつ読む指示をする時に行の区切りについては 特に指定しませんよね。これはデフォルトではperlが\nを行の 区切りだとして動作するからです。これを変えてやれば 任意の区切り文字までを1行として読み込む事ができます。 今回の場合、======================================== が 区切りだとすると、読み込む前に特殊変数$/を使って $/ = "========================================"; とすればFromから本文の最終行までを1行として読んでくれます。 そして、splitを使って\nで切り分ければいけるように思います。 外してたらすみません。
783 :
名無しさん :2001/02/14(水) 18:13
age
>>781 とほほのwwwlngか?
つまり項目を増やしたいって事ですよね?
ええとどうだったか‥ 手元にソースがないから忘れた
ゆいぼっとの独り言が消えた。悲しい。
786 :
名無しさん :2001/02/21(水) 23:20
787 :
名無しさん :2001/02/22(木) 15:35
788 :
名無しさん :2001/02/22(木) 23:28
いろいろあるもんだなあ・・・。
789 :
:2001/02/23(金) 00:03
790 :
名無しさん :2001/02/23(金) 03:56
奇妙な使い方しているな。 sprintf(sprintf("%%0%dld"@` $figure_main)@` $count);
791 :
名無しさん :2001/02/27(火) 20:53
age
普通は sprintf "%0*d"@` $figure_main@` $count; だね。:-)
793 :
名無しさん :2001/02/28(水) 00:33
up up
sprintf "%0${figure_main}d"@`$count; とかやってた。鬱
795 :
名無しさん :2001/03/04(日) 23:16
787です。 790@`792@`794は787への回答でしょうか? このスレッドで質問しているということからもわかっていただけると思いますが、 わたしはCGIの知識が無いので、変更箇所の 変更前と変更後を教えていただけないでしょうか。 よろしくおねがいします。
796 :
名無しさん :2001/03/10(土) 08:20
797 :
manami :2001/03/11(日) 13:00
798 :
:2001/03/12(月) 06:51
799 :
名無しさん :2001/03/12(月) 07:00
>>797 もうちょっと具体的に。
”発言欄のオートリンク”ってどんなもののこと?
800 :
名無しさん :2001/03/12(月) 10:23
>797 if ($name eq '') { &error('名前が入力されていません'); } の下当たりに $comment = ~ s/はーと/<font face=symbol color=red>ゥ</font>/g;
801 :
800 :2001/03/12(月) 10:30
オートリンク忘れた $comment = ~ s/はーと/<font face=symbol color=red>ゥ</font>/g; $comment =~ s/([^=^\"]|^)((http|ftp):[!#-9A-~]+)/$1<a href=$2 target=_blank>押せ<\/a>/g;
802 :
800 :2001/03/12(月) 10:36
>798 かなり危険じゃないか? 簡単だけどヤメテオケ 全然関係無いが、今日始めて2chに書き込みした(怖
804 :
798 :2001/03/12(月) 16:22
>>802 具体的に説明しますと、あるリンク集CGIのログデータにある登録Numberを
その1行掲示板に引数として渡してログファイルを増殖、個別に書き込める様にしたいんです。
登録されたリンクそれぞれに感想等を書き込むっといった感じでして。
危険なのは十分分かってるので改造法お教えお願いします。
805 :
manami :2001/03/12(月) 20:44
>>800 ありがとうございました!!
発言中のURLを自動でリンクするのは成功したんだけど・・
これだけうまくいきませんでした どうしてだろ?
↓
$comment = ~ s/はーと/<font face=symbol color=red>ゥ</font>/g;
誰かご存知の方がいらっしゃればお願いしますm(_肉_(_肉_(_肉_)mペコリ
今から自分でも調べてみます♪
806 :
manami :2001/03/12(月) 20:47
書くの忘れてた・・ 805=797です ごめんなさい。。(涙)
807 :
名無しさん :2001/03/12(月) 22:36
$comment = ~ s/\Qはーと\E/<font face=symbol color=red>ゥ</font>/g; だっけ。
809 :
名無しさん :2001/03/13(火) 01:22
810 :
マニ :2001/03/13(火) 03:07
811 :
名無しさん :2001/03/13(火) 06:57
>807 $comment = ~ s/\Qはーと\E/<font face=symbol color=red>ゥ</font>/g; じゃ無理みたいよ?なんでかな? 誰か知らない?
812 :
名無しさん :2001/03/13(火) 07:01
>>811 $comment = ~ s/\Qはーと\E/<font face=symbol color=red>ゥ<\/font>/g;
ではいけませんか?もしくは、
$comment = ~ s%\Qはーと\E%<font face=symbol color=red>ゥ</font>%g;
とか。
ネタか・・・鬱だ
815 :
名無しさん :2001/03/13(火) 21:34
&hearts;
816 :
名無しさん :2001/03/13(火) 21:58
どうも思いません。
818 :
manami :2001/03/14(水) 05:11
>813 $comment = ~ s/\Qはーと\E/<font face=symbol color=red>ゥ<\/font>/g; で成功しました!!ありがとうございます あと、わざわざ動作確認してくれた811さんにも感謝です! わーーい よかったーーーーー!!
>>818 819は気にしないように。
窓の汚れみたいなモンです。
エラって何ですか?(ピュア
822 :
名無しさん :2001/03/14(水) 10:58
823 :
名無しさん :2001/03/14(水) 18:12
最大件数に達して消えてしまうものを、別ファイルのとって、それを閲覧する時に見せれば済む話ですよね。
824 :
名無しさん :2001/03/14(水) 18:25
822=shige
>>823 書き方が悪かったようで申しわけありません。
そのスレッドごとにです。
例えば、このスレの場合、1番があって、飛んで800番台が
表示されてますが、そういう感じにしたいのです。
>>825 レスを「ひとつずつ読んでは表示する」方式になってるのを
「全レスを読み込んでから最後の20個だけ表示する」よう変える。
827 :
shige :2001/03/15(木) 16:12
クックックック、オイコラお前ら、低スキルは黙ってろや。
ついに折れの出番らしいな。Go Go hakking!!
おっと、自己紹介が遅れてすまんかったな。>>oll
折れは世界を駆け抜ける超大物ミレアニム・ハッカーshige様だ。
hehehe、お前らの言うホームハッキングなんて余裕でできるぜ。
大きな声ではいえないが、小さな声でも言わないぜ。
折れはすでにFotoshopをハッキング済だ。
某大手コンピュータに侵入したハッキングだぜ。
アンド、むかつくヤツにはハッキング・ボム!!
こんなKOOLなハッカーの俺様に頼んでみろや>>oll
[email protected]
楽しいテンプレだな・・・
もとは論毛?
飽きた。それ
404だよ。。。
834 :
名無しさん :2001/03/16(金) 01:08
835 :
pass :2001/03/16(金) 02:46
Kent Web のCOSMO GATE-EX 等を使って
例えば「abc」から始まるパスワードはAディレクトリのindexに
「def」から始まるパスワードはBディレクトリのindexに、
「ghi」から始まるのはCディレクトリのindexにと
パスワード毎に違うディレクトリに飛ばしたいのですが、
改造方法をご教授してください。宜しくお願いします。
http://www.kent-web.com/pwd/gatex.html
836 :
名無しさん :2001/03/16(金) 03:29
>>834 HTTP_USER_AGENTを見て、i-modeと判断できたら表示数を
少なくする。とかでいいんじゃない?
>>835 パスワードの先頭3文字を調べて、$targetdirを変更する。
とかでいいんじゃない?
HIRO_MUに聞け
838 :
名無しさん :2001/03/20(火) 15:06
guest guest
あゆ板に時間制限機能を付けたいのですが・・・・・ あゆ板を現在配布している所が分かりません。 アドレスが書けないのですが、どうでしょうか? もしできる事なら宜しくお願いします。
>>838 そのCHATのソースは見てないから信用しないでね。yybbsから移植。
&auto_link($comment);
を書き込み処理の中に追加。
sub auto_link {
$_[0] =~ s/([^=^\"]|^)(http\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#\%]+)/$1<a href=\"$2\" target='_top'>$2<\/a>/g;
}
を一番下でもどこでも追加。
ダメだったら優しい人探して。
>>840 安心してください。
あゆ板に時間制限機能は最初からついています。
842 :
名無しさん :2001/03/21(水) 12:20
>>841 それじゃダメじゃない?
面倒だから書かないけど。
843 :
まなぶ :2001/03/23(金) 04:25
http://access.pos.to/freecgi/webmail.txt にあるフォームメールのスクリプトなんですが
90行目で「内容の確認画面を出さない」に設定しても
どうしても確認画面が出てしまいます。
129行目あたりをいじればいいのかと思うんですが
そこら辺をいじるとどうしても500になってしまいます。
確認画面を出さずに送信するにはどうしたらいいんでしょうか?
ちなみにこのスクリプトはシェアウエアなんですが、
ばれないようにするには20行目の$copyrightemailを
変えちゃえばいいんですよね?テストしてみたところ
$copyrightemailのメアドの所にこのCGIのあるURLと
私のIPが記載されたメールが届くようになってた・・・。
金払え。そして二度と来るな。
845 :
まなぶ :2001/03/24(土) 03:35
うー、是非ご教授願いたいのですが・・・。
犯罪の手助けする気はさらさらね―よ つか、二度と来んじゃねーよ、って言っただろー
847 :
wind :2001/03/28(水) 13:47
848 :
名無しさん :2001/03/29(木) 01:31
>>847 投稿ごとに番号($no)をふって、
もし最大記事数($max)を超えてたら($no>$max-1)
最大記事数内におさまるまで(while)
ログファイルの最後の行を削除すればいい。(pop(@log))
…でいいんだっけか。
「#フォームからのデータをデコードするサブルーチン」のelsifは、
もうちょっとひねってみよう。
あ、@logってのは適当に書いたから、自分で名前変えてくれ。
850 :
名無しさん :2001/03/29(木) 03:09
>>848 一般的な配列に入ってるログならそれでもいいけど
件のスクリプトじゃ通用しないでしょ
尚且つ、 それなら$#htmlbbs = $maxlog; で十分
>>847 $htmlbbs =~ s/&lt;!--comment--&gt;/$html/;
の次に、
$htmlbbs = join '<HR>'@` (split(/<HR>/@`$htmlbbs))[0..$maxlog];
$htmlbbs =~ s/(<HR>)*$//;
とする。$maxlogにはお好きな値をどうぞ。
851 :
wind :2001/03/29(木) 09:28
852 :
nanashi :2001/03/29(木) 14:39
暇なのでageとこ。
853 :
名無しさん :2001/03/29(木) 15:44
ここのChild Forumの改造です。
http://www.cj-c.com/ 既存の$name、$email等のデータの他にいくつかデータを増やしました。
仮にその中の2つを$mark、$testとします。
トップページの記述で、$markが1だったとき、$testに入力された数値データを比較し、
トピック内で一番大きなものを、トップページのトピック一覧で、
項目の一つとして表示したいのですが、どうもうまくいきません。
どうしたらいいでしょう?
854 :
853 :2001/03/29(木) 15:46
具体的には、270行目くらいの foreach ($page .. $page_end) { ($namber@`$date@`$name@`$email@`$d_may@`$mark@`$test@`$comment@`$url@` $space@`$end@`$type@`$del@`$ip@`$tim) = split(/<>/@`$NEW[$_]); の後に、 if($mark==1){ foreach ($page .. $page_end) { ($snam@`$sdate@`$sname@`$semail@`$sd_may@`$smark@`$stest@`$scomment@`$surl@` $ssp@`$send@`$sty@`$sdel@`$sip@`$stim) = split(/<>/@`$NEW[$_]); if($stest > $test_a){$max_test = $stest;} $test_a = $stest; } if($max_test > $test){$test = $max_test;} } と入れてみたんですが…
855 :
850 :2001/03/29(木) 20:04
>>851 正しい状態のログがどういうものなのかわからないから、
正確なことは言えない、初期状態のログHTMLを示すべし。
856 :
wind :2001/03/29(木) 20:18
>>856 >htmlbbs =~ s/&lt;!--comment--&gt;/$html/;
>$htmlbbs = join '<HR>'@` (split(/<HR>/@`$htmlbbs))[0..$maxlog];
>$htmlbbs =~ s/(<HR>)*$//;
を、
if($htmlbbs =~ s/&lt;!--comment--&gt;/$html/){
$htmlbbs = join '<HR>'@` (split(/<HR>/@`$htmlbbs))[0..$maxlog];
$htmlbbs =~ s/(<HR>)*$//;
}
とするとどうなりますか。
858 :
wind :2001/03/30(金) 08:43
>>857 うまくいったり、うまくいかなかったりします。。。
>>858 改行を取ってないからのような気が・・・
>open(FILE@` "$dat");
>@htmlbbs = <FILE>;
>close(FILE);
を削除し、
>foreach $htmlbbs (@htmlbbs) {
>$htmlbbs =~ s/&lt;!--comment--&gt;/$html/;
>$htmlbbs = join '<HR>'@` (split(/<HR>/@`$htmlbbs))[0..$maxlog];
>$htmlbbs =~ s/(<HR>)*$//;
>}
の部分を
open(FILE@` "$dat");
while(<FILE>){
chomp;
if(s/&lt;!--comment--&gt;/$html/o){
$_ = join '<HR>'@` (split(/<HR>/@`$_))[0..$maxlog];
s/(<HR>)*$//;
}
push(@htmlbbs@`"$_\n");
}
close(FILE);
にすると?
860 :
wind :2001/03/30(金) 21:48
最後の<HR>が表示されないです。
861 :
名無しさん :2001/03/31(土) 09:43
age
862 :
名無しさん :2001/03/31(土) 15:25
漠然とした質問で悪いんですけど、 タグ使える掲示板でタグの閉じ忘れを防止するような改造ってどうすればいいんですかね? <b>太字/b>だの <b>太字</b>だの・・もう勘弁して欲しいです。 if ($tagkey == 1) { $value =~ s/<>/&lt;&gt;/g; ここをなんとかすればいいんでしょうか?
863 :
862 :2001/03/31(土) 15:30
すいません、変換されちゃいました・・ if ($tagkey == 1) { $value =~ s/<>/&amp;lt;&amp;gt;/g;
864 :
名無しさん :2001/03/31(土) 17:10
>>862 -863
タグの閉じ忘れ防止は、けっこう面倒だよ。
基本的な方針はこんなふうだと思う。
# (1)開始タグと閉じタグが正しく対応してるのだけ特別な記号に変換
1 while $str =~ s/<(\w+)(.*?)>([<]*)<(\/\1\s*)>/≪$1$2≫$3≪$4≫/gis;
# (2)この段階で残った"<"、">"は無効化
$str =~ s/</&lt;/g;
$str =~ s/>/&gt;/g;
# (3)最初に別の記号に変えておいた"<"と">"を元に戻す
$str =~ s/≪/</g;
$str =~ s/≫/>/g;
でもこれだと<BR>とか<IMG>とか閉じタグがないやつが来たとき
破綻がおきるから、さらに手を入れる必要ある。。。
865 :
名無しさん :2001/03/31(土) 17:22
>>864 使えるタグと指定したらもう少しらくでは?
866 :
862 :2001/03/31(土) 21:51
>>864 さん
思ったよりむずかしそうですね・・でも普段使うタグは
<b><i><font size="*"><font color="#******">
<s><u><a href="****"><pre>
の8つくらいなので、その方法でいきたいと思います。
ありがとうございました!
>>862 あ、すんません。864の(1)は試したら全然うまく動かなかった。
「正しく対応してるタグだけ≪≫に換える」正規表現、誰か書いて〜。
868 :
名無しさん :2001/04/01(日) 00:35
ゆいちゃん方式でいっぱい閉じとけばいんちゃう?
あり?誰も正規表現書いてくれない。みんな花見で飲んだくれてんのかー。 じゃあこれでどうだー。使い方は $value=&tagcheck($value); ね sub tagcheck { my $str = shift; my $tags = 'b|i|s|u|a|font|pre'; $str =~ s/<((?!\/?(?:$tags)\b)[^>]*)>/&lt;$1&gt;/gios; 1 while $str =~ s/<(\w+)([^>]*)>([^<]*)<(\/\1[^>]*)>/≪$1$2≫$3≪$4≫/gis; $str =~ s/</&lt;/g; $str =~ s/>/&gt;/g; $str =~ s/≪/</g; $str =~ s/≫/>/g; return $str; }
↑しまった&lt;と&gt;が・・・。もっかい全角で書きなおし。 sub tagcheck { my $str = shift; my $tags = 'b|i|s|u|a|font|pre'; $str =~ s/<((?!\/?(?:$tags)\b)[^>]*)>/&lt;$1&gt;/gios; 1 while $str =~ s/<(\w+)([^>]*)>([^<]*)<(\/\1[^>]*)>/≪$1$2≫$3≪$4≫/gis; $str =~ s/</&lt;/g; $str =~ s/>/&gt;/g; $str =~ s/≪/</g; $str =~ s/≫/>/g; return $str; }
871 :
862 :2001/04/01(日) 15:05
>>864 さん
うう、ありがとうございます。(T_T) 一応検索したんですけど、
ttp://www3.mahoroba.ne.jp/~yuugeki/cgi_lab/download.html ここのdecoder.plやゆいチャットはあとでまとめて閉じタグを補完する形で、
望んでた機能とはちょっと違ったので・・
それで870の方法をやってみたんですけど、ちょっと上手くいかない場合があるんです。
○ <b>あ</b>い<s>う/s>え<u>お</u>か
○ <b>あ</b>い<s>う/s>え<u>お/u>か
○ <bあ</b>い<s>う</s>え<u>お</u>か
× <b>あ</b>い<s>う</sえ<u>お</u>か
4番目の「</s」みたく途中で「>」を忘れると、「</sえ<u>」って認識されちゃうみたいで。
これだけなんとかなりませんか・・?
いやーわりいっす。おれあんまし正規表現は得意じゃないもんで。 JAPU氏とかgunzip氏とか出てきてくれんかな。 正しい正規表現を教えてくれるなら爆笑クンでもいいすよ。。。
873 :
名無しさん :2001/04/02(月) 14:43
874 :
名無しさん :2001/04/03(火) 02:11
BBSに軽いテキストカウンターを付けたいのですが、 やり方を教えていただけないでしょうか?
876 :
ヒイロ :2001/04/03(火) 04:37
877 :
ヒイロ :2001/04/03(火) 04:42
876です。入室時のコメントにタグを使うと、そのログが消えるまで音が鳴りっぱなしになるので、 一度だけ、もしくは別窓で待機画面を付けたいのです。 いろいろとうるさい事言ってすみませんがよろしくお願いします。
879 :
T女の竹田 :2001/04/03(火) 16:04
>>878 んな大げさな・・・と思って解凍して見たら、
すいませんそのとおりでした。
誰か根性のあるひと見てやってくり。
881 :
T女の竹田 :2001/04/04(水) 11:09
>>876 のヒイロさん
とりあえず、自分でここまでやったっての教えてよ。
#結果だけ書くとつまらないしさ。
俺がチャットに入室して、いきなり音がなったら速攻出ていくな(藁
883 :
名無しさん :2001/04/07(土) 21:49
http://www.kent-web.com/bbs/yybbs.html? KENT氏のYY-BORDのアイコン機能なんですが、
「管理者専用」の所を「専用アイコン」にして、
@user_icon = ('icon1.gif'@`'icon2.gif'@`'icon3.gif');
@user_pass = ('pass1'@`'pass2'@`'pass3');
こんな風にユーザー専用のアイコンとパスを設定できるようにして、
それを削除キーでユーザー判別するようにしたいんですけど、どうしたらいいでしょうか?
どうか、よろしくお願いします。
ユーザー専用のアイコンとパスを設定して、 それを削除キーでユーザー判別するように すればオーケーです。
>>883 ざっと見ただけなんで、うまくいくか不明ですが。
(1)スクリプトの最初に追加
%user_icon = ( 'pass1'=>'icon1.gif'@` 'pass2'=>'icon2.gif' );
(2)sub registの「管理アイコンのチェック」のとこを修正
if ($my_icon && $in{'icon'} eq "$my_gif") {
if (!$user_icon{$in{'pwd'}}) { &error("・・・専用です"); }
$in{'icon'} = $user_icon{$in{'pwd'}};
}
KENTのスクリプトは読みやすくていいですね。
処理は場当たり的で糞っぽいですが。