&pgid();
 
 - ¥¹¥Ñ¥àËÉ»ßÍѤÎPukiWiki¥é¥¤¥Ö¥é¥ê¤Î¸ø³«ÍÑ¥Ú¡¼¥¸¤Ç¤¹¡£
 
 ** Ìܼ¡ [#x9a15d0e]
 #contents
 
 ** ̾Á° [#ca867f52]
  reCAPTCHA ¥×¥é¥°¥¤¥ó - spam¥Ü¥Ã¥È¤Î¤¤¤¿¤º¤é½ñ¤­¹þ¤ß¤ËÂбþ¤¹¤ëPukiWiki¥×¥é¥°¥¤¥ó
  
  Version 1.0.0
  Copyright (C)
  2008 ARK-Web co,. ltd.
  License: GPL version 2 or (at your option) any later version
 
 ** ÂоݥС¼¥¸¥ç¥ó [#m3b120b4]
 - ÂоݤÎpukiwiki¤Î¥Ð¡¼¥¸¥ç¥ó¤Ï EUC-JPÈǤΠpukiwiki-1.4.7_notb ¤Ç¤¹¡£
 http://pukiwiki.sourceforge.jp/?PukiWiki%2FDownload%2F1.4.7
 -- EUC-JPÈǤΠpukiwiki-1.4.6 ¤Ç¤Îưºî³Îǧ¤¬¼è¤ì¤Þ¤·¤¿¡£
 
 *** ɬ¿Ü´Ä¶­ [#k412624a]
 Ëܥץ饰¥¤¥ó¤¬Æ°ºî¤¹¤ë´Ä¶­¤È¤·¤Æ¡¢COLOR(red){''PEARËÜÂÎ''¤È¡Ö''HTTP::Request''¡×¤ª¤è¤Ó¡Ö''Net::URL''¡×¤¬É¬Í×}¤Ç¤¹¡£
 
 ¥Û¥¹¥Æ¥£¥ó¥°¤ò¼Ú¤ê¤Æ¤¤¤ÆPEAR´Ä¶­¤ò¹¹¿·¤Ç¤­¤Ê¤¤¾ì¹ç¤Ï¢­¤³¤Á¤é¤ÎÊýË¡¤Ç¼«Ê¬¤Î¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤Ë´Ä¶­¤¬ºî¤ì¤Þ¤¹¡£
 
 - ¶¦Í­¥Û¥¹¥È¤Ç¤Î PEAR ¤Î¥í¡¼¥«¥ë¥³¥Ô¡¼¤Î¥¤¥ó¥¹¥È¡¼¥ë
 http://pear.php.net/manual/ja/installation.shared.php
 
 ** ¥À¥¦¥ó¥í¡¼¥É [#eb100ef1]
 - reCAPTCHA.tgz (64KB)
 #ref(reCAPTCHA.tgz)
 
 - reCAPTCHA.zip (68KB)
 #ref(reCAPTCHA.zip)
 
 #blikimore
 
 ** reCAPTCHA¤È¤Ï [#tb5dd840]
 #ref(demo_img.gif)
 
 reCAPTCHA¤ÎÀâÌÀ¤ÎÁ°¤Ë¡ØCAPTCHA(¥­¥ã¥×¥Á¥ã)¡Ù¤Ï¤´Â¸ÃΤǤ·¤ç¤¦¤«?
 Yahoo!¤Î¿·µ¬ÅÐÏ¿¤Ê¤É¡¢Web¥µ¡¼¥Ó¥¹¤Ç¤è¤¯»È¤ï¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤­¤Æ¤¤¤ë¡¢²èÁüʸ»ú¤ÎÆâÍÆ¤òÆþÎϤµ¤»¤ë¥¢¥ì¤Ç¤¹¡£
 
 CAPTCHA¤ÎÌÜŪ¤Ï¡Ø¿Í´Ö¡Ù¤È¡Ø¥³¥ó¥Ô¥å¡¼¥¿(SpamBot)¡Ù¤ò¸«Ê¬¤±¤ë¤³¤È¤Ë¤¢¤ê¤Þ¤¹¡£²èÁüʸ»ú¤Ï¥Ð¥¤¥Ê¥ê¥Ç¡¼¥¿¤Ê¤Î¤Ç
 ¥³¥ó¥Ô¥å¡¼¥¿¤Ë¤Ï¤¹¤°¤Ë¤Ïʬ¤«¤ê¤Þ¤»¤ó¤¬¡¢¿Í´Ö¤Ë¤ÏÌܤǸ«¤¿¤ê²»À¼¤Ç³Îǧ¤¹¤ì¤Ðû»þ´Ö¤ÇÂбþ¤Ç¤­¤Þ¤¹¡£ 
 
 ¤½¤ì¤ò½ñÀҤΥǥ¸¥¿¥ë²½¤ËÍ­¸ú³èÍѤ¹¤ë¤è¤¦¤ËÌܤò¸þ¤±¤¿¤Î¤¬reCAPTCHA¤Ç¤¹¡£reCAPTCHA¤Ç¤Ï²èÁüʸ»ú¤Ëñ¸ì¤¬2¤Ä½Ð¤Æ¤­¤Þ¤¹¡£
 ¤³¤Î¤¦¤Á1¤Ä¤ÏCAPTCHA¤ÈƱ¤¸¤è¤¦¤Ëͽ¤áÅú¤¨¤Îʬ¤«¤Ã¤Æ¤¤¤ë¤â¤Î¤Ç¡¢¤â¤¦1¤Ä¤ÏOCR¤ÇÆÉ¤ß¼è¤ì¤Ê¤«¤Ã¤¿Ã±¸ì¤Ç¤¹¡£
 
 CAPTCHA¤Î¤·¤¯¤ß¾å¡¢¥æ¡¼¥¶¤Ï¡ÖξÊýÀµ¤·¤¤Ã±¸ì¤òÆþ¤ì¤ë¤À¤í¤¦¡×¤È¤¤¤¦¤³¤È¤ÇÀ®¤êΩ¤Ã¤Æ¤¤¤Þ¤¹¡£
 
 ±Ñ¸ì¤Ç¤¹¤¬²¼µ­¤ÎreCAPTCHA¸ø¼°¥µ¥¤¥È¤Ë¾ÜºÙ¤ÊÀâÌÀ¤¬¤¢¤ê¤Þ¤¹¡£
 
 http://recaptcha.net/learnmore.html
 
 ** pukiwkiki¤ÎreCAPTCHA¥â¥¸¥å¡¼¥ë¤ÎÆÃħ [#td83654b]
 - ¥Ú¡¼¥¸¤òÆÉ¤à¤À¤±¤Î±ÜÍ÷¼Ô¤Ë¤ÏreCAPTCHA¤Ë¤è¤ëǧ¾Ú¤ÎɬÍפ¬¤¢¤ê¤Þ¤»¤ó
 
 - 1²óreCAPTCHA¤Çǧ¾Ú¤¬¼è¤ì¤ë¤È¡¢¥Ö¥é¥¦¥¶¤òÊĤ¸¤ë¤Þ¤ÇÊÔ½¸¤¬µö²Ä¤µ¤ì¤Þ¤¹
 
 - reCAPTCHA¤Çǧ¾Ú¤¬É¬ÍפȤʤë¥×¥é¥°¥¤¥ó¤òÁªÂò¤Ç¤­¤Þ¤¹
 
 - ±ÜÍ÷¼Ô¤Î¥Ö¥é¥¦¥¶¤¬JavaScript¤òÍøÍѲÄǽ¤Ê¤è¤¦¤Ç¤¢¤ì¤Ð¡¢¥â¡¼¥À¥ë¥À¥¤¥¢¥í¥°Ãæ¤Çǧ¾Ú¤òºÑ¤Þ¤»¤é¤ì¤Þ¤¹
 
 ** reCAPTCHA¥â¥¸¥å¡¼¥ë¤Î¥Ç¥â [#d4912d13]
 ƳÆþÁ°¤Ë¤Þ¤º¤É¤Î¤è¤¦¤Êµ¡Ç½¤Ê¤Î¤«¤òÃΤäƤ¤¤¿¤À¤¯¤¿¤á¤Ë¡¢¥Ç¥â´Ä¶­¤òÍѰդ·¤Þ¤·¤¿¡£
 
 http://www.ark-web.jp/sandbox/recaptcha/pukiwiki
 ¢¨¥Ç¥â´Ä¶­¤ÏËèÆü6»þ¤Ë¸µ¤ËÌᤵ¤ì¤Þ¤¹
 
 ** ¥¤¥ó¥¹¥È¡¼¥ë [#w59b8017]
 0.¥Õ¥¡¥¤¥ë¤Î¥Ð¥Ã¥¯¥¢¥Ã¥×¤ò¼è¤ê¤Þ¤¹¡£
 
 1.pukiwiki¤¬¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ë¡¢pukiwikiÇÛ²¼¤ò¥¢¥Ã¥×¥í¡¼¥É¤·¤Þ¤¹¡£
 
 2.pukiwiki¤Î¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë(4¥Õ¥¡¥¤¥ëʬ)¤ËÄɵ­¤·¤Þ¤¹¡£
 ¡¡¢¨Äɵ­²Õ½ê¤Ë¤ÏÁ´¤Æ¡Ö// -> (...)¡×¤È¡Ö// <- (...)¡×¤¬½ñ¤¤¤Æ¤¢¤ê¤Þ¤¹¡£
 
 2-1.index.php¤ÎÀèÆ¬¤Ë²¼µ­¤Î¥³¡¼¥É¤òÄɲä·¤Þ¤¹¡£
 
  		// Copyright (C) 2001-2006 PukiWiki Developers Team
  		// License: GPL v2 or (at your option) any later version
  
  		// -> 2008.02.26 s.g.kohata(reCaptcha)
  		// session
  		session_start();
  		// <- 2008.02.26 s.g.kohata(reCaptcha)
  
  		// Error reporting
  		//error_reporting(0); // Nothing
 
 2-2.lib/init.php¤Ë²¼µ­¤Î¥³¡¼¥É¤òÄɲä·¤Þ¤¹¡£
 
  		define('UA_NAME', isset($user_agent['name']) ? $user_agent['name'] : '');
  		define('UA_VERS', isset($user_agent['vers']) ? $user_agent['vers'] : '');
  		unset($user_agent);	// Unset after reading UA_INI_FILE
  
  		// -> 2008.02.26 s.g.kohata(reCaptcha)
  		/////////////////////////////////////////////////
  		// recaptcha¥×¥é¥°¥¤¥ó¤Î¥Á¥§¥Ã¥¯
  		define('RECAPTCHA_INI_FILE',  PLUGIN_DIR . 'recaptcha.ini.php');
  		if (! file_exists(INI_FILE) || ! is_readable(INI_FILE)) {
  			define('RECAPTCHA_EXIST', false);
  		} else {
  			require(RECAPTCHA_INI_FILE);
  			define('RECAPTCHA_EXIST', true);
  		}
  		// <- 2008.02.26 s.g.kohata(reCaptcha)
  
  		/////////////////////////////////////////////////
  		// ¥Ç¥£¥ì¥¯¥È¥ê¤Î¥Á¥§¥Ã¥¯
 
 2-3.skin/pukiwiki.skin.php¤Ë²¼µ­¤Î¥³¡¼¥É¤òÄɲä·¤Þ¤¹¡£2²Õ½ê¤¢¤ê¤Þ¤¹¡£
 
  		 <link rel="stylesheet" type="text/css" media="print"  href="skin/pukiwiki.css.php?charset=<?php echo $css_charset ?>&amp;media=print" charset="<?php echo $css_charset ?>" />
  		 <link rel="alternate" type="application/rss+xml" title="RSS" href="<?php echo $link['rss'] ?>" /><?php // RSS auto-discovery ?>
  		<?php
  		// -> 2008.02.26 s.g.kohata(reCaptcha)
  		if (defined('RECAPTCHA_ENABLE_PLUGINS'))
  			print recaptcha_get_script();
  		// <- 2008.02.26 s.g.kohata(reCaptcha)
  		?>
  		<?php if (PKWK_ALLOW_JAVASCRIPT && $trackback_javascript) { ?> <script type="text/javascript" src="skin/trackback.js"></script><?php } ?>
  
  		<?php echo $head_tag ?>
  
  		(...)
  
  		<?php } ?>
  
  		<?php echo $hr ?>
  
  		<?php
  			// -> 2008.02.26 s.g.kohata(reCaptcha)
  			if (defined('RECAPTCHA_ENABLE_PLUGINS')) {
  				if (!is_recaptcha_checked()) {
  					global $safari_version;
  					if ($safari_version < 500) {
  						echo RECAPTCHA_SAFARI_MESSAGE;
  						echo $hr;
  					}
  				}
  			}
  			// <- 2008.02.26 s.g.kohata(reCaptcha)
  		?>
  
  		<?php if (PKWK_SKIN_SHOW_TOOLBAR) { ?>
  		<!-- Toolbar -->
  		<div id="toolbar">
 
 2-4.lib/pukiwiki.php¤Ë²¼µ­¤Î¥³¡¼¥É¤òÄɲä·¤Þ¤¹¡£2²Õ½ê¤¢¤ê¤Þ¤¹¡£
 
  		/////////////////////////////////////////////////
  		// Include subroutines
  
  		// -> 2008.02.26 s.g.kohata(reCaptcha)
  		// safari¤Î¥Ð¡¼¥¸¥ç¥ó³Îǧ
  		// Mozilla/5.0 (Macintosh; U; Intel Mac OS X; ja-jp) AppleWebKit/418 (KHTML, like Gecko) Safari/417.9.3
  		if (preg_match("/Safari\/([0-9\.]+)$/", $_SERVER['HTTP_USER_AGENT'], $version))
  			$safari_version = (int)$version[1];
  		else
  			$safari_version = 500;
  		// <- 2008.02.26 s.g.kohata(reCaptcha)
  
  		if (! defined('LIB_DIR')) define('LIB_DIR', '');
  
  		require(LIB_DIR . 'func.php');
  
  		(...)
  
  		if ($plugin != '') {
  			// -> 2008.02.26 s.g.kohata(reCaptcha)
  			// recaptcha¤¬É¬Íפʥڡ¼¥¸¤«³Îǧ
  			if (defined('RECAPTCHA_ENABLE_PLUGINS')) {
  				// recaptchaÍÑ¥ê¥À¥¤¥ì¥¯¥È
  				if ($_GET['plugin'] == 'recaptcha') {
  					if ($_GET['action'] == 'status') {
  						header("location: ../plugin/recaptcha.ini.php?action=status");
  						exit;
  					}
  					else if ($_GET['action'] == 'window') {
  						header("location: ../plugin/recaptcha.ini.php?action=window");
  						exit;
  					}
  				}
  				if (is_recaptcha_necessary($plugin)) {
  					// ºÆ¥Ý¥¹¥È»þ¤Ë°ì»þŪ¤Ë̵¸ú²½
  					if (isset($_POST['recaptcha_check']) &&
  						$_POST['recaptcha_check'] == 'false')
  							;
  					else {
  						// ¥Á¥§¥Ã¥¯ºÑ¤ß¤Ç¤Ê¤¤¾ì¹ç¤Î¤ß
  						if (!is_recaptcha_checked()) {
  							// POST¥¢¥É¥ì¥¹
  							$_SESSION[RECAPTCHA_SESSION_POSTURL] = $_SERVER['REQUEST_URI'];
  							// Ìá¤ê¥¢¥É¥ì¥¹
  							if (substr($_SERVER['REQUEST_URI'], -9) == "index.php")
  								$_SESSION[RECAPTCHA_SESSION_RETURL] = $_SERVER['HTTP_REFERER'];
  							else
  								$_SESSION[RECAPTCHA_SESSION_RETURL] = $_SERVER['REQUEST_URI'];
  							// POST,GET¥Ç¡¼¥¿
  							$_SESSION[RECAPTCHA_SESSION_HTTP_POST] = $_POST;
  							$_SESSION[RECAPTCHA_SESSION_HTTP_GET]  = $_GET;
  							$_SESSION[RECAPTCHA_SESSION_AGENT]     = $_SERVER['HTTP_USER_AGENT'];
  							$_SESSION[RECAPTCHA_SESSION_COOKIE]    = $_COOKIE;
  							header("location: index.php?plugin=recaptcha");
  							exit;
  						}
  					}
  				}
  			}
  			// <- 2008.02.26 s.g.kohata(reCaptcha)
  			if (exist_plugin_action($plugin)) {
  				// Found and exec
  				$retvars = do_plugin_action($plugin);
  				if ($retvars === FALSE) exit; // Done
 
 3.reCAPTCHA¤Î¥µ¥¤¥È¤Ç¡¢ÍøÍÑÅÐÏ¿¤ò¤·¤Þ¤¹¡£
 ¡¡http://recaptcha.net/whyrecaptcha.html ¤Î[Sign up Now!]¤ÇÍøÍÑÅÐÏ¿¤¬²Äǽ¤Ç¤¹¡£
 
 4.plugin/recaptcha.ini.php¤ò³«¤¤¤Æ²¼µ­¤ÎÀßÄꤷ¤Þ¤¹¡£
 
 4-1.¡ØRECAPTCHA_PUBLICKEY¡Ù¤È¡ØRECAPTCHA_PRIVATEKEY¡Ù¤Ë3.¤ÇÅÐÏ¿¤·¤¿¸ø³«¥­¡¼¤ÈÈëÌ©¥­¡¼¤òÆþ¤ì¤Þ¤¹¡£
  // http://recaptcha.net/whyrecaptcha.html ¤Î[Sign up Now!]¤ÇÅÐÏ¿¤·¤¿ÃͤÎÀßÄê
  define('RECAPTCHA_PUBLICKEY',         '¸ø³«¥­¡¼¤òÆþ¤ì¤Æ¤¯¤À¤µ¤¤');
  define('RECAPTCHA_PRIVATEKEY',        'ÈëÌ©¥­¡¼¤òÆþ¤ì¤Æ¤¯¤À¤µ¤¤');
 
 4-2.¡ØRECAPTCHA_ENABLE_PLUGINS¡Ù¤ËreCAPTCHA¤Îǧ¾Ú¤¬É¬Íפˤʤë¥×¥é¥°¥¤¥ó̾¤ò ,(¥«¥ó¥Þ)¶èÀÚ¤ê¤ÇÆþ¤ì¤Þ¤¹¡£
 ¡¡¥Ç¥Õ¥©¥ë¥È¤Ï¡Øcomment,newpage,edit,memo,memo2,vote,tracker¡Ù¤¬»ØÄꤷ¤Æ¤¢¤ê¤Þ¤¹¡£
  // reCAPTCHA¤ÎÂоݤȤ¹¤ë¥×¥é¥°¥¤¥ó̾
  define('RECAPTCHA_ENABLE_PLUGINS',    'comment,newpage,edit,memo,memo2,vote,tracker');
 
 4-3.pukiwiki¤ËBASICǧ¾Ú¤¬¤«¤«¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¥æ¡¼¥¶Ì¾¤È¥Ñ¥¹¥ï¡¼¥É¤ò
 ¡¡¡ØRECAPTCHA_BASICAUTH_USER¡Ù¤È¡ØRECAPTCHA_BASICAUTH_PW¡Ù¤ËÆþ¤ì¤Þ¤¹¡£
 ¡¡¢¨BASICǧ¾Ú¤¬¤Ê¤¤¾ì¹ç¤Ï¤½¤Î¤Þ¤Þ¤Ç·ë¹½¤Ç¤¹¡£
  // pukiwiki¤Ø¤Î¥¢¥¯¥»¥¹¤ËBASICǧ¾Ú¤¬É¬Íפˤʤë¾ì¹ç¤ÏÅÐÏ¿¤·¤Þ¤¹
  define('RECAPTCHA_BASICAUTH_USER',    '');
  define('RECAPTCHA_BASICAUTH_PW',      '');
 
 5.ưºî³Îǧ¤È¤·¤Æ¡¢pukiwiki¤ò³«¤¤¤Æ¥Ú¡¼¥¸¤Î¡ÖÊÔ½¸¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤¿¸å¤Ç¡¢
 ¡¡reCAPTCHA¤Îǧ¾Ú¤¬É½¼¨¤µ¤ì¤ë¤Î¤Ç¡¢2¤Ä¤Îñ¸ì¤òÆþÎϤ·¤Æ[³Îǧ]¤ò¥¯¥ê¥Ã¥¯¤·¤Þ¤¹¡£
 ¡¡¤½¤Î¸å¡¢¥Ú¡¼¥¸¿·µ¬ºîÀ®¤Î¥Æ¥­¥¹¥È¥Õ¥£¡¼¥ë¥É¤¬É½¼¨¤µ¤ì¤ë¤è¤¦¤Ê¤éÀßÄ괰λ¤Ç¤¹¡£
 
 ** ¹¹¿·ÍúÎò [#ffb169cb]
 - 2008/05/08  Âè°ì¼¡¸ø³«
 - 2008/04/16  ¥Ù¡¼¥¿ÈÇ´°À®
 
 #blikifooter(Ãݼ)
 - ËܲȤ˥³¥ó¥È¥ê¥Ó¥å¡¼¥È¤·¤Þ¤·¤¿¡£ -- [[Ãݼ]] &new{2008-05-08 (ÌÚ) 18:49:51};
 -- http://pukiwiki.sourceforge.jp/?plugin=related&page=%E8%87%AA%E4%BD%9C%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%2FreCAPTCHA.tgz
 -- [[pukiwiki:¼«ºî¥×¥é¥°¥¤¥ó/reCAPTCHA.tgz]]
 
 #comment
 
 tag: [[PHP>tag/PHP]], [[PukiWiki>tag/PukiWiki]], [[Spam>tag/Spam]], [[reCAPTCHA>tag/reCAPTCHA]], [[CAPTCHA>tag/CAPTCHA]]

¥È¥Ã¥×   ÊÔ½¸ º¹Ê¬ ¥Ð¥Ã¥¯¥¢¥Ã¥× źÉÕ Ê£À½ ̾Á°Êѹ¹ ¥ê¥í¡¼¥É   ¿·µ¬ °ìÍ÷ ñ¸ì¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS

¥¢¡¼¥¯¥¦¥§¥Ö¤Î¥µ¡¼¥Ó¥¹¤ä¥½¥ê¥å¡¼¥·¥ç¥ó¤Ï¤³¤Á¤é