home 最新

いろいろ
Seize the day.

2004|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|07|

2007-11-07 [長年日記]

[comp] PukiWiki article 用 CAPTCHA プラグイン article_kcaptcha.inc.php

忙しくて更新が滞っています.すいません.一応まだ生きております.

PukiWiki のスパム対策のひとつに,PHP の KCAPTCHA ライブラリを用いて CAPTCHA を実装したシリーズがあります. PukiWiki サイトで配布されているのは comment,pcomment 用のみ (comment_kcaptcha.inc.php,pcomment_kcaptcha.inc.php) だったので,これらを改造して article 用プラグイン article_kcaptcha.inc.php を作ってみました.

インストール方法は,pcomment_kcaptcha.inc.php のインストール方法 に準じます.5,6 の代わりに以下の article_kcaptcha.inc.php を plugin ディレクトリにアップロードすればおk.
使用の際には,標準の article を article_kcaptcha に置き換えればおkです.

不具合,バグ等ありましたらお知らせ下さい.
<?php
/*
 
 article_kcaptcha.inc.php
 
	KCAPTCHA認証つきarticleプラグイン
 
 Copyright (C)
	2007 nao <nao_at_s164.xrea.com>
 
 Based on pcomment_kcaptcha.inc.php by XLiX
 
 License: GNU GPL 2
 
*/
require_once(PLUGIN_DIR . 'article.inc.php');
 
// 入力が間違っている時のエラー文
define('WRONG_WARNING', '入力文字列が間違っています');
 
// 文字列入力欄の説明
define('CAPTCHA_DESC', '画像の文字列を入力して下さい');
 
// 入力欄の長さ (size)
define('CPT_INPUT_SIZE', 6);
 
// 入力欄の最大入力文字数 (maxlength)
define('CPT_INPUT_MAX', 6);
 
function plugin_article_kcaptcha_action()
{
	global $vars;
	
	if(isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] ==  $_POST['keystring']){
	} else {
		return array('msg'=>WRONG_WARNING);
	}
	unset($_SESSION['captcha_keystring']);
 
	// article.inc.phpにバトンタッチ
	return plugin_article_action();
}
 
function plugin_article_kcaptcha_convert()
{
	global $script, $vars, $digest;
	global $_btn_article, $_btn_name, $_btn_subject;
	static $numbers = array();
 
	if (PKWK_READONLY) return ''; // Show nothing
 
	if (! isset($numbers[$vars['page']])) $numbers[$vars['page']] = 0;
	$article_no = $numbers[$vars['page']]++;
 
	// kcaptcha
	$kcaptcha_img = "kcaptcha/index.php?".session_name()."=".session_id();
	$desc_str = CAPTCHA_DESC;
	$cpt_input_size = CPT_INPUT_SIZE;
	$cpt_input_max = CPT_INPUT_MAX;
 
	$s_page   = htmlspecialchars($vars['page']);
	$s_digest = htmlspecialchars($digest);
	$name_cols = PLUGIN_ARTICLE_NAME_COLS;
	$subject_cols = PLUGIN_ARTICLE_SUBJECT_COLS;
	$article_rows = PLUGIN_ARTICLE_ROWS;
	$article_cols = PLUGIN_ARTICLE_COLS;
	$string = <<<EOD
<form action="$script" method="post">
 <div>
  <input type="hidden" name="article_no" value="$article_no" />
  <input type="hidden" name="plugin" value="article_kcaptcha" />
  <input type="hidden" name="digest" value="$s_digest" />
  <input type="hidden" name="refer" value="$s_page" />
  <label for="_p_article_name_$article_no">$_btn_name</label>
  <input type="text" name="name" id="_p_article_name_$article_no" size="$name_cols" /><br />
  <label for="_p_article_subject_$article_no">$_btn_subject</label>
  <input type="text" name="subject" id="_p_article_subject_$article_no" size="$subject_cols" /><br />
  <textarea name="msg" rows="$article_rows" cols="$article_cols">\n</textarea><br />
  <img src="$kcaptcha_img" />
  <input type="text" name="keystring" size="$cpt_input_size" maxlength="$cpt_input_max" /> ($desc_str) <input type="submit" name="article" value="$_btn_article" />
 </div>
</form>
EOD;
 
	return $string;
}
 
?>

2007-11-28 [長年日記]

[comp] WILLCOM のメールサーバの設定がいろいろ変わっている件

ウィルコムの WX310K を使っているが,11 月中旬くらいからメーラの動作が変なことに気がついた.
  • 一部のメール (たぶん Content-Type: ヘッダがないもの) が文字化けする.mailx で送ったメールがことごとく化けて非常に困る.
  • アドレス帳にない人間からメールが来た場合,これまでは From: ヘッダの送信者の生メールアドレスが表示されていたが,送信者が指定する名前部分が表示されるようになった.アドレス帳に登録済かどうかがパッと見で見分けられなくなってしまって少し困る.
  • 携帯・PHS 用ドメイン以外からの添付ファイルは捨てるようにしてるんだけど,WILLCOM の PHS ドメイン (pdx.ne.jp) から PC に送ってさらに PHS に転送したら,添付が削除されてた.どうも From: でなく新たに Received-From: を見てるようだ.
後 2 つはともかく最初の件はけっこうつらい.mailx で Content-Type: をつけるのってどうやるんですかね?

で,最近いつも使っているメールサーバ自体が調子悪いらしいので,てっきりそのせいかと思っていたが,電話機からメールを吸い出してみたらわかった.ヘッダがやたらと増えている!
調べてみると,どうやら WILLCOM のメールサーバの設定がいつの間にか変わったのが原因らしい. ウェブや自分の調査を元にまとめると,
  • 今年の 11/10 あたりから何やら変更になっている.
  • 従来は Date:,From:,Subject:,To:,MIME-Version:,Content-Type:,Content-Transfer-Encoding:,X-Mailer 以外のヘッダはすべて捨てられていたのが,原則すべてのヘッダをそのまま残すようになったっぽい.
  • Content-Type: ヘッダが正しくない (あるいはヘッダがない) メールが文字化けする.
  • ドコモ絵文字が受信できるようになった.
  • Subject: ヘッダのないメールが受信できるようになった.
  • HTML メールが受信できるようになったらしい.
  • ドメイン指定の添付ファイル削除機能は,From: ではなく Received-From: を見ているっぽい.
うーん,スパム対策としては正しい方向かも知れんが,もともと WILLCOM はスパム皆無に等しいからな.とりあえず個人的には文字化けが困るので,対策を思案中.

追記: メールが文字化けする件,ふとメール本文を Shift-JIS にしてみたら,なんと化けなくなった.それってちょっとどうよwwとは思うが,とりあえず解決.
本日のリンク元 | 7 | 3 | TrackBack(0)

2007-11-29 [長年日記]

[misc] 人生の取り扱い説明書

学生時代の友人に数年振りに会ったのだが,かつて就職先を悩んでいたとき,「人生の取り扱い説明書」で盛り上がったよねという話になった. 「人生の取り扱い説明書」とは岡田斗司夫氏が SPA! に連載してた概念.性格を「王様」「軍人」「職人」「学者」の 4 タイプに分けるというもので,いわば「自分が何にプライオリティを見出すか」というもの.各タイプとのつき合い方や 4 タイプのあいだの優劣関係・対立構造など非常に面白いものだった.

いやー懐かしいなあ.当時のログを引っ張り出してみると [2001-01-04],自分のことを
せっかくなので(ぉ,結果を公表しますと私はかなりの「職人」タイプのようです(わずかに「王様」タイプ寄り).
と分析していたようだ.その傾向は今もまったく変わってないとあらためて思う.
当時のメールを読み返すと,本を持ち寄って勉強会をやってみたり,「良いエンジニアの条件」について真剣に議論してたり,なんだかんだ言って熱い仲間達だったなあ.
本日のツッコミ(全2件) [ ツッコミ | permalink | trackback ]

* Sola [懐かしいなあ。文系サイドでは「遊びとしてはいいけど、単純にすぎるよね」とゆー話になってたような。]

* nao [さすが文系は手厳しいね.理系は「単純な法則ですべて説明がつく」ところをついつい喜んでしまうたちなもので…w]


以下の広告はサーバによって自動的に挿入されています.


Copyright © 2004-2006, nao. All rights reserved.