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

【 スクリプト改造依頼スレ 】(丸投げ) part5

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/03/01(水) 09:50:05ID:5+nhA5tl
「スクリプトを改造したいけど、言語の知識ゼロなんでつ」という人がいましたら
ここで依頼してください。ひょっとしたら改造してくれる人がいるかもしれません。

◆依頼するときは以下の点に注意して下さい。(厳守)

(1) 作者が改造依頼を受け付けていない場合このスレを利用する。
(2) 依頼はテンプレ(>>2)を使用する。
(3) 改造してもらって知らん顔をせず、動作報告は必ず行う。

※改造してくれないからといって逆ギレする厨はお断り。

【まるなげどん】 http://s3p.net/~channel2/webpro/marunage/
 あぷろだ。スクを貼るのに必要な方はここを使ってください。(初代スレ132提供)
 依頼者はこちらにも依頼レスをコピペしても構いません。

【 依頼一覧 】 http://webprog.s101.xrea.com/cgi-bin/marunage/marunage.cgi
 依頼の状態や結果が一覧で掲載されています。(part2スレ899提供)

【クリックで救える命がある】 http://www.dff.jp/index_t.php
 改造してくれた方へのお礼も込めてクリック
04492/32006/06/13(火) 21:13:02ID:???
ここから↓
$count_file="./cnt.dat";
$expire = 24 * 60 * 60; # 同一IPをカウントしない有効期限(秒)

open(DATA,"$count_file");
&lock;
($number, @logs) = <DATA>;
&unlock;
close(DATA);

chomp($number);
for ($num = 0; $num < @logs; $num++) {
chomp($logs[$num]);
($gmt, $ip) = split(/\t/, $logs[$num]);
if (time() > $gmt + $expire) { # 有効期限切れのデータは消す
$logs[$num] = "";
} elsif ($ENV{'REMOTE_ADDR'} eq $ip) { # IPチェック
$flag = 1;
}
}
if (!$flag) {
$number++;
open(DATA,">$count_file");
&lock;
print DATA $number."\n";
print DATA time()."\t".$ENV{'REMOTE_ADDR'}."\n";
print DATA @logs;
&unlock;
close(DATA);
}
ここまで↑
04503/32006/06/13(火) 21:14:14ID:???
俺は趣味レベルでしかもperlいじるのはすっごい久しぶりなんで、
もしかして何か抜けてたら寸魔村。

>>447
おっけー、そんじゃ今からぼけぼけやってみる。
0451nobodyさん2006/06/13(火) 21:47:42ID:???
>>450
ありがとうございます
期待してます
04521/42006/06/13(火) 22:46:34ID:???
>>450
ほいできた。


short.phpの23行目〜67行目あたりの
ここから↓

if(phpversion()<"4.1.0") {
$_POST = $HTTP_POST_VARS;
$_SERVER = $HTTP_SERVER_VARS;
}

(中略)

for($i = 0; $i <= $max; $i++)
echo $lines[$i];
?>

ここまで↑
を、次のものと差し替える。
04532/42006/06/13(火) 22:47:14ID:???
ここから↓

if (!isset($_POST['name'])) { $_POST['name'] = ""; } //
if (!isset($_POST['message'])) {$_POST['message'] = ""; } //

if(phpversion()<"4.1.0") {
$_POST = $HTTP_POST_VARS;
$_SERVER = $HTTP_SERVER_VARS;
}
?>
<form method="post" action="<? echo $_SERVER['PHP_SELF']; ?>">
<font face="Arial"><b>-ShortMessage- 自由に書き込んで下さい</b> <small>b,i,s,uタグ可</small></font><br>
<b>N:</b><input name="name" type="text" size="10"
maxlength="10" value="<? echo $_POST['name']; ?>">
<b> : </b><input name="message" type="text" size="40" maxlength="60">
<input name="submit" type="submit" value=" Send "><br>
<?
$lines = file($logfile);//ファイルを配列に読み込む
//名前と本文がある場合書き込む
if ($_POST['message'] && $_POST['name']){
$message = $_POST['message'];
$name = $_POST['name'];
$num = 1; //
if(!$tag){
$message = htmlspecialchars ($message);//タグ不可なら
$message = str_replace("&", "&", $message);
}
if(get_magic_quotes_gpc()){//SJISなら¥除去
$message = stripslashes($message);
$name = stripslashes($name);
}
04542/42006/06/13(火) 22:47:51ID:???
$name = strip_tags($name);
$message = strip_tags($message, $allow_tag);//許可タグ以外除去
$message = eregi_replace("(style|onmouse)[^=]*=", "", $message);

//メールリンクつける場合
$message = eregi_replace("([[:alnum:]_\-\.]+)@([[:alnum:]_\-\.]+)","<a href=\"mailto:\\1@\\2\">\\1@\\2</a>",$message);
//自動リンクつける場合
$message = ereg_replace("(https?|ftp)(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)",
"<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>",$message);
$message = preg_replace("/(<(\w+)[^>]*>)([^<]*)/","\\1\\3</\\2>",$message);//閉じ忘れ
$date = gmdate("d(D) h:i a",time()+60*60*9);//日付のフォーマット
if ($lines && preg_match("/^(\d+)\./", $lines[1], $matches)) //
$num = $matches[1] + 1; //
$message = "\n{$num}. {$name} >> {$message} <font size=1>-<i>{$date}</i>-</font><!-- {$_SERVER['REMOTE_ADDR']} --><br>"; //
$fp = @fopen($logfile , "w") or die($logfile."が開けません");//書き込みモードでオープン
fputs ($fp, $message);//先頭に書き込む
for($i = 0; $i < $logmax; $i++)//いままでの分を追記
if (isset($lines[$i])) { fputs($fp, $lines[$i]); } //
fclose ($fp);//ファイルクローズ
echo $message;//すぐ表示
}
for($i = 0; $i <= $max; $i++)
if (isset($lines[$i])) { echo $lines[$i]; } //
?>

ここまで↑
ちなみに行末に//とだけ付けているのが修正箇所な。
04554/42006/06/13(火) 22:48:41ID:???
名前まちごた。上は3/4ね。

しかしこれ、書かれた当時はこれでも問題なかったのかも知らんが
試しに素の状態で設置して言われた通りに空のログファイルを用意してみたら
100個くらいのエラーメッセージを吐いて画面が埋まる。
まあその辺はきっちり直したつもりだけど、
そのほかにもログファイルをロックとか一切してないから
短い時間に何件もの書き込みが集中したら多分ログ飛ぶよ。
俺ならこんなものは使わずに他のを探すなあ。
04564452006/06/13(火) 23:03:38ID:???
>>448
動作確認できました
感謝感謝です
0457nobodyさん2006/06/13(火) 23:39:11ID:???
【.  CGI名  .】 トラフィックエクスチェンジスクリプト
【 依頼期限 】 できれば今月中を希望します。
【. 依頼内容 】 初期状態では紹介制度のボーナスが
「紹介者が1ポイント獲得する度に0.1ポイントを貰える」に
なっているのですが、それの数値を0.1から0.5に変えてほしいのです。

無料配布のものではないため、ここでURLを公開できません。
改造内容自体は単純なものなのですが知識がないもので・・・。
もし改造してくれる方がいましたら連絡お願い致します。
0458nobodyさん2006/06/13(火) 23:49:20ID:???
>>455
ご丁寧にありがとうございました
IP取得はできるようになったのですが番号はうまくいきません
まあここからは自力で調整してみます
ところでこの手のスクリプト、他を探しても条件に合うのがなかなかなかったもので…
0459nobodyさん2006/06/13(火) 23:59:53ID:???
もしかして前まで使ってたログファイルをそのままにしてあるなら、
完全に空で改行コードひとつも入っていないものに差し換えてみて。

それでも駄目ならまた後で直しとくわ。
0460nobodyさん2006/06/14(水) 00:02:49ID:???
>>457

> 無料配布のものではないため、ここでURLを公開できません

そういうものの改造依頼をここでするなよ。
作者に言え。
0461nobodyさん2006/06/14(水) 00:15:46ID:???
>>459
レス番号も書き直したら出来ました
本当にどうもありがとうございました
0462nobodyさん2006/06/14(水) 00:37:28ID:???
そういやログファイルの書式が古い場合を想定し忘れてた。
ともあれちゃんと動いたようで何より。
0463nobodyさん2006/06/14(水) 02:05:08ID:otUcXERu
【.  CGI名  .】 YY-BOARD5.33
【配布先URL】 http://marunage.s201.xrea.com/joyful/narunage.cgi?mode=thr&no=207
【依頼期限】今月ぐらいまで。
【依頼内容】 以前このスレでランダムアイコン機能追加の依頼があり、上のURLのを使っています。
それに+してランダムを選択しないと出てこない、 ランダム専用アイコンを追加したいのです。
秘密扱いにしたいので、アイコン一覧には表示したくありません。

$ico1がファイルの場所で、$ico2が上に対となるファイルの名前になりセットです。
初めは$ico1だけ書けばアイコン選択で出ないと思ってたのですが、
名前無しのアイコンが選択画面、アイコン一覧画面に出てきてしまい。お願いしにきました。
0464nobodyさん2006/06/14(水) 13:25:51ID:Vx9KzTrZ
http://game10.2ch.net/test/read.cgi/gsaloon/1149921825/577

を見て来ました!こんにちわ!

スパスレっていいます!よろしくね!

スパスレでは24時間いつでもアニメとゲームの話で盛り上がってるから、みんなもぜひ遊びに来てね!

そうそう、一つ気をつけてもらわないといけないことがあるんだ!

にんてんどうって会社が作ってるゲーム機の話題はしちゃだめだよ!

一日中パソコンに向かってる頭のおかしい人が怒って暴れだしちゃうんだ!

そのことに気をつければ、あとはワイワイ楽しく遊び放題だよ!

そうそう、今日は特別に、スパスレをもっと楽しむためのとっておきの秘密を教えちゃうよ!

http://chike.tv/supasure/upload.php
http://chike.tv/hage/upload.php

このアップローダーではどんなファイルでも300MBまでアップロードできるんだ!

みんなが喜ぶようなファイルをアップロードするとスパスレがもっと盛り上がって楽しいよ!

それじゃ、スパスレで君と一緒に楽しく遊べるのを楽しみにしてるよ!またね!
0465nobodyさん2006/06/14(水) 13:53:55ID:???
>>463
おk、把握した。

yyini.cgiの308行目あたりにある

foreach(0 .. $#ico1) {

を

foreach(0 .. $#ico2) {

に、さらにyybbs.cgiの428〜429行目あたりの

$stop = @ico1; ##
foreach (0 .. $#ico1) { ##

を

$stop = @ico2;
foreach (0 .. $#ico2) {

に変える。

注意点としては

$ico1 = 'dummy.gif hage.gif huge.gif hoge.gif moge.gif rand1.gif rand2.gif rand3.gif…';
$ico2 = 'ランダム はげ ふげ ほげ もげ';

といった感じに、ランダム専用画像は一番後ろにまとめて書く事。

これで不具合があったらまたどうぞ。
0466nobodyさん2006/06/14(水) 14:26:05ID:???
>>465
変更して実際に何度も試してみました。
希望通りに表示され、感動しました。

ありがとうございました。
0467nobodyさん2006/06/14(水) 14:33:28ID:???
>>457
一体どんなものかと思ったら18000円もするアフェリツールか。

販売元サイトのFAQに「カスタマイズ要望には可能な限り対応する」って書いてあるけど、
しかもその中に「過去にポイントレートの変更も無料でやりました」って書いてあるんだけど、
なんでわざわざここで頼むの? ねえ、なんで?
04684572006/06/14(水) 16:05:03ID:2DQrvpL6
>>467
「そのスクリプトではないから」。
18000円もしてませんし私が購入したところはサポートや改造が一切無しだったもので。
完全に勘違いしてしまっているようですねw
0469nobodyさん2006/06/14(水) 16:25:56ID:???
>>468
このスレで頼みたいなら、そんな偉そうな言葉遣いやめろよ。
0470nobodyさん2006/06/14(水) 16:42:35ID:???
>>468
そうだったのか。そいつは失礼した。

お詫び代わりにひとつ忠告しておくと、
配布元も動作するサンプルも何の情報も提示せずに依頼されても
改造の難易度が予想できんから誰も受けられないよ。

あと、有料のソースをこんなところで赤の他人に委ねるということのリスクも考えてな。
0471nobodyさん2006/06/14(水) 17:18:37ID:???
>>457
>>私が購入したところはサポートや改造が一切無しだったもので

作者もノンサポならあきらめろ
それともご法度承知でスクリプトうpれw

あきらめなさいw
0472nobodyさん2006/06/14(水) 17:57:10ID:???
>>457
あきらめろ
0473nobodyさんNGNG
ばかだなぁ
0474nobodyさん2006/06/14(水) 22:29:19ID:h+9hOowf
【.  CGI名  .】 YY-BOARD5.8
【配布先URL】 http://www.kent-web.com/bbs/yybbs.html
【依頼期限】今月まで。
【依頼内容】 cgiファイルにある投稿フォームを消して、別のHTMLファイルに投稿フォームを追加。
誰でも掲示板は見られるけど、投稿フォームが無くて投稿ができない状態にしたいです。
投稿フォームのアドレスを知っている人だけが投稿できるよう改造。
0475nobodyさん2006/06/14(水) 23:28:16ID:???
投稿用のフォームの入ったHTMLファイルは自力で用意できるのか?
0476nobodyさん2006/06/15(木) 00:02:50ID:???
>>473
だから、おまえのサイトの方がバカだと、あれほど(ry
0477nobodyさん2006/06/15(木) 00:03:44ID:???
CGIファイルの中にある<form>から</form>までコピペしてHTMLに書いても、
エラーが出てダメでした。ファイルの場所が違うフォルダだからか、何処が原因がわかりません。
多少ならば自力で用意できます。
0478nobodyさん2006/06/15(木) 00:25:57ID:???
>>477
ふーん、おまいさんのレベルは大体分かった。
じゃあこれからぼけぼけと取りかかるけど、
消し飛ばす投稿フォームは一番上のだけでいいの?
それとも各投稿に対する返信もできなくした方がいいの?
0479nobodyさん2006/06/15(木) 00:36:36ID:???
>>478
ありがとうございます。本当に助かります。
消すのは一番上の投稿フォームのみで、
下側の修正はそのままでお願いします。
返信ボタンを消すのもできればお願いします。
04804782006/06/15(木) 02:42:58ID:???
でけたよ。

http://marunage.s201.xrea.com/joyful/narunage.cgi?mode=thr&no=437

途中で怠くなったんでものっそいてけとーに書いた。
まあ不具合が出たらその時に直すってことでひとつ。

yybbs.cgiにアクセスしてもフォームは出ないし返信もできないが
yybbs.cgi?key=0123にアクセスすればフォームが出るし返信もできる。
修正や管理は普通にできるはず。

まあ試してみて。
0481nobodyさん2006/06/15(木) 07:33:57ID:???
【.  CGI名  .】 (自作)
【配布先URL】 (無し)
【. 置き場所 .】 http://www.borujoa.org/upload.php
         D [upload6363.lzh] 借ります。丸投げ。 2 2006年06/15(木)07:26
【. 依頼内容 】 申し込みフォームの作成(修正?)
          form.htmlに記入された項目を「確認する」を押してform.cgiによって確認表示。
          form.cgiによって確認表示されたらページ一番下の「送信」でsend.cgiによって送信。
          送信後「送信完了しました」との表示。

upload6363.lzhにはform.htmlとform.cgiとsend.cgiが入っています。
sendmailによる送信フォームです。
何日も頑張ってるのですが出来ません。
よろしくお願いします。。
04824742006/06/15(木) 07:57:25ID:???
>>480
丁寧にありがとうございます。
夜中に試しみて、結果をもう一度書き込みます。
0483nobodyさん2006/06/15(木) 08:12:19ID:???
>>481
何で引っ掛かるのかもっと詳しく。
04844812006/06/15(木) 08:29:05ID:???
>>483
最初に動かすform.cgiがすでに動きません。
methodはPOSTなので
read(STDIN, $query, $ENV{'CONTENT_LENGTH'});
って書いたんですけど駄目で
とりあえず読み込めてるのかどうかだけ試そうと
read(STDIN, $query, $ENV{'CONTENT_LENGTH'});
print "$query\n";
だけ記述したんですが、print吐き出さず・・(涙
仕方なく
if($ENV{'REQUEST_METHOD'} eq 'POST') {
read(STDIN, $query, $ENV{'CONTENT_LENGTH'});
}
else {
$query = $ENV{'QUERY_STRING'};
}
にしてみたけど駄目でした。
ちなみに元のソースは『10日で覚えるPerl/CGI』という本からで
04854812006/06/15(木) 08:30:17ID:???
#! /usr/bin/perl

if($ENV{'REQUEST_METHOD'} eq 'POST') {
read(STDIN, $query, $ENV{'CONTENT_LENGTH'});
}
else {
$query = $ENV{'QUERY_STRING'};
}

foreach $pair (split(/&/, $query)) {
($key, $value) = split(/=/, $pair);

$value =~ tr/+/ /;
$value =~ s/%([0-9a-fA-F][0-9a-fA-F])/chr(hex($1))/eg;

$FORM{$key} = $value;
}

print <<END;
Content-type: text/html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head><title>ふぉーむでーた</title></head>
<body>
<h1>フォームデータ</h1>
<table border="1">
<tr><th>項目</th><th>入力内容</th></tr>
END
04864812006/06/15(木) 08:31:26ID:???
foreach $key (keys %FORM) {
print "<tr><th>$key</th><td>$FORM{$key}</td></tr>\n";
}

print <<END;
</table>
</body>
</html>
END

こうなってます。
これなら動きましたが、HTML部分を(form.cgiのように)変えて
$value =~ s/</</g;
$value =~ s/>/>/g;
を追記したら動かなくなりました。
04874812006/06/15(木) 11:02:34ID:???
CGIが2つあるのは
1つ目のCGI(確認)でPOSTで受け取った値を表示
↓
その値をHiddenで2つ目のCGI(送信)に飛ばす

もし、修正があるんだったらHiddenでそのまま持ち回り1つめに戻る

という事なのですが、自分はよく分からないんです(汗
<imput type="hidden" name="hoge" value="">でvalueを$hogeに代入??
hiddenなんて使ったことなくて・・・涙
0488nobodyさん2006/06/15(木) 12:49:35ID:???
「URLエンコード」でググれ
04894742006/06/15(木) 15:42:23ID:???
>>480
ありがとうございます。
3つのファイルを上書きして試してみました。
フォームが無くなっていたのは希望通りです。
ただ書き込みしようとすると「書けまへーん 」が出てきてしまい書き込めません。
書けまへーんはどういう時に出てくるのでしょうか?

それと下にある設定はまったく関係ないのでしょうか?ここの設定もいじりますか?
# 投稿キーの使用(スパム対策)
# → 0=no 1=yes
$regist_key = 1;

# 投稿キー画像生成ファイル($regist_key=1のとき)
$registkeycgi = './registkey.cgi';

# 投稿キー実行ファイル($regist_key=1のとき)
$registkeypl = './registpl.cgi';
04904802006/06/15(木) 17:15:53ID:???
>>489
うはwwごめん。隠しフォームを一行書き忘れてた。>>480に修正版をうp。

正しいkeyがある場合に隠しフォームとしてそのkeyを送るのだが、
keyが無かったり違ったりした場合には「書けまへーん」と出るはずだった。
要するに外のHTMLファイルやmethod=getで無理矢理フォームデータを送って来た時のための対策。

$regist_keyは俺の改造とはまったく無関係だから好きなようにすれば良いが、
原則としては0でいいと思う。spamが来た時はkeyを変えればそれで済むし。
04914802006/06/15(木) 17:18:18ID:???
あと1個追記。
4つのファイルはエラーチェックのために1行目がこうなってるが、

#!/usr/local/bin/perl -w

問題が無かったら-wは消してしまっておk。
というか多分消した方がサーバには優しい。
0492nobodyさんNGNG
活気付いてるなぁ
0493nobodyさん2006/06/15(木) 17:36:35ID:???
>>491
ご丁寧に説明までありがとうございます。
投稿が出来ました。-wも消してみました。もうちょっとテストしてみます。
0494nobodyさん2006/06/15(木) 18:00:46ID:???
>>481
まあ頭からひとつずつ解決して行こう。

とりあえずフォームデータを送ると確認画面が出るところまでやるけど、
フォームには具体的にどういう項目を?
0495nobodyさん2006/06/15(木) 18:01:34ID:???
あ、ごめん。もうアップしてあったのか。
それじゃあそれをてけとーにいじってみる。
0496nobodyさんNGNG
send.cgiのSubjectが気になったな
RFC的にはどうなんろ
0497nobodyさんNGNG
ついでに、form.cgiが動かないのは一番最後の行に改行がないからかと
0498nobodyさんNGNG
send.cgiも同じか
04994942006/06/15(木) 21:25:41ID:???
いじってるうちにメール送信まで全部できてしまった。まあいいか。
sendmailって初めて使ったけど偉く簡単に送れるのなあ。世の中のspamが減らないわけだ。

http://marunage.s201.xrea.com/joyful/narunage.cgi?mode=thr&no=439

・3ファイルは怠かったんでサブルーチン使いまくって1個にまとめた。
・tableタグはクソなので全部消したw スタイルシート使え。
・要望には無かったが※マークが付いた項目が無記入の場合は文句をたれるようにしておいた。
・後でフォームの項目を増減させようとすると地獄を見るから気を付けろ。
・あと、送られるメールももう少し読みやすくなるようにしておいた。
・ただし、現状ではメール送信時にエラーが起こった場合の処理は超手抜きで明らかに問題がある。


ところでやってしまった後で言うのも何だが、これって明らかに商用のサイトで使用するものだよな。
金が絡むものをこういうところで
(1)どこの馬の骨とも分からん輩に (2)タダでやらせよう
という姿勢はどうかと思うぞ。

(2)についてはこんなもので金が取れるとは思わんし俺は別に良いけど、
(1)についてはどこにどんなものを仕込まれているか分かったもんじゃないからな。
05004942006/06/15(木) 21:28:28ID:???
続き。

だからまだ残っているかも知れないエラーが完全に取れて、
なおかつこれの中身を>>481が完璧に理解するまでは
実際の商売には使わない事をお勧めしとく。
0501nobodyさんNGNG
うおっ まぶしっ
0502nobodyさん2006/06/15(木) 22:34:20ID:???
久々に良い流れだな。
改造してる人がちょっとカッコイイぜ。
0503nobodyさんNGNG
sendmailっつーかSMTP自体が単純すぎる
0504nobodyさん2006/06/15(木) 23:43:24ID:???
>>502
>>443=448-450=452-455=459=462=465=467=470=475
=478=480=483=490-491=494-495=499-500=俺である件について。

つまりここ数日は俺ばっかり働(ry


   __ 
  |・∀・|ノ  よい
 ./|__┐
   /  [図]
""""""""""""""

     .__
   ((ヽ|・∀・|ノ  しょっと
     |__| )) 
      | |
      [図]
"""""""""""""""""
0505nobodyさん2006/06/15(木) 23:46:49ID:???
正直、この板で本当の職人って数人しかいないんじゃないかと思う
0506nobodyさんNGNG
頑張れー
0507nobodyさん2006/06/15(木) 23:52:09ID:???
居ることはそれなりに居ると思うけどねえ。まあ少なくとも俺は違うが。
0508nobodyさん2006/06/15(木) 23:56:44ID:???
>>506
ちょwおまww
お前も見てないで働けやw
どう見ても俺より数段詳しい癖に。
0509nobodyさん2006/06/16(金) 00:25:47ID:???
>>504
お前になら抱かれてもいいw
05104812006/06/16(金) 04:05:08ID:???
>>494
ありがとうございます。
確かに商用サイトで使用するものです。
本当に助かりました。ご忠告どおり理解できるよう頑張ろうと思います。
本当にありがとうございました!
0511nobodyさん2006/06/16(金) 05:17:16ID:???
【.  CGI名  .】 レッツPHP! Downloads
【配布先URL】 ttp://php.s3.to/data/#dl
【 依頼期限 】 4週間ぐらいと思われ
【. 依頼内容 】 パスワードの認証を不要に(どうせ非公開なのでAdministrationのリンクを参照すれば直ぐ設定できるようにして欲しい)

よろしくお願いします
05124812006/06/16(金) 07:25:01ID:???
>>494
494様、昨日は本当にありがとうございました。
もしよろしければ
[email protected]
にまでメールいただけますでしょうか?
これは捨てアドなのでメールいただけたら本アドから返信致します。
0513494 ◆tyTXROdtXc 2006/06/16(金) 09:37:06ID:???
>>512
最後まで捨てアドでやればいいのにわざわざ本アドを使うということは
相当不気味な話になりそうだな…まあ、とりあえず送ったよ。

本人の証明としてこのトリップのキーを書いておいたが、
それでこの書き込み=俺は証明できても俺=本当の494かどうかはまた別の問題。
どこまで信用するかの判断は自己責任でな。
0514nobodyさん2006/06/16(金) 10:08:01ID:???
ピカチュウ
0515nobodyさん2006/06/16(金) 10:09:18ID:???
>>511
dl.phpの65行目あたりにある

<td align="right"> <img src="point.gif" width="9" height="9"><a href="<? echo $PHP_SELF;?>?job=admin">Administration</a></td>

を

<td align="right"> <img src="point.gif" width="9" height="9"><a href="<? echo $PHP_SELF;?>?job=admin&admin=<? echo md5(ADMINPASS);?>">Administration</a></td>

にする。

ちなみに>>455でも似たような事を書いたが、このスクリプトは設計が古すぎて文法的にあちこちマズい。
書かれた当時はどうか知らんが、今のPHPで動かすとエラーメッセージで画面が埋まるかも。
上記の改造は>>511の要件は満たすがそういうエラーは一切消してないのでそこんとこ注意。
0516nobodyさん2006/06/16(金) 11:04:23ID:???
>>515
上手く動きました
ご丁寧にありがとうございます

なんだかんだ言っても使いやすいんですよね、レッツPHP
0517nobodyさん2006/06/16(金) 14:39:02ID:???
yybbs使ってるけど、スパム多すぎ。
どうすれば防げるのか。
0518nobodyさん2006/06/16(金) 14:49:49ID:???
>>517
それは依頼か?
0519nobodyさん2006/06/16(金) 15:07:04ID:???
ファイル名をyyybbs.cgiにしとけ。
0520nobodyさん2006/06/16(金) 16:28:27ID:???
同じスクリプトばかり重なっていますけど、お願いします。
【CGI名】YY-BOARD5.3
【配布先URL】 http://marunage.s201.xrea.com/joyful/narunage.cgi?mode=thr&no=207
最新バージョンとあまり変わっていません。最新はキー投稿部分が追加されています。
【依頼内容】最新のバージョンだと4ケタの数字画像を出し、
数字をフォームに書くことによりスパムを防いでいるようです。
これだと手間が増えてしまうので、この方法以外では何か無いでしょうか?

NGワード、参照先と本文に同じアドレスが書かれていたら投稿できない、
半角英数字だと投稿できない。URLが3つ以上書かれていたら投稿できない。
これらを記事登録の# フォーム入力チェックあたりに書いています。
yybbs,yyini等のファイル名はすべて変えています。

過去ログを見て上のスパム対策を書きました。
少しは減っているのですが、スパムの無い日はありません。
掲示板のアドレス変更、ファイル名変更以外の方法でして頂きたい。
0521nobodyさん2006/06/16(金) 17:54:29ID:???
別のスクリプトに変える
0522nobodyさん2006/06/16(金) 18:09:25ID:???
>>520
方法はいくらでもあるだろうけど、どれが有効かはspamの質による。

・NGワード
・IPアドレスブロック
・日本語の無い投稿禁止
・URL3つ以上の投稿禁止
・URL欄と同じ文字列が本文にあったら禁止

これだけやってもすり抜けてくるspamって一体どんなのよ?
0523nobodyさん2006/06/16(金) 18:19:40ID:???
NGワードに入ってなくて
規制されてなくて
URLが三つ以上書かれてなくて
URL欄と同じ文字列が本文に無い

上記を満たしてる投稿。
0524nobodyさん2006/06/16(金) 18:43:27ID:???
>>523
おまいのそれは「1+1は何ですか?」に「1+1です」と答えているようなものだ。
禅問答がしたいのならしかるべき場所へどうぞ。
0525$me != 5232006/06/16(金) 19:02:12ID:???
>>522
>これだけやってもすり抜けてくるspamって一体どんなのよ?
普通にヌルイでしょ?(ワラ

>524
釣りでツカ?
0526nobodyさんNGNG
なんだこいつは
0527522=5242006/06/16(金) 19:15:21ID:???
悪いけどお前さんを釣って遊ぶほど暇じゃない。

俺が知りたいのは>>520を悩ましてるspamの具体的な性質。
重要なのは>>520の問題を解決することであって、
ヌルいとかヌルくないとかはこの際どうでもいいの。

だからお前さんもこんなところで遊んでないで家に帰りな。
0528nobodyさん2006/06/16(金) 19:19:46ID:???
【.  CGI名  .】WebSameGame
【配布先URL】 http://homepage3.nifty.com/masas/sdir/freecgi/wsame/index.html
【 依頼期限 】 今月末まで
【. 依頼内容 】 通算ランキング用データファイルに書き込まれたデータが定期的にクリアになるようにしてください。
定期的というのは3、6、9、12月の末日になったら通算ランキングの全データが空になるのが希望です。
よろしくお願いします。
0529nobodyさん2006/06/16(金) 19:54:26ID:???
>>528
何かと思ったらさめがめか。懐かしいな。

前月データが更新されるのと同じタイミングで決まった月には
通算ランキングを完全にクリアするという処理で良いのかな?
0530nobodyさん2006/06/16(金) 20:07:06ID:???
>>529
ありがとうございます。
定期的にデータが消えれば満足ですのでその処理を使ってお願いします。
05315202006/06/16(金) 20:27:13ID:???
>>522
すり抜けてくるスパムの9割は出会い系サイトです。
NGワードをいくら増やしても、いたちごっこになってしまいます。

秘密厳守大人の掲示板w
70才に近づくにつれ、現実逃避などURLとセットで書かれます。

ログからアクセス元らしき場所へすぐに行ってみると、投稿と書かれたボタンがぽつんと置かれており、
時間が経ってから見ると403になって消えています。

防ぐにはCSSで見えないフォームを増やせばいいなど言われたのですが、
どうすればいいのかわからずにいます。
0532nobodyさん2006/06/16(金) 20:38:17ID:???
>>531
そういうことなら特に改造なんかしなくてもyybbs.iniの210行目あたりにある

# 記事の更新は method=POST 限定する場合(セキュリティ対策)
# → 0=no 1=yes
$postonly = 1;

# 他サイトから投稿排除時に指定する場合(セキュリティ対策)
# → 掲示板のURLをhttp://から書く
$baseUrl = '';

この辺を設定すれば弾けるんでないかな?
0533nobodyさん2006/06/16(金) 20:54:47ID:???
>>532
iniの設定を確かめてみました。
$postonlyは1になっており、$baseUrlは何も書かれていませんでした。

勉強不足で申し訳ないです。
$baseUrに掲示板のURLをそのまま書いたとして、どんな効果があるのでしょうか。
それと何かデメリットもあるのでしょうか?
0534nobodyさん2006/06/16(金) 21:02:01ID:???
ロボット投稿じゃ意味ないんじゃね?
0535nobodyさん2006/06/16(金) 21:05:11ID:???
>>533
$postonlyを1にしてなおかつ$baseUrlをきっちり設定すると
その掲示板の投稿フォームから手作業で入力したデータしか受け付けなくなる。
外部からワンタッチで書き込むような芸当ができなくなるので
貴方が見たような外部ファイルの投稿ボタンによるspamは全て弾かれるはず。

で、あの掲示板を普通に使っている分にはデメリットらしいデメリットは特にない。
0536nobodyさんNGNG
隠しパラメータ追加とかじゃ無理かな
ロボットってどんなロボットなんだろ
0537nobodyさん2006/06/16(金) 21:20:27ID:???
リファラまで偽装してくるやつが相手なら隠しパラメータも考慮するけど、
とりあえずはこれで行けるかどうか様子を見たい。

ダメなら>>480をURLの変更無しでkeyを取れるように再改造かね。
0538nobodyさん2006/06/16(金) 21:59:32ID:???
普通にしか使っていないので、$postonly = 1;
$baseUrl = ''掲示板URL; で様子を見てみます。
0539nobodyさん2006/06/16(金) 22:02:27ID:???
>>538
× $baseUrl = ''掲示板URL;
○ $baseUrl = '掲示板URL';

まあしばらく500 Internal Server Errorで様子を見るのも良い考えだ。
そのうち諦めて標的から外してくれるかも知れんしw
05401/22006/06/16(金) 22:03:52ID:???
>>528
でけたよ。

wsame.cgiの34行目あたりにある

# 表示設定ファイル
require './view.ini';

の下に

# 季間ランキングのデータを初期化する月("2桁"で表記) ##
@delmon = ("01", "04", "06", "10"); ##

を追記。
05412/22006/06/16(金) 22:06:53ID:???
ごめんまちごた。
正しくは

@delmon = ("01", "04", "07", "10"); ##

ね。テスト用に変えたの戻し忘れてた。

で、続いて274行目あたりの

($datanowcnt, $zymonth) = split("\t", $datas[0]);
$datanowcnt++;

の下に

# 季間用データの処理 ##
$zymonth =~ /^(\d+)\/(\d+)$/; ($zy, $zm) = ($1, $2);
$ymonth =~ /^(\d+)\/(\d+)$/; ($y, $m) = ($1, $2);
foreach $delmon (@delmon) {
if (($m eq $delmon && $zm ne $delmon) || $y ne $zy) {
@tdatas = ("$ymonth\t\t\t\n"); # 季間データあぼーん
}
}

を追記。

あとはてけとーに"通算ランキング"を"季間ランキング"に一括置換するとかお好みで。
0542nobodyさん2006/06/16(金) 22:13:32ID:???
本当は処理の挿入位置とかもっとスマートに最適化することもできそうなんだが、
改造の手順を簡略化するためにここは敢えて野暮ったい路線で。

これで月が変わってから初めてスコアが来た時
(=今月ランキングのデータを先月ランキングに移して今月ランキングは初期化)
それが@delmonで指定した月だったらトータルランキングも初期化するはず。

一応ローカルでちゃんと動くのを確認はしたけど、どこかに思わぬ穴があったらまたどうぞ。
0543nobodyさん2006/06/16(金) 22:38:01ID:???
>>542
ありがとうございます。
当方もローカルで日付を変えながら動作確認してみました。
希望通りの動作をしております。
穴がもしありましたらまた連絡させていただきます。

即対応ありがとうございました。
05444332006/06/18(日) 16:57:43ID:???
434-435
そうなんですが、できればここのアップローダーを使いたいのです。
できませんか??
0545nobodyさん2006/06/18(日) 17:59:45ID:???
>>544
できるけどしないって言ってるんじゃないの、>>434-435は。

ちなみに俺は携帯のアップロードの仕様を知らんからパス。
0546nobodyさん2006/06/19(月) 22:39:35ID:???
ここ数日は平和だねえ。
>>520はあれでブロックできたのかな。
05474332006/06/19(月) 22:46:00ID:AnH/R4Bn
>>433
をやってくださる方はいませんか?
0548nobodyさん2006/06/19(月) 23:01:44ID:???
>>547
居ないような気がするけど、とりあえずは今月いっぱい待ってみたら?
■ このスレッドは過去ログ倉庫に格納されています