JW (エホバの証人)、サイト運営、技術、自己啓発、雑談など雑多な話題を密かに扱う不定期更新の雑記。
JW (エホバの証人)、サイト運営、技術、自己啓発、雑談など雑多な話題を密かに扱う不定期更新の雑記。
雑談掲示板にIDを表示するようにしました。IPアドレスまで表示するのはやりすぎなような気もするけど、同じIPアドレスからの書き込みはわかるようにしたいなあということで、IPアドレスをハッシュにより暗号化したものをIDとして表示しています。
具体的には、以下のような感じでcrypt関数を使ってIDを生成しています。暗号化の手順を全部書いてしまうと暗号化している意味が無いので、ここでは実際に使用しているものを少し改変して載せています。あと、Perlは実はあまり使ったことがないのでよく知らないのですが、多分、もっと綺麗に書けると思います。。。
@nums = split(/\./, $ENV{'REMOTE_ADDR'});
$hex = sprintf("%02X%02X%02X%02X",
$nums[0], $nums[1], $nums[2], $nums[3]);
$salt="aa"; # 任意の2文字を入れる
$id = substr(crypt($hex, $salt),-11);
最後の$idがIDを表す文字列です。IDは11文字ですが、8文字程度でも区別可能だと思いますので、最後の行の-11のところは-8にしてもいいと思います。
接続する度にIPアドレスが変わる場合、NATやプロキシを使用している場合、などがあるので、IDが区別できるからと言って書き込んでいる人やPCを区別できるわけではないので注意が必要です。
2006年04月14日07:00投稿 | 技術的なこと | Comments (8) | Trackbacks (0)
簡単にこのブログで試してみましたがいけそうですね。やり方を書きます。
Posted by yosh at 2006年07月14日 23:58
これを参考にして
http://cefa.sakura.ne.jp/archives/2005/05/201751.php
★マンスリーアーカイブのカレンダー部分を以下のように変更
<div align="left" class="calendar">
<table border="0" cellspacing="4" cellpadding="0" summary="投稿した日にリンクする月別のカレンダー">
<tr>
<td><span id="calendarhead">
<MTArchivePrevious>
<a href="<$MTArchiveLink$>" title="<$MTArchiveTitle$>">« </a>
</MTArchivePrevious>
<$MTArchiveTitle$>
<MTArchiveNext>
<a href="<$MTArchiveLink$>" title="<$MTArchiveTitle$>"> »</a>
</MTArchiveNext>
</span></td>
<td align="left">
<MTCalendar month="this">
<span id="calendar">
<MTCalendarIfEntries>
<MTEntries lastn="1"><a href="<$MTEntryPermalink$>"><$MTCalendarDay$></a></MTEntries>
</MTCalendarIfEntries>
<MTCalendarIfNoEntries><$MTCalendarDay$></MTCalendarIfNoEntries>
</span></MTCalendar></td>
</tr>
</table>
</div>
★メインページのカレンダー部分を以下のように変更
<MTArchiveList archive_type="Monthly" lastn="1">
(上のマンスリーアーカイブの部分とまったく同じコード)
</MTArchiveList>
でいけました。
うちのブログはMT3.2なのでMT3.3でそのまま動くかどうか分かりませんが。
« と書いている部分を「前月」あるいは<$MTArchiveTitle$>
 »と書いている部分を「次月」あるいは<$MTArchiveTitle$>
などに変更するなどして、いろいろデザインは変えれると思います。
Posted by yosh at 2006年07月15日 00:06
yoshさん、ご丁寧にありがとうございます。
上に紹介して下さったようなトコがあるのも、初めて知りました。
私は検索の仕方が間違っていたようです。
今度からはもう少し条件を絞り込んで調べてみます。
教えて下さった方法、ですが、そのまま入れてみたらカレンダーが消えるという
変な状態になってしまい、とりあえず元に戻しました。
多分、何かが何か(汗)しちゃってるんだと思うのですが
これは後々、自分で何とかしようと思います。
本当に、お世話になりました。
ありがとうございます。また、来ますね。
Posted by kana at 2006年07月15日 15:58
うーん、うちではこれでうまくいってるんですが。。MT3.3ではなんか
<MTEntries>
のところを
<MTEntries ort_order="descend" sort_by="created_on">
とすればうまくいくという話もあるので、そういうことかも。
Posted by yosh at 2006年07月15日 16:15
ううう。優しいお気遣い頂き、恐縮です。
私のしたことを逐一白状致しますと、実は「マンスリーアーカイブ」という
テンプレートが見当たらず「エントリーアーカイブ」の中に
上記の記号をブチ込んだのがそもそも間違っていた気がします。
ないのなら作るべきだった、作り方が分からないのなら調べるべきでした。
ペールに関して、あまりにも無知なので基礎から学びますです。
Posted by kana at 2006年07月15日 19:28
あ、マンスリーアーカイブって名前が違うかも。「日付アーカイブ」のことです。
Posted by yosh at 2006年07月15日 19:42
あ♪ うまくいきました。
ありがとうございます。
Posted by kana at 2006年07月17日 10:17
本ブログはMovable Type 3.33-jaで作成されております。
本サイトはさくらのレンタルサーバ上で運営されております。
>ここにしよ。続きです。
最近、ブログづくりで分からないことが多くて、
なるべく自分で何とかしようとやたらネットを徘徊しているのですが、
どーしても分からないことがあるのでまた質問させて下さい(すみません)。
今 気になっているのは、Dr.blogのテンプレートの一行カレンダーの両端に
「前月」「次月」みたいな小さなリンクを付けたい。ということなんですが
可能・・・だと思いますか。何だか簡単に出来そうな気がするのに
あのブログの仕掛けとか、言葉が、分からなくて もどかしいです。
yoshさんに訊いてばかりで、本当申し訳ありません。
ご負担でない時に、お返事頂けると嬉しいです。では、また来ます。
Posted by kana at 2006年07月14日 22:31