• 01-02-2013, 20:54:16
    #10
    x görünmesi recaptcha api yazmadığın içindir
    veritabanından çekmesi için eklentinin editlenmesi lazım ki o biraz uğraştırır
    indirdiğin xml kodunu açıp istediğin php kodunu ekleyebilirsin istediğin yerine
  • 01-02-2013, 20:56:57
    #11
    2 tane apisinide yazdım hocam eskiye çevirdim ama hala X gözüküyor :/
    Bu arada kayıt ol kısmında recapty çalışıyor ama loginde çalışmıyor.

    caqlayan adlı üyeden alıntı: mesajı görüntüle
    x görünmesi recaptcha api yazmadığın içindir
    veritabanından çekmesi için eklentinin editlenmesi lazım ki o biraz uğraştırır
    indirdiğin xml kodunu açıp istediğin php kodunu ekleyebilirsin istediğin yerine
    <?xml version="1.0" encoding="ISO-8859-1"?>
    
    <product productid="captchalogin" active="1">
    	<title>LoginResimDogrulama</title>
    	<description>Spam Bot Engelleyen Özel Login Resim Doðrulama.</description>
    	<version>1.00</version>
    	<url>
    http://www.tr-vbulletin.com/vbulletin-3-eklentileri/spam-bot-uye-onleyen-ozel-login-resim-dogrulama-197.html
    </url>
    	<versioncheckurl />
    	<dependencies>
    	</dependencies>
    	<codes>
    	</codes>
    	<templates>
    	</templates>
    	<plugins>
    		<plugin active="1" executionorder="5">
    			<title>LoginResimDogrulama - Ajax Arama</title>
    			<hookname>ajax_start</hookname>
    			<phpcode><![CDATA[
    		if ($vbulletin->options['captchaLogin_enabled']) {	
    			if ($_GET['do'] == 'CheckTheImageCodeLogin') {
    		$result = $vbulletin->db->query_first("
    			SELECT COUNT(*) as imagecode FROM " . TABLE_PREFIX . "regimage
    			WHERE regimagehash = '" . $vbulletin->db->escape_string($_GET['imagehash']) . "'
    				AND imagestamp = '" . $vbulletin->db->escape_string($_GET['imagestamp']) . "'
    		");
    		$count = $result['imagecode']; 
    		if ($count > 0)
    		{
    	  		$return_value = $_GET['imagestamp'] . ",Working";
    	  	} else {
    			$return_value = $_GET['imagestamp'] . ",Invalid";
    		}
    		echo $return_value;
    	} elseif ( $_GET['do'] == 'loadimagemd5' ) {
    		require_once(DIR . '/includes/functions_regimage.php');
    		$imagehash = fetch_regimage_hash();
    		echo $imagehash;
    	}
    }
    		]]></phpcode>
    		</plugin>
    		<plugin active="1" executionorder="5">
    			<title>LoginResimDogrulama - Kontrol et</title>
    			<hookname>login_verify_success</hookname>
    			<phpcode><![CDATA[if ($vbulletin->options['captchaLogin_enabled']) {
    			$vbulletin->input->clean_array_gpc('p', array(
    		'vb_login_username'        => TYPE_STR,
    		'vb_login_password'        => TYPE_STR,
    		'vb_login_md5password'     => TYPE_STR,
    		'vb_login_md5password_utf' => TYPE_STR,
    		'postvars'                 => TYPE_STR,
    		'imagehash'                => TYPE_STR,
    		'imagestamp'               => TYPE_STR,
    		'cookieuser'               => TYPE_BOOL,
    		'logintype'                => TYPE_STR,
    		'cssprefs'                 => TYPE_STR,
    	));
    	require_once(DIR . '/includes/spam_engel.php');
    	$admincpcheck = $vbulletin->db->query_first("
    		SELECT usergroupid
    		FROM " . TABLE_PREFIX . "user
    		WHERE username = '" . $vbulletin->db->escape_string($vbulletin->GPC['vb_login_username']). "'");
    	if ((!in_array($admincpcheck['usergroupid'], explode(",", $vbulletin->options['captchaLogin_usergroups'], -1))) && (!verify_regimage_hash($vbulletin->GPC['imagehash'], $vbulletin->GPC['imagestamp']))) {
    		eval(standard_error('Sorry but the string you entered did not match the images text.'));
    	}
    }]]></phpcode>
    		</plugin>
    		<plugin active="1" executionorder="5">
    			<title>LoginResimDogrulama - Þablon Düzenleme</title>
    			<hookname>parse_templates</hookname>
    			<phpcode><![CDATA[
    	if ($vbulletin->options['captchaLogin_enabled']) {
    			$replacement = '		<!-- login form -->
    		<form action=\"' . $vbulletin->options['bburl'] . '/login.php?do=login\" method=\"post\" onsubmit=\"md5hash(vb_login_password, vb_login_md5password, vb_login_md5password_utf, $show[nopasswordempty])\">
    		<script type=\"text/javascript\" src=\"clientscript/vbulletin_md5.js?v=$vboptions[simpleversion]\"></script>
    		<table cellpadding=\"0\" cellspacing=\"$stylevar[formspacer]\" border=\"0\" id=\"login_user_pass\">
    		<tr>
    			<td class=\"smallfont\"><label for=\"navbar_username\">$vbphrase[username]</label></td>
    			<td><input type=\"text\" class=\"bginput\" style=\"font-size: 11px\" name=\"vb_login_username\" id=\"navbar_username\" size=\"10\" accesskey=\"u\" tabindex=\"101\" value=\"$vbphrase[username]\" onfocus=\"if (this.value == \'$vbphrase[username]\') this.value = \'\';\" /></td>
    			<td class=\"smallfont\" colspan=\"2\" nowrap=\"nowrap\"><label for=\"cb_cookieuser_navbar\"><input type=\"checkbox\" name=\"cookieuser\" value=\"1\" tabindex=\"103\" id=\"cb_cookieuser_navbar\" accesskey=\"c\" />$vbphrase[remember_me]</label></td>
    		</tr>
    		<tr>
    			<td class=\"smallfont\"><label for=\"navbar_password\">$vbphrase[password]</label></td>
    			<td><input type=\"password\" class=\"bginput\" style=\"font-size: 11px\" name=\"vb_login_password\" id=\"navbar_password\" size=\"10\" tabindex=\"102\" onkeypress=\"if (event.keyCode == 13){ document.getElementById(\'firstpart\').click(); }\"
    /></td>
    			<td><input id=\"firstpart\" type=\"button\" onclick=\"displayimagecode();\" class=\"button\" value=\"$vbphrase[log_in]\" tabindex=\"104\" title=\"$vbphrase[enter_username_to_login_or_register]\" accesskey=\"s\" /></td>
    		</tr>
    
    		</table>
    		<table cellpadding=\"0\" cellspacing=\"$stylevar[formspacer]\" border=\"0\" id=\"login_image_code\" style=\"display:none;\">
    		<tr>
    			<td valign=\"middle\" width=\"159px\" height=\"49\" class=\"style1\" >
    			<table width=\"164\" height=\"49\" style=\"text-align:center\"><tr><td>
    				<img id=\"imageregload\" src=\"http://www.ajaxload.info/cache/ff/ff/ff/00/00/00/4-0.gif\" border=\"0\" /><img id=\"imagereg\" src=\"\" width=\"159\" height=\"49\" border=\"0\" style=\"display: none;\" onclick=\"refreshimage();\" /><img id=\"progress_imagereg\" style=\"display: none; float:$stylevar[right]\" src=\"$stylevar[imgdir_misc]/progress.gif\" alt=\"\" />
    			</td></tr></table>
    			</td>
    			<td>
    				<input id=\"imagestamp\" type=\"text\" class=\"bginput\" name=\"imagestamp\" size=\"10\" maxlength=\"9\"  onblur=\"CheckTheImageCode();\" style=\"width: 100px\" /><br /><input id=\"imagehash\" type=\"hidden\" name=\"imagehash\" value=\"$imagehash\" /><input  type=\"submit\" class=\"bginput\" name=\"imagestamp0\" value=\"Onayla\" size=\"10\" maxlength=\"9\"  style=\"width: 100px; height: 22px;\" />
    			</td>
    		</tr>
    		<script type=\"text/javascript\">
    				function displayimagecode() {
    					document.getElementById(\'login_user_pass\').style.display = \'none\';
    					document.getElementById(\'login_image_code\').style.display = \'block\';
    					makeajaxregRequest( \'' . $vbulletin->options['bburl'] . '/ajax.php?do=loadimagemd5\', \'do=loadimagemd5\', \'loadimagemd5\');				
    				}
    				function refreshimage() {
    						var poststr = \"do=imagereg&imagehash=\" + document.getElementById(\'imagehash\').value;
    						makeajaxregRequest( \'' . $vbulletin->options['bburl'] . '/ajax.php?do=imagereg&imagehash=\' + document.getElementById(\'imagehash\').value, poststr, \'refresh\');
    				}
    				var isWorking = false;
    				function handleHttpResponse_3() {
    				  if (http.readyState == 4) {
    					if (http.responseText.indexOf(\'invalid\') == -1) {
    					  // Split the comma delimited response into an array
    					  results = http.responseText.split(\",\");
    					  if (results[1] == \"Working\") {
    					  	//document.getElementById(\'imagestamp\').value = unescape(results[0]);
    						document.getElementById(\'imagestamp\').setAttribute(\"class\", \"inputgood\");
    						document.getElementById(\'imagestamp\').setAttribute(\"className\", \"inputgood\");
    						isWorking = false;
    					  } else {
    					  	document.getElementById(\'imagestamp\').value = \'\';
    						document.getElementById(\'imagestamp\').setAttribute(\"class\", \"inputbad\");
    						document.getElementById(\'imagestamp\').setAttribute(\"className\", \"inputbad\");
    						isWorking = false;
    						var poststr = \"do=imagereg&imagehash=\" + document.getElementById(\'imagehash\').value;
    						makeajaxregRequest( \'' . $vbulletin->options['bburl'] . '/ajax.php?do=imagereg&imagehash=\' + document.getElementById(\'imagehash\').value, poststr, \'refresh\');
    					  }
    					}
    				  }
    				}
    				function CheckTheImageCode() {
    						if (!isWorking && http) {
    							http.open(\"GET\", \'' . $vbulletin->options['bburl'] . '/ajax.php?do=CheckTheImageCodeLogin&imagehash=\' + document.getElementById(\'imagehash\').value + \'&imagestamp=\' + document.getElementById(\'imagestamp\').value, true);
    							http.onreadystatechange = handleHttpResponse_3;
    							isWorking = true;
    							http.send(null);
    						}
    				}
    		
    			   function makeajaxregRequest(url, parameters, param) {
    				  ajaxreg_request = false;
    				  if (window.XMLHttpRequest) { // Mozilla, Safari,...
    					 ajaxreg_request = new XMLHttpRequest();
    					 if (ajaxreg_request.overrideMimeType) {
    						// set type accordingly to anticipated content type
    						//ajaxreg_request.overrideMimeType(\'text/xml\');
    						ajaxreg_request.overrideMimeType(\'text/html\');
    					 }
    				  } else if (window.ActiveXObject) { // IE
    					 try {
    						ajaxreg_request = new ActiveXObject(\"Msxml2.XMLHTTP\");
    					 } catch (e) {
    						try {
    						   ajaxreg_request = new ActiveXObject(\"Microsoft.XMLHTTP\");
    						} catch (e) {}
    					 }
    				  }
    				  if (!ajaxreg_request) {
    					 alert(\'Cannot create XMLHTTP instance\');
    					 return false;
    				  }
    				  if (param == \'refresh\') {
    				  	ajaxreg_request.onreadystatechange = alertajaxregContents;
    				  } else if ( param == \'loadimagemd5\' ) {
    				  	ajaxreg_request.onreadystatechange = loadimagemd5Contents;
    				  }
    				  ajaxreg_request.open(\'POST\', url, true);
    				  ajaxreg_request.setRequestHeader(\"Content-type\", \"application/x-www-form-urlencoded\");
    				  ajaxreg_request.setRequestHeader(\"Content-length\", parameters.length);
    				  ajaxreg_request.setRequestHeader(\"Connection\", \"close\");
    				  ajaxreg_request.send(parameters);
    			   }
    			   function loadimagemd5Contents(){
    			   		if (ajaxreg_request.readyState == 4) {
    					 	if (ajaxreg_request.status == 200) {
    				   			document.getElementById(\'imagehash\').value = ajaxreg_request.responseText;
    							document.getElementById(\'imagereg\').src = \'' . $vbulletin->options['bburl'] . '/image.php?type=regcheck&imagehash=\' + ajaxreg_request.responseText;
    							document.getElementById(\'imageregload\').style.display = \'none\';
    							document.getElementById(\'imagereg\').style.display = \'inline\';
    						}
    					}
    			   }
    			   function alertajaxregContents(){
    				  if (ajaxreg_request.readyState == 4) {
    					 if (ajaxreg_request.status == 200) {
    						var imagehash =  ajaxreg_request.responseText.match(/<imagehash>(.*)<\/imagehash>/);
    						document.getElementById(\'imagehash\').value = imagehash[1];
    						document.getElementById(\'imagereg\').src = \'' . $vbulletin->options['bburl'] . '/image.php?type=regcheck&imagehash=\' + imagehash[1];
    					 } else {
    						alert(\'There was a problem with the request.\');
    					 }
    				  }
    			   }
    				function getHTTPObject() {
    				  var xmlhttp;
    				  /*@cc_on
    				  @if (@_jscript_version >= 5)
    					try {
    					  xmlhttp = new ActiveXObject(\"Msxml2.XMLHTTP\");
    					} catch (e) {
    					  try {
    						xmlhttp = new ActiveXObject(\"Microsoft.XMLHTTP\");
    					  } catch (E) {
    						xmlhttp = false;
    					  }
    					}
    				  @else
    				  xmlhttp = false;
    				  @end @*/
    				  if (!xmlhttp && typeof XMLHttpRequest != \'undefined\') {
    					try {
    					  xmlhttp = new XMLHttpRequest();
    					} catch (e) {
    					  xmlhttp = false;
    					}
    				  }
    				  return xmlhttp;
    				}
    			   var http = getHTTPObject(); // We create the HTTP Object
    		</script>
    	
    		</table>
    		<input type=\"hidden\" name=\"s\" value=\"$session[sessionhash]\" />
    		<input type=\"hidden\" name=\"do\" value=\"login\" />		
    		<input type=\"hidden\" name=\"vb_login_md5password\" />
    		<input type=\"hidden\" name=\"vb_login_md5password_utf\" />
    		</form>
    		<!-- / login form -->
    ';
    $vbulletin->templatecache['navbar'] = preg_replace('#<!-- login form -->.*<!-- \/ login form -->#s',$replacement, $vbulletin->templatecache['navbar']);
    $vbulletin->templatecache['header'] = preg_replace('#<!-- login form -->.*<!-- \/ login form -->#s',$replacement, $vbulletin->templatecache['header']);
    $vbulletin->templatecache['STANDARD_ERROR_LITE'] = preg_replace('#<fieldset class=\\\"fieldset\\\">.*</fieldset>#s', '', $vbulletin->templatecache['STANDARD_ERROR_LITE']);
    $vbulletin->templatecache['STANDARD_ERROR'] = preg_replace('#<fieldset class=\\\"fieldset\\\">.*</fieldset>#s', '', $vbulletin->templatecache['STANDARD_ERROR']);
    $vbulletin->templatecache['STANDARD_ERROR_LOGIN'] = preg_replace('#<fieldset class=\\\"fieldset\\\">.*</fieldset>#s', '', $vbulletin->templatecache['STANDARD_ERROR_LOGIN']);
    }
    		]]></phpcode>
    		</plugin>
    	</plugins>
    	<phrases>
    		<phrasetype name="vBulletin Settings" fieldname="vbsettings">
    			<phrase name="setting_captchaLogin_enabled_desc" date="0" username="" version=""><![CDATA[Etkinleþtirmek için evet seçeneðini ayarlayýn.]]></phrase>
    			<phrase name="setting_captchaLogin_enabled_title" date="0" username="" version=""><![CDATA[LoginResimDogrulama - Aktif?]]></phrase>
    			<phrase name="setting_captchaLogin_usergroups_desc" date="0" username="" version=""><![CDATA[Admincp veya modcp eriþimi olan kullanýcý gruplarý koyun. Ör: 5,6,7.]]></phrase>
    			<phrase name="setting_captchaLogin_usergroups_title" date="0" username="" version=""><![CDATA[LoginResimDogrulama - Üye gruplarý]]></phrase>
    			<phrase name="settinggroup_captchaLogin_settings" date="0" username="" version=""><![CDATA[LoginResimDogrulama - Ayarlar]]></phrase>
    		</phrasetype>
    	</phrases>
    	<options>
    		<settinggroup name="captchaLogin_settings" displayorder="570">
    			<setting varname="captchaLogin_enabled" displayorder="10">
    				<datatype>boolean</datatype>
    				<optioncode>yesno</optioncode>
    				<defaultvalue>1</defaultvalue>
    			</setting>
    			<setting varname="captchaLogin_usergroups" displayorder="190">
    				<datatype>free</datatype>
    				<defaultvalue>5,6,7</defaultvalue>
    			</setting>
    		</settinggroup>
    	</options>
    	<helptopics>
    	</helptopics>
    	<cronentries>
    	</cronentries>
    	<faqentries>
    	</faqentries>
    </product>
    XML içeriği burada hocam nereye ne eklenmesi gerektiğini bilmiyorum

    Bunu editlerek yapabilir miyiz yoksa baştan yapmak daha mı kolay olur.
  • 01-02-2013, 21:09:23
    #12
    verdiğim linkteki xml dosyası bu değil
    orjinal dosya:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    
    <product productid="login_captcha" active="1">
    	<title>Captcha On Login</title>
    	<description>This mod requires users to verify themselves using a Captcha image when logging in.</description>
    	<version>1.1</version>
    	<url><![CDATA[http://www.vbulletin.org/forum/misc.php?do=producthelp&pid=login_captcha]]></url>
    	<versioncheckurl><![CDATA[http://www.vbulletin.org/forum/misc.php?do=productcheck&pid=login_captcha]]></versioncheckurl>
    	<dependencies>
    	</dependencies>
    	<codes>
    	</codes>
    	<templates>
    		<template name="login_captcha" templatetype="template" date="0" username="" version=""><![CDATA[$stylevar[htmldoctype]
    <html dir="$stylevar[textdirection]" lang="$stylevar[languagecode]">
    <head>
    $headinclude
    <title>$vbphrase[login_captcha_title] - $vboptions[bbtitle]</title>
    </head>
    <body>
    $header
    $navbar
    
    <form action="login.php" name="login_captcha" method="post">
    <input type="hidden" name="do" value="login" />
    <input type="hidden" name="captcha" value="1" />
    <input type="hidden" name="vb_login_username" value="{$vbulletin->GPC['vb_login_username']}" />
    <input type="hidden" name="vb_login_password" value="{$vbulletin->GPC['vb_login_password']}" />
    <input type="hidden" name="vb_login_md5password" value="{$vbulletin->GPC['vb_login_md5password']}" />
    <input type="hidden" name="vb_login_md5password_utf" value="{$vbulletin->GPC['vb_login_md5password_utf']}" />
    <input type="hidden" name="postvars" value="{$vbulletin->GPC['postvars']}" />
    <input type="hidden" name="cookieuser" value="{$vbulletin->GPC['cookieuser']}" />
    <input type="hidden" name="logintype" value="{$vbulletin->GPC['logintype']}" />
    <input type="hidden" name="cssprefs" value="{$vbulletin->GPC['cssprefs']}" />
    $additionalfields
    
    <table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center">
    	<tr>
    		<td class="tcat">$vbphrase[login_captcha_title]</td>
    	</tr>
    	<tr>
    		<td class="panelsurround" align="center">
    			<div class="panel">
    				<div style="width:$stylevar[formwidth]" align="$stylevar[left]">
    				$imagereg
    				</div>
    			</div>
    
    			<div style="margin-top:$stylevar[cellpadding]px">
    				<input type="submit" class="button" value="$vbphrase[submit]" />
    			</div>
    		</td>
    	</tr>
    </table>
    </form>
    
    <script type="text/javascript" src="clientscript/vbulletin_ajax_imagereg.js?v=$vboptions[simpleversion]"></script>
    <script type="text/javascript">
    <!--
    vB_AJAX_ImageReg_Init();
    //-->
    </script>
    
    $footer
    </body>
    </html>]]></template>
    	</templates>
    	<plugins>
    		<plugin active="1" executionorder="5">
    			<title>Display Error</title>
    			<hookname>login_failure</hookname>
    			<phpcode><![CDATA[if ($captcha == 'verify')
    {
    	require_once(DIR . '/includes/functions_regimage.php');
    	$imagehash = fetch_regimage_hash();
    
    	$scriptpath = $vbulletin->input->clean($_POST['url'], TYPE_STR);
    	$session = $vbulletin->input->clean($_POST['s'], TYPE_STR);
    
    	if (!empty($scriptpath))
    	{
    		$additionalfields .= '<input type="hidden" name="url" value="' . $scriptpath . '" />';
    	}
    
    	if (!empty($session))
    	{
    		$additionalfields .= '<input type="hidden" name="s" value="' . $session . '" />';
    	}
    
    	$navbits = array($vbphrase['login_captcha_title']);
    	$navbits = construct_navbits($navbits);
    
    	eval('$navbar = "' . fetch_template('navbar') . '";');
    	eval('$imagereg = "' . fetch_template('imagereg') . '";');
    	eval('print_output("' . fetch_template('login_captcha') . '");');
    }
    else if ($captcha == 'bad')
    {
    	eval(standard_error(fetch_error('register_imagecheck')));
    }]]></phpcode>
    		</plugin>
    		<plugin active="1" executionorder="5">
    			<title>Ask For Captcha</title>
    			<hookname>login_verify_success</hookname>
    			<phpcode><![CDATA[global $captcha;
    
    if ($vbulletin->options['login_captcha_enabled'] AND !empty($vbulletin->options['login_captcha_excluded']))
    {
    	$captchaexcluded = explode(',', $vbulletin->options['login_captcha_excluded']);
    }
    
    if ($vbulletin->options['login_captcha_enabled'] AND !empty($vbulletin->options['login_captcha_excludedid']))
    {
    	$captchaexcludedid = explode(',', $vbulletin->options['login_captcha_excludedid']);
    }
    else if ($vbulletin->options['login_captcha_enabled'])
    {
    	$captchaexcludedid = array();
    }
    
    if ($vbulletin->options['login_captcha_enabled'] AND $return_value AND $_POST['captcha'] AND $vbulletin->options['regimagetype'] AND !is_member_of($vbulletin->userinfo, $captchaexcluded) AND !in_array($vbulletin->userinfo['userid'], $captchaexcludedid))
    {
    	$vbulletin->input->clean_array_gpc('p', array(
    		'imagestamp'    => TYPE_STR,
    		'imagehash'     => TYPE_STR
    	));
    
    	require_once(DIR . '/includes/functions_regimage.php');
    
    	if (!verify_regimage_hash($vbulletin->GPC['imagehash'], $vbulletin->GPC['imagestamp']))
    	{
    	  	$captcha = 'bad';
    		$return_value = false;
    	}
    	else
    	{
    		$captcha = 'good';
    	}
    }
    else if ($vbulletin->options['login_captcha_enabled'] AND $return_value AND !$_POST['captcha'] AND $vbulletin->options['regimagetype'] AND !is_member_of($vbulletin->userinfo, $captchaexcluded) AND !in_array($vbulletin->userinfo['userid'], $captchaexcludedid))
    {
    	vbsetcookie('userid', '', true, true, true);
    	vbsetcookie('password', '', true, true, true);
    	$captcha = 'verify';
    	$return_value = false;
    }
    else
    {
    	$captcha = 'good';
    }]]></phpcode>
    		</plugin>
    	</plugins>
    	<phrases>
    		<phrasetype name="GLOBAL" fieldname="global">
    			<phrase name="login_captcha_title" date="" username="" version=""><![CDATA[Verify Login]]></phrase>
    		</phrasetype>
    		<phrasetype name="vBulletin Settings" fieldname="vbsettings">
    			<phrase name="setting_login_captcha_excludedid_desc" date="" username="" version=""><![CDATA[Enter the user id's you want exempted from the check (separate by a comma).]]></phrase>
    			<phrase name="setting_login_captcha_excludedid_title" date="" username="" version=""><![CDATA[Excluded Users?]]></phrase>
    			<phrase name="setting_login_captcha_excluded_desc" date="" username="" version=""><![CDATA[Enter the usergroup id's you want exempted from the check (separate by a comma).]]></phrase>
    			<phrase name="setting_login_captcha_excluded_title" date="" username="" version=""><![CDATA[Excluded Usergroups?]]></phrase>
    			<phrase name="setting_login_captcha_enabled_desc" date="" username="" version=""><![CDATA[Set this to yes to enable Captcha On Login.]]></phrase>
    			<phrase name="setting_login_captcha_enabled_title" date="" username="" version=""><![CDATA[Enabled?]]></phrase>
    			<phrase name="settinggroup_login_captcha" date="" username="" version=""><![CDATA[Captcha On Login]]></phrase>
    		</phrasetype>
    	</phrases>
    	<options>
    		<settinggroup name="login_captcha" displayorder="1000">
    			<setting varname="login_captcha_enabled" displayorder="10">
    				<datatype>boolean</datatype>
    				<optioncode>yesno</optioncode>
    				<defaultvalue>1</defaultvalue>
    			</setting>
    			<setting varname="login_captcha_excluded" displayorder="20">
    				<datatype>free</datatype>
    			</setting>
    			<setting varname="login_captcha_excludedid" displayorder="30">
    				<datatype>free</datatype>
    			</setting>
    		</settinggroup>
    	</options>
    </product>
  • 01-02-2013, 21:23:39
    #13
    caqlayan adlı üyeden alıntı: mesajı görüntüle
    verdiğim linkteki xml dosyası bu değil
    orjinal dosya:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    
    <product productid="login_captcha" active="1">
    	<title>Captcha On Login</title>
    	<description>This mod requires users to verify themselves using a Captcha image when logging in.</description>
    	<version>1.1</version>
    	<url><![CDATA[http://www.vbulletin.org/forum/misc.php?do=producthelp&pid=login_captcha]]></url>
    	<versioncheckurl><![CDATA[http://www.vbulletin.org/forum/misc.php?do=productcheck&pid=login_captcha]]></versioncheckurl>
    	<dependencies>
    	</dependencies>
    	<codes>
    	</codes>
    	<templates>
    		<template name="login_captcha" templatetype="template" date="0" username="" version=""><![CDATA[$stylevar[htmldoctype]
    <html dir="$stylevar[textdirection]" lang="$stylevar[languagecode]">
    <head>
    $headinclude
    <title>$vbphrase[login_captcha_title] - $vboptions[bbtitle]</title>
    </head>
    <body>
    $header
    $navbar
    
    <form action="login.php" name="login_captcha" method="post">
    <input type="hidden" name="do" value="login" />
    <input type="hidden" name="captcha" value="1" />
    <input type="hidden" name="vb_login_username" value="{$vbulletin->GPC['vb_login_username']}" />
    <input type="hidden" name="vb_login_password" value="{$vbulletin->GPC['vb_login_password']}" />
    <input type="hidden" name="vb_login_md5password" value="{$vbulletin->GPC['vb_login_md5password']}" />
    <input type="hidden" name="vb_login_md5password_utf" value="{$vbulletin->GPC['vb_login_md5password_utf']}" />
    <input type="hidden" name="postvars" value="{$vbulletin->GPC['postvars']}" />
    <input type="hidden" name="cookieuser" value="{$vbulletin->GPC['cookieuser']}" />
    <input type="hidden" name="logintype" value="{$vbulletin->GPC['logintype']}" />
    <input type="hidden" name="cssprefs" value="{$vbulletin->GPC['cssprefs']}" />
    $additionalfields
    
    <table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center">
    	<tr>
    		<td class="tcat">$vbphrase[login_captcha_title]</td>
    	</tr>
    	<tr>
    		<td class="panelsurround" align="center">
    			<div class="panel">
    				<div style="width:$stylevar[formwidth]" align="$stylevar[left]">
    				$imagereg
    				</div>
    			</div>
    
    			<div style="margin-top:$stylevar[cellpadding]px">
    				<input type="submit" class="button" value="$vbphrase[submit]" />
    			</div>
    		</td>
    	</tr>
    </table>
    </form>
    
    <script type="text/javascript" src="clientscript/vbulletin_ajax_imagereg.js?v=$vboptions[simpleversion]"></script>
    <script type="text/javascript">
    <!--
    vB_AJAX_ImageReg_Init();
    //-->
    </script>
    
    $footer
    </body>
    </html>]]></template>
    	</templates>
    	<plugins>
    		<plugin active="1" executionorder="5">
    			<title>Display Error</title>
    			<hookname>login_failure</hookname>
    			<phpcode><![CDATA[if ($captcha == 'verify')
    {
    	require_once(DIR . '/includes/functions_regimage.php');
    	$imagehash = fetch_regimage_hash();
    
    	$scriptpath = $vbulletin->input->clean($_POST['url'], TYPE_STR);
    	$session = $vbulletin->input->clean($_POST['s'], TYPE_STR);
    
    	if (!empty($scriptpath))
    	{
    		$additionalfields .= '<input type="hidden" name="url" value="' . $scriptpath . '" />';
    	}
    
    	if (!empty($session))
    	{
    		$additionalfields .= '<input type="hidden" name="s" value="' . $session . '" />';
    	}
    
    	$navbits = array($vbphrase['login_captcha_title']);
    	$navbits = construct_navbits($navbits);
    
    	eval('$navbar = "' . fetch_template('navbar') . '";');
    	eval('$imagereg = "' . fetch_template('imagereg') . '";');
    	eval('print_output("' . fetch_template('login_captcha') . '");');
    }
    else if ($captcha == 'bad')
    {
    	eval(standard_error(fetch_error('register_imagecheck')));
    }]]></phpcode>
    		</plugin>
    		<plugin active="1" executionorder="5">
    			<title>Ask For Captcha</title>
    			<hookname>login_verify_success</hookname>
    			<phpcode><![CDATA[global $captcha;
    
    if ($vbulletin->options['login_captcha_enabled'] AND !empty($vbulletin->options['login_captcha_excluded']))
    {
    	$captchaexcluded = explode(',', $vbulletin->options['login_captcha_excluded']);
    }
    
    if ($vbulletin->options['login_captcha_enabled'] AND !empty($vbulletin->options['login_captcha_excludedid']))
    {
    	$captchaexcludedid = explode(',', $vbulletin->options['login_captcha_excludedid']);
    }
    else if ($vbulletin->options['login_captcha_enabled'])
    {
    	$captchaexcludedid = array();
    }
    
    if ($vbulletin->options['login_captcha_enabled'] AND $return_value AND $_POST['captcha'] AND $vbulletin->options['regimagetype'] AND !is_member_of($vbulletin->userinfo, $captchaexcluded) AND !in_array($vbulletin->userinfo['userid'], $captchaexcludedid))
    {
    	$vbulletin->input->clean_array_gpc('p', array(
    		'imagestamp'    => TYPE_STR,
    		'imagehash'     => TYPE_STR
    	));
    
    	require_once(DIR . '/includes/functions_regimage.php');
    
    	if (!verify_regimage_hash($vbulletin->GPC['imagehash'], $vbulletin->GPC['imagestamp']))
    	{
    	  	$captcha = 'bad';
    		$return_value = false;
    	}
    	else
    	{
    		$captcha = 'good';
    	}
    }
    else if ($vbulletin->options['login_captcha_enabled'] AND $return_value AND !$_POST['captcha'] AND $vbulletin->options['regimagetype'] AND !is_member_of($vbulletin->userinfo, $captchaexcluded) AND !in_array($vbulletin->userinfo['userid'], $captchaexcludedid))
    {
    	vbsetcookie('userid', '', true, true, true);
    	vbsetcookie('password', '', true, true, true);
    	$captcha = 'verify';
    	$return_value = false;
    }
    else
    {
    	$captcha = 'good';
    }]]></phpcode>
    		</plugin>
    	</plugins>
    	<phrases>
    		<phrasetype name="GLOBAL" fieldname="global">
    			<phrase name="login_captcha_title" date="" username="" version=""><![CDATA[Verify Login]]></phrase>
    		</phrasetype>
    		<phrasetype name="vBulletin Settings" fieldname="vbsettings">
    			<phrase name="setting_login_captcha_excludedid_desc" date="" username="" version=""><![CDATA[Enter the user id's you want exempted from the check (separate by a comma).]]></phrase>
    			<phrase name="setting_login_captcha_excludedid_title" date="" username="" version=""><![CDATA[Excluded Users?]]></phrase>
    			<phrase name="setting_login_captcha_excluded_desc" date="" username="" version=""><![CDATA[Enter the usergroup id's you want exempted from the check (separate by a comma).]]></phrase>
    			<phrase name="setting_login_captcha_excluded_title" date="" username="" version=""><![CDATA[Excluded Usergroups?]]></phrase>
    			<phrase name="setting_login_captcha_enabled_desc" date="" username="" version=""><![CDATA[Set this to yes to enable Captcha On Login.]]></phrase>
    			<phrase name="setting_login_captcha_enabled_title" date="" username="" version=""><![CDATA[Enabled?]]></phrase>
    			<phrase name="settinggroup_login_captcha" date="" username="" version=""><![CDATA[Captcha On Login]]></phrase>
    		</phrasetype>
    	</phrases>
    	<options>
    		<settinggroup name="login_captcha" displayorder="1000">
    			<setting varname="login_captcha_enabled" displayorder="10">
    				<datatype>boolean</datatype>
    				<optioncode>yesno</optioncode>
    				<defaultvalue>1</defaultvalue>
    			</setting>
    			<setting varname="login_captcha_excluded" displayorder="20">
    				<datatype>free</datatype>
    			</setting>
    			<setting varname="login_captcha_excludedid" displayorder="30">
    				<datatype>free</datatype>
    			</setting>
    		</settinggroup>
    	</options>
    </product>
    Orijinal dosya hiç çalışmadı sürüm uymadı galiba. O 3.6 benimki 3.8
    Kullanıcı adı şifre yazdıktan sonra hata sayfası çıkıyor.[COLOR="Silver"]
  • 02-02-2013, 17:43:46
    #14
    Arkadaşlar yardımcı olacak kimse yok mu ?
  • 02-02-2013, 18:35:10
    #15
    BaNNeR adlı üyeden alıntı: mesajı görüntüle
    Arkadaşlar yardımcı olacak kimse yok mu ?
    Hocam vbulettin sayfaları bilsem yardımcı olacağımda
    login.php sayfasını pm ile bir yollar mısın yada buradan.
  • 02-02-2013, 19:53:03
    #16
    wdr.leo adlı üyeden alıntı: mesajı görüntüle
    Hocam vbulettin sayfaları bilsem yardımcı olacağımda
    login.php sayfasını pm ile bir yollar mısın yada buradan.
    login.php
    <?php
    /*======================================================================*\
    || #################################################################### ||
    || # vBulletin 3.8.4 Patch Level 2
    || # ---------------------------------------------------------------- # ||
    || # Copyright ©2000-2009 Jelsoft Enterprises Ltd. All Rights Reserved. ||
    || # This file may not be redistributed in whole or significant part. # ||
    || # ---------------- VBULLETIN IS NOT FREE SOFTWARE ---------------- # ||
    || # http://www.vbulletin.com | http://www.vbulletin.com/license.html # ||
    || #################################################################### ||
    \*======================================================================*/
    
    // ####################### SET PHP ENVIRONMENT ###########################
    error_reporting(E_ALL & ~E_NOTICE & ~8192);
    
    // #################### DEFINE IMPORTANT CONSTANTS #######################
    define('THIS_SCRIPT', 'login');
    define('CSRF_PROTECTION', true);
    define('CSRF_SKIP_LIST', 'login');
    
    // ################### PRE-CACHE TEMPLATES AND DATA ######################
    // get special phrase groups
    $phrasegroups = array();
    
    // get special data templates from the datastore
    $specialtemplates = array();
    
    // pre-cache templates used by all actions
    $globaltemplates = array();
    
    // pre-cache templates used by specific actions
    $actiontemplates = array(
    	'lostpw' => array(
    		'lostpw',
    		'humanverify'
    	)
    );
    
    // ######################### REQUIRE BACK-END ############################
    require_once('./global.php');
    require_once(DIR . '/includes/functions_login.php');
    
    // #######################################################################
    // ######################## START MAIN SCRIPT ############################
    // #######################################################################
    
    $vbulletin->input->clean_gpc('r', 'a', TYPE_STR);
    
    if (empty($_REQUEST['do']) AND empty($vbulletin->GPC['a']))
    {
    	exec_header_redirect($vbulletin->options['forumhome'] . '.php');
    }
    
    // ############################### start logout ###############################
    if ($_REQUEST['do'] == 'logout')
    {
    	define('NOPMPOPUP', true);
    
    	$vbulletin->input->clean_gpc('r', 'logouthash', TYPE_STR);
    
    	if ($vbulletin->userinfo['userid'] != 0 AND !verify_security_token($vbulletin->GPC['logouthash'], $vbulletin->userinfo['securitytoken_raw']))
    	{
    		eval(standard_error(fetch_error('logout_error', $vbulletin->session->vars['sessionurl'], $vbulletin->userinfo['securitytoken'])));
    	}
    
    	process_logout();
    
    	$vbulletin->url = fetch_replaced_session_url($vbulletin->url);
    	if (strpos($vbulletin->url, 'do=logout') !== false)
    	{
    		$vbulletin->url = $vbulletin->options['forumhome'] . '.php' . $vbulletin->session->vars['sessionurl_q'];
    	}
    	$show['member'] = false;
    	eval(standard_error(fetch_error('cookieclear', create_full_url($vbulletin->url), $vbulletin->options['forumhome'], $vbulletin->session->vars['sessionurl_q']), '', false));
    
    }
    
    // ############################### start do login ###############################
    // this was a _REQUEST action but where do we all login via request?
    if ($_POST['do'] == 'login')
    {
    	$vbulletin->input->clean_array_gpc('p', array(
    		'vb_login_username'        => TYPE_STR,
    		'vb_login_password'        => TYPE_STR,
    		'vb_login_md5password'     => TYPE_STR,
    		'vb_login_md5password_utf' => TYPE_STR,
    		'postvars'                 => TYPE_BINARY,
    		'cookieuser'               => TYPE_BOOL,
    		'logintype'                => TYPE_STR,
    		'cssprefs'                 => TYPE_STR,
    	));
    
    	// can the user login?
    	$strikes = verify_strike_status($vbulletin->GPC['vb_login_username']);
    
    	if ($vbulletin->GPC['vb_login_username'] == '')
    	{
    		eval(standard_error(fetch_error('badlogin', $vbulletin->options['bburl'], $vbulletin->session->vars['sessionurl'], $strikes)));
    	}
    
    	// make sure our user info stays as whoever we were (for example, we might be logged in via cookies already)
    	$original_userinfo = $vbulletin->userinfo;
    
    	if (!verify_authentication($vbulletin->GPC['vb_login_username'], $vbulletin->GPC['vb_login_password'], $vbulletin->GPC['vb_login_md5password'], $vbulletin->GPC['vb_login_md5password_utf'], $vbulletin->GPC['cookieuser'], true))
    	{
    		($hook = vBulletinHook::fetch_hook('login_failure')) ? eval($hook) : false;
    
    		// check password
    		exec_strike_user($vbulletin->userinfo['username']);
    
    		if ($vbulletin->GPC['logintype'] === 'cplogin' OR $vbulletin->GPC['logintype'] === 'modcplogin')
    		{
    			// log this error if attempting to access the control panel
    			require_once(DIR . '/includes/functions_log_error.php');
    			log_vbulletin_error($vbulletin->GPC['vb_login_username'], 'security');
    		}
    		$vbulletin->userinfo = $original_userinfo;
    
    		if ($vbulletin->options['usestrikesystem'])
    		{
    			eval(standard_error(fetch_error('badlogin_strikes', $vbulletin->options['bburl'], $vbulletin->session->vars['sessionurl'], $strikes)));
    		}
    		else
    		{
    			eval(standard_error(fetch_error('badlogin', $vbulletin->options['bburl'], $vbulletin->session->vars['sessionurl'])));
    		}
    	}
    
    	exec_unstrike_user($vbulletin->GPC['vb_login_username']);
    
    	// create new session
    	process_new_login($vbulletin->GPC['logintype'], $vbulletin->GPC['cookieuser'], $vbulletin->GPC['cssprefs']);
    
    	// do redirect
    	do_login_redirect();
    
    }
    else if ($_GET['do'] == 'login')
    {
    	// add consistency with previous behavior
    	exec_header_redirect($vbulletin->options['forumhome'] . '.php');
    }
    
    // ############################### start lost password ###############################
    if ($_REQUEST['do'] == 'lostpw')
    {
    	$vbulletin->input->clean_gpc('r', 'email', TYPE_NOHTML);
    	$email = $vbulletin->GPC['email'];
    
    	if ($permissions['forumpermissions'] & $vbulletin->bf_ugp_forumpermissions['canview'])
    	{
    		$navbits = construct_navbits(array('' => $vbphrase['lost_password_recovery_form']));
    		eval('$navbar = "' . fetch_template('navbar') . '";');
    	}
    	else
    	{
    		$navbar = '';
    	}
    
    	// human verification
    	if (fetch_require_hvcheck('lostpw'))
    	{
    		require_once(DIR . '/includes/class_humanverify.php');
    		$verification =& vB_HumanVerify::fetch_library($vbulletin);
    		$human_verify = $verification->output_token();
    	}
    	else
    	{
    		$human_verify = '';
    	}
    
    	$url =& $vbulletin->url;
    	eval('print_output("' . fetch_template('lostpw') . '");');
    }
    
    // ############################### start email password ###############################
    if ($_POST['do'] == 'emailpassword')
    {
    
    	$vbulletin->input->clean_array_gpc('p', array(
    		'email' => TYPE_STR,
    		'userid' => TYPE_UINT,
    		'humanverify'  => TYPE_ARRAY,
    	));
    
    	if ($vbulletin->GPC['email'] == '')
    	{
    		eval(standard_error(fetch_error('invalidemail', $vbulletin->options['contactuslink'])));
    	}
    
    	if (fetch_require_hvcheck('lostpw'))
    	{
    		require_once(DIR . '/includes/class_humanverify.php');
    		$verify =& vB_HumanVerify::fetch_library($vbulletin);
    		if (!$verify->verify_token($vbulletin->GPC['humanverify']))
    		{
    	  		standard_error(fetch_error($verify->fetch_error()));
    	  	}
    	}
    
    	require_once(DIR . '/includes/functions_user.php');
    
    	$users = $db->query_read_slave("
    		SELECT userid, username, email, languageid
    		FROM " . TABLE_PREFIX . "user
    		WHERE email = '" . $db->escape_string($vbulletin->GPC['email']) . "'
    	");
    	if ($db->num_rows($users))
    	{
    		while ($user = $db->fetch_array($users))
    		{
    			if ($vbulletin->GPC['userid'] AND $vbulletin->GPC['userid'] != $user['userid'])
    			{
    				continue;
    			}
    			$user['username'] = unhtmlspecialchars($user['username']);
    
    			$user['activationid'] = build_user_activation_id($user['userid'], 2, 1);
    
    			eval(fetch_email_phrases('lostpw', $user['languageid']));
    			vbmail($user['email'], $subject, $message, true);
    		}
    
    		$vbulletin->url = str_replace('"', '', $vbulletin->url);
    		eval(print_standard_redirect('redirect_lostpw', true, true));
    	}
    	else
    	{
    		eval(standard_error(fetch_error('invalidemail', $vbulletin->options['contactuslink'])));
    	}
    }
    
    // ############################### start reset password ###############################
    if ($vbulletin->GPC['a'] == 'pwd' OR $_REQUEST['do'] == 'resetpassword')
    {
    
    	$vbulletin->input->clean_array_gpc('r', array(
    		'userid'       => TYPE_UINT,
    		'u'            => TYPE_UINT,
    		'activationid' => TYPE_STR,
    		'i'            => TYPE_STR
    	));
    
    	if (!$vbulletin->GPC['userid'])
    	{
    		$vbulletin->GPC['userid'] = $vbulletin->GPC['u'];
    	}
    
    	if (!$vbulletin->GPC['activationid'])
    	{
    		$vbulletin->GPC['activationid'] = $vbulletin->GPC['i'];
    	}
    
    	$userinfo = verify_id('user', $vbulletin->GPC['userid'], 1, 1);
    
    	$user = $db->query_first("
    		SELECT activationid, dateline
    		FROM " . TABLE_PREFIX . "useractivation
    		WHERE type = 1
    			AND userid = $userinfo[userid]
    	");
    
    	if (!$user)
    	{
    		// no activation record, probably got back here after a successful request, back to home
    		exec_header_redirect($vbulletin->options['forumhome'] . '.php');
    	}
    
    	if ($user['dateline'] < (TIMENOW - 24 * 60 * 60))
    	{  // is it older than 24 hours?
    		eval(standard_error(fetch_error('resetexpired', $vbulletin->session->vars['sessionurl'])));
    	}
    
    	if ($user['activationid'] != $vbulletin->GPC['activationid'])
    	{ //wrong act id
    		eval(standard_error(fetch_error('resetbadid', $vbulletin->session->vars['sessionurl'])));
    	}
    
    	// delete old activation id
    	$db->query_write("DELETE FROM " . TABLE_PREFIX . "useractivation WHERE userid = $userinfo[userid] AND type = 1");
    
    	$newpassword = fetch_random_password(8);
    
    	// init user data manager
    	$userdata =& datamanager_init('User', $vbulletin, ERRTYPE_STANDARD);
    	$userdata->set_existing($userinfo);
    	$userdata->set('password', $newpassword);
    	$userdata->save();
    
    	($hook = vBulletinHook::fetch_hook('reset_password')) ? eval($hook) : false;
    
    	eval(fetch_email_phrases('resetpw', $userinfo['languageid']));
    	vbmail($userinfo['email'], $subject, $message, true);
    
    	eval(standard_error(fetch_error('resetpw', $vbulletin->session->vars['sessionurl'])));
    
    }
    
    /*======================================================================*\
    || ####################################################################
    || # CVS: $RCSfile$ - $Revision: 31381 $
    || ####################################################################
    \*======================================================================*/
    ?>
    Hocam gel şunu beraber bir el atalım vBulletin bilmesende php bilen birisi bence çok rahat yapabilir

    Ufaktan ufaktan yapmaya çalışıyorum.
    Öncelikle ip adresiyle önce giriş yapıp yapmadığını sorguluyorum daha önce giriş yaptıysa foruma giriş başarıyla sağlanır giriş yapmadıysa www.google.com.tr yönlensin diyorum orayı tabi sonra düzelteceğiz ama if sorgusunda koşulu yanlış yazıyorum

    // do redirect  / yönlendirme yapmak
    	do_login_redirect();
    
    }
    else if ($_GET['do'] == 'login')
    {
    
    	$sor = mysql_query("select * from user order by ipaddress");
    
    while ($listele = mysql_fetch_array($sor)) {
    
    $ipaddress                  = $listele['ipaddress'];
    $username = $listele['username'];
    }
    	
    	$ip=$_SERVeR['REMOTE_ADDR'];
    	if ( $ip == $ipaddress  ) /// bu benim koyduğum
    	{
    	
    	// add consistency with previous behavior
    	// önceki davranışı ile tutarlılık eklemek
    	exec_header_redirect($vbulletin->options['forumhome'] . '.php');
    	}
    	else 
    	{
    	header("Location: http://www.google.com.tr/");
    	}
    }
    
    // ############################### start lost password ###############################
    if ( $ip == $ipaddress ) buraya ne yazmalıyım ?


    Sırayla yapalım ben giriş yapmaya çalışan kullanıcının ip nasıl alırım ve veri tabanında user isimli tabloda ve ipaddress isimli sütündakine eşit olup olmadığını hangi php koduyla öğrenebilirim.

    Şifre doğru olursa bende buraya bir if ekledim birde ip adresi aynı olup olmadığını sorgulamak istiyorum ama sorgulayamıyorum.
  • 05-02-2013, 20:44:05
    #17
    Arkadaşlar bir el atsanız :/
  • 05-02-2013, 20:49:25
    #18
    BaNNeR
    senin dedigin yöntem botları tam anlamıyla engelleyemez.
    ya adam proxy kullanır giriş yaptırır
    captcha zaten sıkıntı degil çözülüyor degişken olsa bile.