public function onInit($id = 'dynamic_geetest_1') { $document = JFactory::getDocument(); $app = JFactory::getApplication(); JHtml::_('jquery.framework'); //检查是否存在公钥 $pubkey = $this->params->get('public_key', ''); if ($pubkey == null || $pubkey == '') { throw new Exception(JText::_('PLG_GEETEST_ERROR_NO_PUBLIC_KEY')); } //常量公钥 if (!defined('CAPTCHA_ID')) { define('CAPTCHA_ID', $pubkey); } //语言 $lang = $this->params->get('lang', 'zh-cn'); //展现形式 $product = $this->params->get('product', 'float'); //定义一些JS $GtSdk = new GeetestLib(); $return = $GtSdk->register(); if ($return) { $_SESSION['gtserver'] = 1; $result = array('success' => 1, 'gt' => CAPTCHA_ID, 'challenge' => $GtSdk->challenge); } else { $_SESSION['gtserver'] = 0; $rnd1 = md5(rand(0, 100)); $rnd2 = md5(rand(0, 100)); $challenge = $rnd1 . substr($rnd2, 0, 2); $result = array('success' => 0, 'gt' => CAPTCHA_ID, 'challenge' => $challenge); $_SESSION['challenge'] = $result['challenge']; } $js = 'jQuery(document).ready(function(){if(window.hasOwnProperty("Geetest")){'; $js .= ' var ' . $id . '_Geetest=new window.Geetest({ gt : "' . $result['gt'] . '", challenge : "' . $result['challenge'] . '", product : "' . $product . '", offline : !' . $result['success'] . ', lang : "' . $lang . '", }).appendTo("#' . $id . '"); '; //是否阻止表单提交 $holdform = $this->params->get('holdform', 0); if ($holdform) { $js .= ' var form_ele=jQuery("#' . $id . '").parentsUntil("form").parent(); var form_submit=function(){return false;}; ' . $id . '_Geetest.onReady(function(){ jQuery("body").on("submit", form_submit, form_submit); }); ' . $id . '_Geetest.onSuccess(function(){ jQuery("body").off("submit", form_submit, form_submit); }); '; } $js .= '}});'; $document->addScriptDeclaration($js); return true; }
public function onInit($id = 'dynamic_geetest_1') { $document = JFactory::getDocument(); $app = JFactory::getApplication(); $lang = JFactory::getLanguage(); JHtml::_('jquery.framework'); //检查是否存在公钥 $pubkey = $this->params->get('public_key', ''); if ($pubkey == null || $pubkey == '') { throw new Exception(JText::_('PLG_GEETEST_ERROR_NO_PUBLIC_KEY')); } //常量公钥 if (!defined('CAPTCHA_ID')) { define('CAPTCHA_ID', $pubkey); } //检测语言 if ($lang->getTag() == 'zh-CN') { $glang = 'zh-cn'; } else { $glang = 'en'; } //定义一些JS $GtSdk = new GeetestLib(); $return = $GtSdk->register(); if ($return) { $_SESSION['gtserver'] = 1; $result = array('success' => 1, 'gt' => CAPTCHA_ID, 'challenge' => $GtSdk->challenge); } else { $_SESSION['gtserver'] = 0; $rnd1 = md5(rand(0, 100)); $rnd2 = md5(rand(0, 100)); $challenge = $rnd1 . substr($rnd2, 0, 2); $result = array('success' => 0, 'gt' => CAPTCHA_ID, 'challenge' => $challenge); $_SESSION['challenge'] = $result['challenge']; } //$file='http://static.geetest.com/static/js/geetest.0.0.0.js'; //JHtml::_('script', $file, true, true); $document->addScriptDeclaration(' jQuery(document).ready(function(){ if(window.hasOwnProperty("Geetest")){ new window.Geetest({ gt : "' . $result['gt'] . '", challenge : "' . $result['challenge'] . '", product : "float", //下一版本增加可选 offline : !' . $result['success'] . ', lang : "' . $glang . '" //下一版本增加可选 }).appendTo("#' . $id . '"); } }); '); return true; }
public function geetestAction() { require EXTENSION_DIR . 'Geetestlib.php'; $GtSdk = new GeetestLib(); $return = $GtSdk->register(); if ($return) { $this->session->set_userdata('gtserver', 1); $result = array('success' => 1, 'gt' => SYS_GEE_CAPTCHA_ID, 'challenge' => $GtSdk->challenge); echo json_encode($result); } else { $this->session->set_userdata('gtserver', 0); $rnd1 = md5(rand(0, 100)); $rnd2 = md5(rand(0, 100)); $challenge = $rnd1 . substr($rnd2, 0, 2); $result = array('success' => 0, 'gt' => CAPTCHA_ID, 'challenge' => $challenge); $this->session->set_userdata('challenge', $result['challenge']); echo json_encode($result); } exit; }
function s_check_loginshow() { $s_check_loginoption = option::xget("s_check", "login_check"); if ($s_check_loginoption == 1) { echo "<div class=\"box\">"; $geetest = new GeetestLib(); $geetest->set_captchaid("a757a567a6c660610521e79a429d7e4c"); if ($geetest->register()) { echo $geetest->get_widget("embed"); } echo "</div><br/>"; } elseif ($s_check_loginoption == 2) { echo "<div class=\"box\">"; $geetest = new GeetestLib(); $geetest->set_captchaid("a757a567a6c660610521e79a429d7e4c"); if ($geetest->register()) { echo $geetest->get_widget("float"); } echo "</div><br/>"; } }
<?php /** * 使用Get的方式返回:challenge和capthca_id 此方式以实现前后端完全分离的开发模式 专门实现failback * @author Tanxu */ error_reporting(0); require_once dirname(dirname(__FILE__)) . '/lib/class.geetestlib.php'; $GtSdk = new GeetestLib(); session_start(); $return = $GtSdk->register(); if ($return) { $_SESSION['gtserver'] = 1; $result = array('success' => 1, 'gt' => $GtSdk->captcha_id, 'challenge' => $GtSdk->challenge); echo json_encode($result); } else { $_SESSION['gtserver'] = 0; $rnd1 = md5(rand(0, 100)); $rnd2 = md5(rand(0, 100)); $challenge = $rnd1 . substr($rnd2, 0, 2); $result = array('success' => 0, 'gt' => $GtSdk->captcha_id, 'challenge' => $challenge); $_SESSION['challenge'] = $result['challenge']; echo json_encode($result); }
<?php /** * 使用Get的方式返回:challenge和capthca_id 此方式以实现前后端完全分离的开发模式 专门实现failback * @author Tanxu */ error_reporting(0); require_once dirname(dirname(__FILE__)) . '/lib/class.geetestlib.php'; $GtSdk = new GeetestLib(); session_start(); $_SESSION['gtsdk'] = $GtSdk; if ($GtSdk->register()) { $_SESSION['gtserver'] = 1; $result = array('success' => 1, 'gt' => CAPTCHA_ID, 'challenge' => $GtSdk->challenge); echo json_encode($result); } else { $_SESSION['gtserver'] = 0; $result = array('success' => 0); echo json_encode($result); }
/** * 验证码验证 * @param Request $request */ public function captcha(Request $request) { $GtSdk = new \GeetestLib(); session_start(); $return = $GtSdk->register(); if ($return) { $_SESSION['gtserver'] = 1; $result = array('success' => 1, 'gt' => CAPTCHA_ID, 'challenge' => $GtSdk->challenge); echo json_encode($result); } else { $_SESSION['gtserver'] = 0; $rnd1 = md5(rand(0, 100)); $rnd2 = md5(rand(0, 100)); $challenge = $rnd1 . substr($rnd2, 0, 2); $result = array('success' => 0, 'gt' => CAPTCHA_ID, 'challenge' => $challenge); $_SESSION['challenge'] = $result['challenge']; echo json_encode($result); } }