いろいろ
Seize the day.
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;
}
?>
[ ツッコミ | permalink | trackback ]
[TrackBack URL: http://nao.s164.xrea.com/td/tb.rb/20071107]
[(注) スパム対策のため,言及リンクのないトラックバックは受け付けていません.]
[(注) スパム対策のため,言及リンクのないトラックバックは受け付けていません.]
本日のリンク元
検索
- pukiwiki captcha ×8 / CAPTCHA pukiwiki ×5 / #article pukiwiki 数字 ×3 / captcha xrea ×3 / kcaptcha pukiwiki ×2 / pukiwiki article spam ×2 / xrea captcha php ×2 / キーワード不明 ×2 / pukiwiki article 件数 ×2 / pukiwiki PLUGIN_ARTICLE_COLS ×2 / pukiwiki article pcomment ×2 / kcaptcha インストール ×1 / pcomment_kcaptcha ×1 / pukiwiki CAPTCHA ×1 / Pukiwiki CAPTCHA ×1 / pukiwiki article ×1 / xrea kcaptcha ×1 / pukiwiki article captcha ×1 / PukiWiki PDF プラグイン ×1 / PUKIWIKI captcha ×1 / kcaptcha tdiary ×1 / KCAPTCHA 方法 ×1 / article.inc.php メール ×1 / "Generated by tDiary version 2.0.4" ×1 / pukiwiki CAPCHA ×1 / pukiwiki article 複数 ×1 / php captcha 数字 ×1 / captcha XREA ×1 / pukiwiki article バグ ×1 / pukiwiki article 画像 ×1 / CAPTCHA Pukiwiki ×1 / article pukiwiki ×1 / pukiwiki #article メール ×1 / max length textarea 全角 ×1 / article.inc.php メールサーバ ×1 / php kcaptcha 認証 画像 表示されない ×1 / PHP kcaptcha ×1 / kcaptcha バグ ×1 / PukiWiki spam #article ×1 / #article pukiwiki ×1 / PHP mail form KCAPTCHA ×1 / pukiwiki kcaptcha ×1 / Captcha XREA ×1 / pukiwiki article+pcomment ×1 / php captcha ×1
以下の広告はサーバによって自動的に挿入されています.
Copyright © 2004-2006, nao. All rights reserved.





