プロが教えるわが家の防犯対策術!

お世話になります。
CGIはフリー配布のものを触る程度の初心者で、足りないことを申し上げてしまうと思いますが教えていただけますと嬉しいです。

今、「リンクラリー」というフリー配布のCGIをさわっています。
CGI配布元様:http://exdreams.net/room/contents/e_lrarry.html
登録されたリンク先の情報「rsite.dat」から情報を読み込んで書き出すページがいくつか一括ファイルに格納されているのですが、その中の「user_alcheck.html」と「user_linkck.html」の2つのファイルにつきましての質問です。

件2つのファイルには「サイト名/<!--SITENAME-->($sitename)」がすでに書き込み・表示される仕様になっているのですが、そこにプラスして「サイトバナー/<!--SITEBANNER-->($sitebanner)」も同時に表示されるようにしたいです。

「larry.cgi」の175行目あたりに、
#**************************************
sub linkcheck{
#リンク元チェック
(略)
$sitename = $y3[5];
if ($ref ne $y3[9]){
&html_checkindi("rarry_linkck.html","id","ref","sitename");
}
&getcookie if ($uid eq "") || ($upass eq "");

if (($uid eq "") || ($upass eq "") || (!-e "./user/$uid.dat")){
&html_checkindi("user_rgnize.html","act","ref","id");
}
open (IO,"+<./user/$uid.dat");
eval{flock(IO,2)};
@y2=split(/<>/,<IO>,5);
if (crypt($upass,$y2[3]) ne $y2[3]){
close(IO);
&html_checkindi("user_rgnize.html","act","ref","id");
}
if ("<>$y2[4]" =~ /<>$id<>/ig){
close(IO);
&html_checkindi("user_alcheck.html","sitename");
}
$y2[4].=$id."<>";
truncate(IO,0);
seek(IO,0,0);
print IO $nowtime."<>$y2[1]<>$y2[2]<>$y2[3]<>$y2[4]";
close (IO);

print "Set-Cookie:id=$uid; expires=Thu, 1-Jan-2030 00:00:00 GMT;\n";
print "Set-Cookie:pass=$upass; expires=Thu, 1-Jan-2030 00:00:00 GMT;\n";
&html_checkindi("user_linkck.html","sitename");
}
#**************************************
という箇所があるのを見つけたのでここをいじれば何とかなるのかな。。までは素人ながらに分かり、似たようなQ&Aを探して挑戦してみたのですが撃沈でした。

参考になるサイトや、もしヒントなどいただけましたら嬉しいです。
よろしくお願いいたします。

A 回答 (1件)

簡単に動作確認をしていますが、改造は、自己責任でお願いします。


動作がおかしいと思ったら、元に戻してください。

> という箇所があるのを見つけたのでここをいじれば何とかなるのかな

ご質問に記述されている箇所の修正のみで出来ると思います。
larry.cgiの222行目付近と232行目付近にある

&html_checkindi("user_alcheck.html","sitename");

&html_checkindi("user_linkck.html","sitename");
のそれぞれ

"sitename"

の後に

,"banner"

を追加して下さい。
&html_checkindi("user_linkck.html","sitename","banner");
このように。
204行目付近にある

$sitename = $y3[5];

の前の行に、以下のどちらかを記述します。
([サイトバナーの登録がない時]の対処方法の選択)

・仮バナーを表示する

$banner = $y3[7] ? qq|<img src="$y3[7]">| : qq|<img src="仮バナーのアドレスを記述">|;

・仮バナーは表示しない

$banner = $y3[7] ? qq|<img src="$y3[7]">| : '';

---------
そして、user_alcheck.htmlとuser_linkck.htmlをテキストエディタで開き

<!--BANNER-->

を好きな場所に記述してください。
これで多分、大丈夫だと思います。
    • good
    • 0
この回答へのお礼

お世話になります。
早速のご回答をありがとうございました。
丁寧なご説明にくわえ、動作確認までお手数をおかけしてすみません。

ご指示いただいた通り、構文の中に必要なものを記入して実行してみたところイメージ通りの表示が実現しました! &html_checkindi("user_linkck.html","sitename","banner");としなければならないポイントまでは何となく行き着いていたのですが動かず、ご回答をいただいて「なるほど!」と感動です。バナーをどうするのかの命令が全くできていなかったので何も反応がなかったのですね…。

とても勉強になりました。
この度はお世話になりました。本当にありがとうございました!

お礼日時:2014/09/30 20:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!