<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/searchcustom/">
    <title>検索CGI改造メモ</title>
    <link>http://w.atwiki.jp/searchcustom/</link>
    <atom:link href="https://w.atwiki.jp/searchcustom/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>検索CGI改造メモ</description>

    <dc:language>ja</dc:language>
    <dc:date>2009-12-01T18:29:12+09:00</dc:date>
    <utime>1259659752</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/searchcustom/pages/2.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/searchcustom/pages/15.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/searchcustom/pages/13.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/searchcustom/pages/14.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/searchcustom/pages/22.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/searchcustom/pages/26.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/searchcustom/pages/25.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/searchcustom/pages/16.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/searchcustom/pages/19.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/searchcustom/pages/18.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/searchcustom/pages/2.html">
    <title>メニュー</title>
    <link>https://w.atwiki.jp/searchcustom/pages/2.html</link>
    <description>
      -[[PowerSearch改造]]

-[[コメント&gt;コメント]]


****リンク
- [[ウェブリング＆検索サイト管理人専用スレまとめ @ wiki&gt;http://www27.atwiki.jp/searchmaster/]]
****配布元
- [[The room&gt;http://dream.lib.net/room/index.shtml]]（PowerSearch）
-[[The room跡地&gt;http://exdreams.net/room/]]

-[[@wiki&gt;&gt;http://atwiki.jp]]
-[[@wikiご利用ガイド&gt;&gt;http://atwiki.jp/guide/]]


----
*****更新履歴
#recent(5)

&amp;link_editmenu(text=ここを編集)    </description>
    <dc:date>2009-12-01T18:29:12+09:00</dc:date>
    <utime>1259659752</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/searchcustom/pages/15.html">
    <title>コメント</title>
    <link>https://w.atwiki.jp/searchcustom/pages/15.html</link>
    <description>
      &amp;topicpath()
質問他
何かあればここにどうぞ。

#comment(title_name=名前,title_msg=コメント,nsize=20,size=50,vsize=5,below)
- 素人改造で申し訳ないです。 &amp;br()CCSEARCHのことは知ってます。中身みたことないですがなかなか良さそうですね。 &amp;br()The Roomさん閉鎖とのこと…。長く利用させてもらってましたので残念ですね。 &amp;br()跡地へリンクさせていただこうと思います。  -- 管理  (2009-12-01 18:27:44)
- The Roomさんが閉鎖決定ということですが、残念ですね・・・。 &amp;br() &amp;br()まだまだ使っていきたいと思っていますが、こちらのサイトはとても参考になりました！ &amp;br()「バナー欄空欄なら特定画像を表示」「登録カテゴリを表示」を早速導入させて頂きました。 &amp;br()とても楽になりました！ありがとうございます。 &amp;br() &amp;br()ところで・・・ &amp;br()http://ccr.mydisk.jp/ &amp;br()こちらで、Yomi-SearchとPower Searchのいいとこどりといった感じのスクリプトが公開されています。 &amp;br()何か改造のヒントになる部分があればいいのですが…  -- 要  (2009-11-23 00:03:58)
- お忙しいところ申し訳ありませんが、登録カテゴリ表示 &amp;br()（yomiのようなカテゴリへのリンクが貼られる形式のものですか？）と &amp;br()バナー欄空欄時の特定画像表示の改造方法をお願いします。 &amp;br()wiki立ち上げありがとうございました！  -- ななか  (2008-12-20 09:53:10)
- てすと  -- てすと  (2008-12-17 20:04:40)    </description>
    <dc:date>2009-12-01T18:27:44+09:00</dc:date>
    <utime>1259659664</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/searchcustom/pages/13.html">
    <title>トップページ</title>
    <link>https://w.atwiki.jp/searchcustom/pages/13.html</link>
    <description>
      検索CGIの改造メモ。


改造内容を載せる予定でwikiにしていますが突然消えたらごめんなさい。 



----
参考までに施した改造一覧　[[PowerSearch改造項目一覧]]
- 負荷とか記述のスマートさとかは考えてません。
- 素人改造です
- （2009/03/10）需要も微妙だとおもいますので今後は要望がきた改造だけ追記していきます。
----
&amp;link_contact()

&amp;topicpath()
&amp;counter(total, page=トップページ)    </description>
    <dc:date>2009-03-10T19:39:49+09:00</dc:date>
    <utime>1236681589</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/searchcustom/pages/14.html">
    <title>PowerSearch改造項目一覧</title>
    <link>https://w.atwiki.jp/searchcustom/pages/14.html</link>
    <description>
      &amp;topicpath()

&amp;date()追加

wiki作った人が実際に稼動させている改造版の機能を羅列してみた。
負荷とか難しいことは考えていないのであしからず。
特定部分をそのままコピーでできるものもかなりあります。
途中までやって放置したのもあります。難しいことはやってません。
思い出せないのとか細かくなるので書き出せないものもあります。
思い出したら随時追加
ここに書いた機能の解説は全部はしないとおもいます。

いたる所を触ってしまったことと省いた機能などもあり、配布されているものと照らし合わせるのがかなり手間なのでやる気あるときにメモ化していきます。
実物が見たいとか、知りたい部分あったら連絡してください。


****結果表示
- 検索ワードに対応するカテゴリを一覧表示する。
-- 検索ワードのand/or/not対応済
- [[登録カテゴリ表示&gt;PowerSearch改造/検索結果表示]]
-- 特定カテゴリは表示しないなども可能です。
- URL表示
- 情報バー
--「更新日時で絞り込み（何日以内）」と「表示件数」に変更。説明on/offは撤去。
- [[バナー欄空欄なら特定画像を表示&gt;PowerSearch改造/検索結果表示]]

****検索機能
- 検索ワードに対応するカテゴリを一覧表示する。
-- 検索ワードのand/or/not対応済
- パワーモード時
--カテゴリ選択無しだと全カテゴリから検索（かなり無理矢理）
--[[カテゴリand/or検索選択&gt;PowerSearch改造/検索機能]]
- 新着順に全件一覧
- [[特定マーク・特定カテゴリを選択していると更新サイトリストに出ない&gt;PowerSearch改造/データチェック]]


****登録・修正
- 下位カテゴリ選択→自動的に上位カテゴリも選択。
- 同じ日に修正したときはデータの順番が上がらない。
- 修正の時も管理人コメント送れる（管理画面でも確認可）
- カテゴリ選択形式
-- [[カテゴリ選択（複数select化）&gt;PowerSearch改造/登録修正画面]]：selectが選択数だけ並ぶ形。
--ﾃﾞﾌｫﾙﾄと同じselect形式で任意の場所で複数に分割（カテゴリ数が多い時に）
- サイト内容説明文みたいな入力欄を追加
- 修正時に修正前のバナーを表示確認。
- （perlじゃないけど）文字数カウント
- 特定カテゴリを選択していないと内容確認画面で警告がでる。
- 登録者削除の場合：削除理由コメント入力欄

****管理部分（ps_admin.cgi,ps_user.cgi）
- [[パスワード自動再発行。&gt;PowerSearch改造/管理機能]]
- [[全URL抜きだし&gt;PowerSearch改造/管理機能]]（移転閉鎖チェック用）
- 情報更新ログ取り
--修正日時時間、管理人へのメッセージ、該当データ修正ページへのリンク。「管理人へのコメント」の見やすい版
- 管理人許可制の時、本登録時に個別にコメントを入れられる。
--「登録完了メール」に記載される。
- 管理人許可制の時、登録拒否時もメール送信。
--他のメールと同様内容タイトルなど編集可能。
--個別にコメントもつけられる。
- 管理人が修正する時ににコメントを入れると登録者にメール送信。
--通常管理人修正時はメール送信されないが、伝達事項がある時用のメールが送信される。フォーマットは他のメールと同様に編集可。
--個別にコメント入れられる。というかコメントある時だけメール送信する。コメント無しで管理人修正したときはメールとばさない。
--バナーリンク切れ連絡とかがちょっと楽になる。
- マークの可視・不可視
--管理側でマークアップしたい時とかに使用。（404報告来たときに一時的にサーバーが落ちてるのかどうかマークしておいて後から確認…とか。要注意サイトのマークアップなど）
- マーク10個以上
--ﾋﾝﾄ。マークの番号を数字1文字でなくカテゴリと同じ方式で格納する。

****データチェック（ps_user.cgi）
- 特定マークや特定カテゴリがついていると更新間隔がかわる。
- 特定カテゴリを選択しないと登録申請できない。
- 特定カテゴリの選択有無でカテゴリ選択数が変わる。
- [[URLに特定ワードを含むとbannerを含むURLしかバナー欄に入れられない。&gt;PowerSearch改造/データチェック]]
- 半角カナ許可不許可
--キーワードへ半角ｶﾅ入力できるけど検索ワードには半角ｶﾅ使えないから…


****データ分離
- 新規登録時のみ別ファイルにもデータ書き込み（新着のみ表示に使える）
--応用で更新時のみ別ファイル保存で最新更新サイト何件とかならできそう。何日縛りだと面倒かも
- 更新サイトを別ファイルに記録してトップページでバナー表示とか


****その他
- ジャンプ機能だけ別に
- 複数管理人用CGI
- 別スクリプトと連動して閉鎖サイトなど報告できるように
- メールヘッダー修正。
- 全部EUC化

****デザイン
- ヘッダ、フッタ。個別表示部分、検索バー、情報バー、色々さわって全てテーブルじゃないパーツに分割。
-- デザインはCSSで
--- 配布もとのテーブルデザインはぶっちゃけさわりにくいので…
-- ps_user.cgiの最後のとこ（画面書き出すとこ）はこんな感じに。各パーツがテーブルで繋がってたのを分離。各自個別で修正ですっきり。
#aa(blockquote){{{sub html_output{
#最終出力フォーマット
print &quot;Content-type:text/html; charset=shift_jis\n\n&quot;;
print &lt;&lt;EOD;
$header
&lt;div ID=&quot;ACTION&quot;&gt;
$action
&lt;/div&gt;
&lt;div ID=&quot;SMAIN&quot;&gt;
$message
$_[0]
&lt;/div&gt;
&lt;div ID=&quot;ACTION&quot;&gt;
$action
&lt;/div&gt;
$footer
EOD
exit;
}
}}}


****やりたい
というか誰かやってください。
- ランキングを別ファイルに記録
- 更新時にあげない選択できるように
- &amp;s(){検索時：カテゴリ名でも検索し一覧表示。（ﾖﾐみたいに）}　出来たので上に移動

----    </description>
    <dc:date>2009-01-21T07:16:25+09:00</dc:date>
    <utime>1232489785</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/searchcustom/pages/22.html">
    <title>PowerSearch改造/検索機能</title>
    <link>https://w.atwiki.jp/searchcustom/pages/22.html</link>
    <description>
      &amp;topicpath()

#contents

**特定マーク・特定カテゴリを選択していると更新サイトリストに出ない
「特定マーク」を選択している場合で解説。
「特定カテゴリ」でやりたい時は、同じように正規表現などで条件付けしてやればできます。

例）mark0 がついているサイトのみ更新サイト一覧に出す
- &#039;&#039;ps_search.cgi&#039;&#039;　153行付近（sub new）
while 処理の中に下記条件文を追加
#aa(blockquote){{{if ($_ =~/^0/){
	$totalct++;
	push(@site,$_) if ($totalct &gt;= $startnum) &amp;&amp; ($totalct &lt;= $endnum);
	}
}}}
#right(){{
&amp;link_up(▲)
}}

**パワーモード：カテゴリのand/or選択
複数カテゴリ選択したときに、カテゴリ同士を「and」「or」どちらで検索するか選べるようにする。
- &#039;&#039;ps_search.cgi&#039;&#039;　388行付近（sub powersearch）
「#カテゴリーチェック」とコメントアウトされている部分を書き換える。
#aa(blockquote){{{if($andor == 1){
		$flag = 0;
		foreach $data(@cat){
			  if (rindex($_,$data) != -1){
				$flag = 1;
				}else{
				$flag = 0;
				last;
				}
		}
		next if !($flag);
	}else{
		$flag = 0;
		foreach $data(@cat){
			if (index($_,$data) != -1){
				$flag = 1;
				last;
				}
		}
		next if !($flag);
	}
}}}
- &#039;&#039;ps_search.cgi&#039;&#039;　58行付近
#aa(blockquote){{{foreach $i (0 .. $#contents) {
･･･
}
}}}
カッコ内のどこかに追加
&gt;$andor = $text if $key eq &#039;andor&#039;;

- &#039;&#039;ps_search.cgi&#039;&#039;　836行付近（sub power）
検索フォーム。
パワーモードを表示させるのにsub powerを使ってないのでsub powerとしての確認はしてません。
#aa(blockquote){{{カテゴリ&lt;input type=&quot;radio&quot; name=&quot;andor&quot; value=&quot;1&quot; id=&quot;and&quot;&gt;&lt;label for=&quot;and&quot;&gt;and&lt;/label&gt;&lt;input type=&quot;radio&quot; name=&quot;andor&quot; value=&quot;2&quot; id=&quot;or&quot; checked&gt;&lt;label for=&quot;or&quot;&gt;or&lt;/label&gt;
}}}
#right(){{
&amp;link_up(▲)
}}

----
&amp;topicpath()    </description>
    <dc:date>2009-01-12T19:38:42+09:00</dc:date>
    <utime>1231756722</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/searchcustom/pages/26.html">
    <title>注意/注意事項</title>
    <link>https://w.atwiki.jp/searchcustom/pages/26.html</link>
    <description>
      &amp;topicpath()
**注意
- 未改造スクリプトと実際稼働させているものと見比べて抜粋しているメモ書きです。
-&amp;u(){実際に未改造の物へ組み込んで動作確認してません。} 
エラーになるかもしれません。
エラーになったらできればwikiの方も修正しておいてください。

- &amp;bold(){かならずローカルでテストしてからサーバーにアップロードしてください。}



----
&amp;topicpath()    </description>
    <dc:date>2008-12-20T23:12:36+09:00</dc:date>
    <utime>1229782356</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/searchcustom/pages/25.html">
    <title>PowerSearch改造/検索結果表示</title>
    <link>https://w.atwiki.jp/searchcustom/pages/25.html</link>
    <description>
      &amp;topicpath()

#contents

**登録カテゴリ表示
検索結果に登録しているカテゴリ一覧をリンク表示する。
- &#039;&#039;ps_search.cgi&#039;&#039;　704行付近（sub siteindicate）
$書き出しの直前に追加
#aa(blockquote){{{## カテゴリ表示【追加】
	$catgo = &quot; &quot;;
	@catg = split /&lt;c&gt;/, $y2[11];
	$size = @catg;
	for ( $i = 1 ; $i &lt;= $size ; $i++ ) {
		$catgo .=&quot;/ &lt;a href=\&quot;ps_search.cgi?act=cat&amp;cat=$catg[$i]\&quot;&gt;$category{\&quot;$catg[$i]\&quot;}&lt;/a&gt; &quot;;
	}
##}}}
表示したい場所に
&gt;$catgo
と記入。

- 下記をローカル変数にしておくと少しはマシかもしれない。
&gt;$catgo,$siterenew,$size
&gt;@catg
#right(){{
&amp;link_up(▲)
}}

**バナー欄空欄の時特定画像表示
- &#039;&#039;ps_search.cgi&#039;&#039;　684行付近（sub siteindicate）
#aa(blockquote){{{if (($y2[6] eq &quot;&quot;) || ($bannerreg == 0)){
		$banner = &quot;&quot;;
		}
}}}
差し替え
#aa(blockquote){{{if ($bannerreg == 0){
		$banner = &quot;&quot;;
		}
elsif(($y2[6] eq &quot;&quot;) &amp;&amp; ($bannerreg != 0)){
		$banner = &quot;&lt;a href=\&quot;$siteurl\&quot; target=\&quot;$linktarget\&quot; title=\&quot;$y2[9]様\&quot;&gt;&lt;img src=\&quot;【画像のパス】\&quot; width=\&quot;【画像サイズ】\&quot; height=\&quot;【画像サイズ】\&quot; border=\&quot;0\&quot;&gt;&lt;/a&gt;&quot;;
}
}}}
※この時点でバナーにもリンク付けちゃってますので、初期のようにリンクなしにしたいときは外してください。
#right(){{
&amp;link_up(▲)
}}



----
&amp;topicpath()    </description>
    <dc:date>2008-12-20T23:03:44+09:00</dc:date>
    <utime>1229781824</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/searchcustom/pages/16.html">
    <title>PowerSearch改造</title>
    <link>https://w.atwiki.jp/searchcustom/pages/16.html</link>
    <description>
      &amp;topicpath()
*PowerSearch改造
未改造スクリプトと実際稼働させているものと見比べて抜粋。
&amp;u(){実際に未改造の物へ組み込んで動作確認してません。}
動かなかったらツッコミ・修正よろしくお願いします。

#ls(注意)

#ls2(PowerSearch改造,title)


----
&amp;topicpath()    </description>
    <dc:date>2008-12-20T22:46:08+09:00</dc:date>
    <utime>1229780768</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/searchcustom/pages/19.html">
    <title>PowerSearch改造/登録修正画面</title>
    <link>https://w.atwiki.jp/searchcustom/pages/19.html</link>
    <description>
      &amp;topicpath()

#contents

** カテゴリ選択部分（複数select化）
かなり無理矢理
- &#039;&#039;ps_user.cgi&#039;&#039;　56行目
&gt;push(@sitecat,$text) if $key eq &#039;sitecat&#039;;
この行の上に↓追加
#aa(blockquote){{{for($i=0;$i&lt;$maxcat;$i++){
  my $name = &quot;sitecat&quot;.$i;
	if($text){push(@sitecat,$text) if $key eq $name;}
  }
}}}


- &#039;&#039;ps_user.cgi&#039;&#039;　292行目（sub change1）
#aa(blockquote){{{foreach(@y2){$z1{$_}=1;}
foreach (sort {$a cmp $b;} keys %category){
	$category.=&quot;&lt;option value=\&quot;$_\&quot;&quot;.($z1{$_}?&quot; selected&quot;:&quot;&quot;).&quot;&gt;&quot;.&amp;linkmake($_,1).&quot;\n&quot;;
	}
$category=&quot;&lt;select name=\&quot;sitecat\&quot; size=10&quot;.(($maxcat-1)?&quot; multiple&quot;:&quot;&quot;).&quot;&gt;$category&lt;/select&gt;\n&quot;;
}}}
↓と差し替え
#aa(blockquote){{{##カテゴリ複数行
for($i=0;$i&lt;$maxcat;$i++){
$category.=&quot;&lt;select name=\&quot;sitecat&quot;.$i.&quot;\&quot; size=1&gt;&lt;option value=\&quot;\&quot;&gt;----&lt;/option&gt;\n&quot;;
foreach (sort {$a cmp $b;} keys %category){
	if($_ eq $y2[$i]){$category.=&quot;&lt;option value=\&quot;$_\&quot; selected&gt;&quot;.&amp;linkmake($_,1).&quot;&lt;/option&gt;\n&quot;;}
	else{$category.=&quot;&lt;option value=\&quot;$_\&quot;&gt;&quot;.&amp;linkmake($_,1).&quot;&lt;/option&gt;\n&quot;;}
	}
$category.=&quot;&lt;/select&gt;&lt;br&gt;\n&quot;;
}
##カテゴリ複数行ここまで
}}}


- &#039;&#039;ps_user.cgi&#039;&#039;　732行目（sub reg1）
&amp;font(red){赤字}を追加
&gt;my ($category,$bannerinput,&amp;font(red){$categoryput});


- &#039;&#039;ps_user.cgi&#039;&#039;　737行目（sub reg1）
#aa(blockquote){{{foreach (sort {$a cmp $b;} keys %category){
	$category.=&quot;&lt;option value=\&quot;$_\&quot;&gt;&quot;.&amp;linkmake($_,1).&quot;\n&quot;;
	}
$category=&quot;&lt;select name=\&quot;sitecat\&quot; size=10&quot;.(($maxcat-1)?&quot;multiple&quot;:&quot;&quot;).&quot;&gt;$category&lt;/select&gt;\n&quot;;
}}}
↓と差し替え
#aa(blockquote){{{##ここから
foreach (sort {$a cmp $b;} keys %category){
	$categoryput.=&quot;&lt;option value=\&quot;$_\&quot;&gt;&quot;.&amp;linkmake($_,1).&quot;&lt;/option&gt;\n&quot;;
	}
for($i=0;$i&lt;$maxcat;$i++){
$category.=&quot;&lt;select name=\&quot;sitecat&quot;.$i.&quot;\&quot; size=1&gt;&lt;option value=\&quot;\&quot;&gt;----&lt;/option&gt;\n&quot;;
$category.=$categoryput;
$category.=&quot;&lt;/select&gt;&lt;br&gt;\n&quot;;
}
##ここまで
}}}
#right(){{
&amp;link_up(▲)
}}
----
&amp;topicpath()    </description>
    <dc:date>2008-12-18T00:01:33+09:00</dc:date>
    <utime>1229526093</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/searchcustom/pages/18.html">
    <title>PowerSearch改造/管理機能</title>
    <link>https://w.atwiki.jp/searchcustom/pages/18.html</link>
    <description>
      &amp;topicpath()
#contents

** パスワード自動再発行
登録時のメールアドレスを入力すると、登録メールアドレスにパスワードが自動発行されます。
ここでは、情報更新時にログインする画面に設置しています。
- &#039;&#039;ps_user.cgi&#039;&#039;　74行目
&amp;font(red){追加部分}
&gt;&amp;font(red){elsif ($act eq &quot;repass&quot;){&amp;repass;}}
&gt;elsif ($act eq &quot;repass1&quot;){&amp;repass1;}

- &#039;&#039;ps_user.cgi&#039;&#039;　417行付近（sub check）
↓を追加
#aa(blockquote){{{パスワード再発行&lt;br&gt;
&lt;form method=&quot;post&quot; action=&quot;./ps_user.cgi&quot;&gt;
登録メールアドレス &lt;input type=&quot;text&quot; name=&quot;cpass&quot; size=&quot;25&quot;&gt;
&lt;input type=&quot;submit&quot; value=&quot;再発行&quot;&gt;
&lt;input type=&quot;hidden&quot; name=&quot;act&quot; value=&quot;repass&quot;&gt;
&lt;input type=&quot;hidden&quot; name=&quot;curl&quot; value=&quot;$url&quot;&gt;
&lt;/form&gt;
}}}
追加場所
#blockquote(){{$message = &lt;&lt;EOD;
&lt;b&gt;$site[4]&lt;/b&gt;の情報変更・削除を行います。&lt;br&gt;
&lt;form method=&quot;post&quot; action=&quot;./ps_user.cgi&quot;&gt;
&lt;input type=&quot;radio&quot; name=&quot;cman&quot; value=&quot;0&quot; checked&gt;登録者
&lt;input type=&quot;radio&quot; name=&quot;cman&quot; value=&quot;1&quot;&gt;管理人&lt;br&gt;
パスワード &lt;input type=&quot;password&quot; name=&quot;cpass&quot; size=9 maxlength=8&gt;
&lt;input type=&quot;submit&quot; value=&quot;認証&quot;&gt;
&lt;input type=&quot;hidden&quot; name=&quot;act&quot; value=&quot;change1&quot;&gt;
&lt;input type=&quot;hidden&quot; name=&quot;curl&quot; value=&quot;$url&quot;&gt;
&lt;/form&gt;

&amp;font(red){ココへ追加}

EOD
}}

- &#039;&#039;ps_user.cgi&#039;&#039;
どこでもいい。
サブルーチンの隙間に追加すればOK。
#asciiart(blockquote){{{#************************************************************
sub repass{
#パスワード再発行（ユーザー）
my (@site,@y2,$name,$email,$sitename,$siteurl,$newpass,$cryptpass,$buffer);
my $flag = 0;
my $a1=&quot;0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ./&quot;;
my $a2=substr($a1,int(rand(64)),1).substr($a1,int(rand(64)),1);
for(0 .. 7){$newpass.=substr($a1,int(rand(62)),1);}
$cryptpass = crypt($newpass,$a2);

&amp;filelock(&quot;linkdata&quot;);
open (IO,&quot;+&lt;$linkdata&quot;);
while(&lt;IO&gt;){
	if (index($_,&quot;&gt;$curl&lt;&quot;) != -1){
		@y2=split(/&lt;.?&gt;/,$_);
		if (($y2[5] eq $curl) &amp;&amp; ($y2[10] eq $cpass)){
			($name,$email,$sitename,$siteurl) = ($y2[9],$y2[10],$y2[4],$y2[5]);

			for ($i=0;$i&lt;=10;$i++){$buffer.=&quot;$y2[$i]&lt;&gt;&quot;;}
			$buffer.=$cryptpass;
			for ($i=12;$i&lt;=$#y2-1;$i++){$buffer.=&quot;&lt;c&gt;$y2[$i]&quot;;}
			push(@site,$buffer.&quot;&lt;&gt;\n&quot;);
			$flag = 1;
			}else{
			push(@site,$_);
			}
		}else{
		push(@site,$_);
		}
	}
if ($flag == 0){
	close(IO);
	&amp;fileunlock(&quot;linkdata&quot;);
	&amp;error(&quot;登録時のメールアドレスを入力してください。&quot;);
	}
truncate(IO,0);
seek(IO,0,0);
print IO @site;
close (IO);
&amp;fileunlock(&quot;linkdata&quot;);
&amp;repass_mail($name,$sitename,$siteurl,$newpass,$email) if ($mailcheck[4][0]);
$action = &quot;パスワード再発行&quot;;
$message = &lt;&lt;EOD;
パスワード再発行が完了しました。&lt;br&gt;
&lt;br&gt;
&lt;b&gt;$sitename&lt;/b&gt;の新しいパスワードは &lt;font color=&quot;#ff0000&quot;&gt;&lt;b&gt;$newpass&lt;/b&gt;&lt;/font&gt; です。&lt;br&gt;
パスワードはログイン後変更できます&lt;br&gt;
&lt;br&gt;
EOD
&amp;html_output;
}
##ここまで
}}}
#right(){{
&amp;link_up(▲)
}}


**全URL抜き出し
改造っていうかメール抜き出しをまるっとコピー
- &#039;&#039;ps_admin.cgi&#039;&#039;　68行付近
&gt;if ($pass ne $adminpass){&amp;enter;}
の後に↓追加
&gt;elsif ($act eq &quot;link1&quot;){&amp;link1;}

- &#039;&#039;ps_admin.cgi&#039;&#039;　670行付近
&amp;font(red){追加部分}
&gt;&lt;option value=&quot;mail1&quot;&gt;全メールアドレス抜き出し
&gt;&amp;font(red){&lt;option value=&quot;link1&quot;&gt;全URL抜き出し}
&gt;&lt;option value=&quot;reset1&quot;&gt;全アクセス数リセット

- &#039;&#039;ps_admin.cgi&#039;&#039;
サブルーチンの合間に追加
#aa(blockquote){{{#******************************************************************************
sub link1{
#URL抜き出し
my $buffer;
&amp;filelock(&quot;linkdata&quot;);
open(IN,&quot;$linkdata&quot;);
while(&lt;IN&gt;){
	$buffer.=(split(/&lt;&gt;/,$_))[5].&quot;\n&quot;;
	}
close(IN);
&amp;fileunlock(&quot;linkdata&quot;);
chop($buffer);
chop($buffer);
chop($buffer);
$action = &quot;URL抜き出し&quot;;

$message = &lt;&lt;EOD;
&lt;br&gt;
&lt;form&gt;
&lt;textarea cols=60 rows=10&gt;$buffer&lt;/textarea&gt;&lt;br&gt;
&lt;/form&gt;
&lt;br&gt;
改行で抜き出し&lt;br&gt;
&lt;form method=&quot;post&quot; action=&quot;./ps_admin.cgi&quot;&gt;
&lt;input type=&quot;submit&quot; value=&quot;戻る&quot;&gt;
&lt;input type=&quot;hidden&quot; name=&quot;pass&quot; value=&quot;$pass&quot;&gt;
&lt;/form&gt;
EOD
&amp;html_output;
}
}}}
【応用】8行目
赤字の数字がデータの格納順序。
ここの数字を変更するだけでキーワード一覧サイト名一覧などにも応用可能。
&gt;$buffer.=(split(/&lt;&gt;/,$_))[&amp;font(red){5}].&quot;\n&quot;;
#right(){{
&amp;link_up(▲)
}}

----
&amp;topicpath()    </description>
    <dc:date>2008-12-18T00:01:12+09:00</dc:date>
    <utime>1229526072</utime>
  </item>
  </rdf:RDF>
