人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

THE ROOMのPOWER SEARCHというCGIリンク集を組み込んでいるのですが、自動登録リンクからか、サイトとは関係の無い迷惑な登録者が後を絶たず困っています。
自動登録リンク集に一つだけ登録した事が失敗でした。ですが、登録を削除しようにも、まだ登録されていないのです。つまり、登録だけさせてメアドを保存し、表示されないことによって解除が出来ないというしくみになっているのかと思います。
そこで仕方ないので、このPOWER SERACHの相手サイトからの溜まった登録申請を一括削除しようかと思ったのですが、それが出来ません。
一括削除するにはどのソースをさわればよいのでしょう?ps_search.cgiの中に、ソースを追加して“一括削除する”というボタンを作りたいのですが、詳しい方ご回答宜しくお願い致します。

●質問者: akr-x
●カテゴリ:インターネット ウェブ制作
✍キーワード:CGI POWER サイト ソース ボタン
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● KUROX
●50ポイント

必ず、regreq.datのバックアップを取って

元に戻せるようにしてください。


#登録申請用のファイル

$regreq = "./data/regreq.dat";

このファイルがあると思いますが、

エディタなどで開いて、削除したい申請データを削除すれば

いいと思います。たぶん1行で1件のデータだと思います。

これで不整合とか起きるようなら、元に戻してください。

この方法では無理だということです。

http://q.hatena.ne.jp/answer

◎質問者からの返答

秀丸で試みましたが、空欄でした。

他に読み込む方法はありますか?


2 ● minkpa
●27ポイント

POWER SEARCHは一つずつしか削除出来なかったと思います。

法的措置をとるなど警告文を強くしてみてはいかがでしょうか。

http://q.hatena.ne.jp/1190085257

◎質問者からの返答

やはり、皆さん苦労する問題なのですか?

困ったものです…。

ご回答有難う御座います。


3 ● Mook
●200ポイント ベストアンサー

状況がいま一つ見えないのですが、ps_admin.cgi で登録申請の確認をしたときに、申請の件数が多数あるという状況なのでしょうか。

環境としては、申請モードを有効(ps_perf.cgi で $regmode = 1;)になっているという理解で進めます。


KUROX さんが指摘しているように、承認待ちの申請は

.../powersearch/data/regreq.dat

ファイルにありますので、すべて削除するのであれば、このファイルを空にしてしまえばよいでしょう。


どうしても、ボタンによって対応したいというのであれば、下記の変更です。

変更対象は ps_admin.cgi(行が変わるので後ろから書いています) です。


396行目(拒否するの後ろ)に下記を追加

<input type="submit" value="拒否する">
</form>

<form method="post" action="./ps_admin.cgi">
<input type="hidden" name="act" value="reg4">
<input type="hidden" name="page" value="$page">
<input type="hidden" name="pass" value="$pass">
<input type="hidden" name="name" value="$site[9]">
<input type="hidden" name="sitename" value="$site[4]">
<input type="submit" value="すべての申\請を拒否する">
</form>

EOD

154行目(reg3の前:どこでもいいのですが)にreg4を追加

#******************************************************************************
sub reg4{
#すべて拒否
&filelock("regreq");
copy( $regreq, "${regreq}.bak" );
open (IO,"+<$regreq");
truncate(IO,0);
close (IO);
&fileunlock("regreq");

$message = <<EOD;
<b>すべての申\請を削除しました。<br>
<form method="post" action="./ps_admin.cgi">
<input type="submit" value="戻る">
<input type="hidden" name="pass" value="$pass">
</form>
EOD
$action = "登録申\請確認";
&html_output;
}

71行目に reg4 を挿入

elsif ($act eq "reg2"){®2;}
elsif ($act eq "reg3"){®3;}
elsif ($act eq "reg4"){®4;}

20行目に

use File::Copy;

を挿入


これにより、すべての申請をクリアしますが、念のため regreq.dat.bak にコピーをとっています。

ただし、毎回上書きされますので保存されるのは直前の状態です。


http://dream.lib.net/room/cgi/e_ps.html

◎質問者からの返答

圧巻です。なんと言ったらいいか…。

本当に有難う御座います。毎回皆様のスキルの高さに驚かされますが、mook様には本当に驚きです。有難う御座います。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ