public function rules() { //验证提交数据 $validate_error = array(); if (empty($_POST['email'])) { $validate_error['email'] = '邮箱不能为空'; return $validate_error; } if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { $validate_error['email'] = '邮箱格式不正确'; return $validate_error; } if (empty($_POST['password'])) { $validate_error['password'] = '******'; return $validate_error; } if (strlen($_POST['password']) < 6) { $validate_error['password'] = '******'; return $validate_error; } if ($_POST['password'] != addslashes($_POST['password'])) { $validate_error['password'] = '******'; return $validate_error; } if (empty($_POST['password_repeat'])) { $validate_error['password_repeat'] = '请确认密码'; return $validate_error; } if ($_POST['password'] !== $_POST['password_repeat']) { $validate_error['password_repeat'] = '两次输入的密码不一致'; return $validate_error; } //极验验证码判断 require_once GEETEST . 'lib/class.geetestlib.php'; session_start(); $GtSdk = new GeetestLib(); if ($_SESSION['gtserver'] == 1) { $result = $GtSdk->validate($_POST['geetest_challenge'], $_POST['geetest_validate'], $_POST['geetest_seccode']); if ($result == TRUE) { //验证通过 } else { $validate_error['captcha'] = '滑动验证失败, 请重新验证'; return $validate_error; } } else { if ($GtSdk->get_answer($_POST['geetest_validate'])) { //验证通过 } else { $validate_error['captcha'] = '滑动验证失败, 请重新验证'; return $validate_error; } } if (!$_POST['agreebbrule']) { $validate_error['agreebbrule'] = '您必须同意服务条款后才能注册'; return $validate_error; } //**end return true; }
public function check_user() { $value = $_POST; $value = $this->security->xss_clean($value); $GtSdk = new GeetestLib(); $result = $GtSdk->validate($value['geetest_challenge'], $value['geetest_validate'], $value['geetest_seccode']); if ($result == TRUE) { $this->session->set_userdata('geetest_seccode', $value['geetest_seccode']); if (preg_match("/^1[34578]\\d{9}\$/", $value['username'])) { # 判断是否是电话,若是则按电话号码查询 $this->phone = $value['username']; $row = $this->user_model->check_phone_is($this->phone); if ($row != false) { # code... $this->token = rand(1000, 9999); $data = array('success' => 1, 'token' => $this->token, 'phone' => $row['phone'], 'email' => $row['email']); $this->session->set_userdata('token', $this->token); $this->session->set_userdata('phone', $row['phone']); $this->session->set_userdata('email', $row['email']); echo $this->token; } else { echo "-1"; } // echo json_encode($data); } else { if (filter_var($value['username'], FILTER_VALIDATE_EMAIL)) { #判断是否是邮箱,若是则按邮箱查询 $this->email = $value['username']; $row = $this->user_model->check_email_is($this->email); if ($row != false) { # code... $this->token = rand(1000, 9999); $data = array('success' => 1, 'token' => $this->token, 'phone' => $row['phone'], 'email' => $row['email']); $this->session->set_userdata('uid', $row['uid']); $this->session->set_userdata('token', $this->token); $this->session->set_userdata('phone', $row['phone']); $this->session->set_userdata('email', $row['email']); echo $this->token; } else { echo "-1"; } // echo json_encode($data); } else { #传过来的既不是邮箱又不是电话,返回错误 $data = array("success" => -1); // echo json_encode($data); echo "-1"; } } } else { #验证码错误 $data = array("success" => -10); // echo json_encode($data); echo "-10"; exit; } }
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_logincheck() { if (option::xget("s_check", "login_check") != 0) { $geetest = new GeetestLib(); $geetest->set_privatekey("2d5be5ba4207f11d33f7ae5e14a1c33e"); if (isset($_POST['geetest_challenge']) && isset($_POST['geetest_validate']) && isset($_POST['geetest_seccode'])) { $result = $geetest->validate($_POST['geetest_challenge'], $_POST['geetest_validate'], $_POST['geetest_seccode']); } if ($result == TRUE) { } else { if ($result == FALSE) { ReDirect("index.php?mod=login&error_msg=" . urlencode('登陆失败,请拖动滑块完成验证')); die; } else { ReDirect("index.php?mod=login&error_msg=" . urlencode('登陆失败,请拖动滑块完成验证')); die; } } } }
public function gt2(Request $request) { session_start(); $GtSdk = new GeetestLib(CAPTCHA_ID, PRIVATE_KEY); $user_id = $_SESSION['user_id']; if ($_SESSION['gtserver'] == 1) { $result = $GtSdk->success_validate($request->geetest_challenge, $request->geetest_validate, $request->geetest_seccode, $user_id); if ($result) { echo 'Yes!'; } else { echo 'No'; } } else { if ($GtSdk->fail_validate($_POST['geetest_challenge'], $_POST['geetest_validate'], $_POST['geetest_seccode'])) { echo "yes"; } else { echo "no"; } } }
<?php /** * 本文件示例只是简单的输出 Yes or No */ // error_reporting(0); require_once dirname(dirname(__FILE__)) . '/lib/class.geetestlib.php'; require_once dirname(dirname(__FILE__)) . '/config/config.php'; session_start(); $GtSdk = new GeetestLib(CAPTCHA_ID, PRIVATE_KEY); $user_id = $_SESSION['user_id']; if ($_SESSION['gtserver'] == 1) { $result = $GtSdk->sucess_validate($_POST['geetest_challenge'], $_POST['geetest_validate'], $_POST['geetest_seccode'], $user_id); if ($result) { echo 'Yes!'; } else { echo 'No'; } } else { if ($GtSdk->fail_validate($_POST['geetest_challenge'], $_POST['geetest_validate'], $_POST['geetest_seccode'])) { echo "yes"; } else { echo "no"; } }
<?php /** * 本文件示例只是简单的输出 Yes or No */ // error_reporting(0); require_once dirname(dirname(__FILE__)) . '/lib/class.geetestlib.php'; session_start(); $GtSdk = new GeetestLib(); if ($_SESSION['gtserver'] == 1) { $result = $GtSdk->validate($_POST['geetest_challenge'], $_POST['geetest_validate'], $_POST['geetest_seccode']); if ($result == TRUE) { echo 'Yes!'; } else { if ($result == FALSE) { echo 'No'; } else { echo 'FORBIDDEN'; } } } else { if ($GtSdk->get_answer($_POST['geetest_validate'])) { echo "yes"; } else { echo "no"; } }
<?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); }
/** * 验证验证码 */ protected function checkCode($value) { if (isset($_POST['geetest_challenge']) && isset($_POST['geetest_validate'])) { require EXTENSION_DIR . 'Geetestlib.php'; $GtSdk = new GeetestLib(); if ($this->session->userdata('gtserver') == 1) { $result = $GtSdk->validate($_POST['geetest_challenge'], $_POST['geetest_validate'], $_POST['geetest_seccode']); if ($result == TRUE) { return TURE; } else { if ($result == FALSE) { return FALSE; } else { return FALSE; } } } else { if ($GtSdk->get_answer($_POST['geetest_validate'])) { return TURE; } else { return FALSE; } } } else { $code = $this->session->get('captcha'); $value = strtolower($value); $this->session->unset_userdata('captcha'); return $code == $value ? true : false; } }
public static function filter($comment, $obj) { $userObj = $obj->widget('Widget_User'); if ($userObj->hasLogin() && $userObj->pass('administrator', true)) { return $comment; } $privatekey = Typecho_Widget::widget('Widget_Options')->plugin('GeeTest')->privatekey; $geetest = new GeetestLib($privatekey); $validate_response = $geetest->geetest_validate(@$_POST['geetest_challenge'], @$_POST['geetest_validate'], @$_POST['geetest_seccode']); if ($validate_response) { return $comment; } throw new Typecho_Widget_Exception(_t('验证码不正确哦!')); }
<?php /** * 使用Get的方式返回:challenge和capthca_id 此方式以实现前后端完全分离的开发模式 专门实现failback * @author Tanxu */ //error_reporting(0); require_once dirname(dirname(__FILE__)) . '/lib/class.geetestlib.php'; require_once dirname(dirname(__FILE__)) . '/config/config.php'; $GtSdk = new GeetestLib(CAPTCHA_ID, PRIVATE_KEY); session_start(); $user_id = "test"; $status = $GtSdk->pre_process($user_id); $_SESSION['gtserver'] = $status; $_SESSION['user_id'] = $user_id; echo $GtSdk->get_response_str();
public function onCheckAnswer($code = null) { //检查是否存在私钥 $privatekey = $this->params->get('private_key', ''); if ($privatekey == null || $privatekey == '') { $this->_subject->setError(JText::_('PLG_GEETEST_ERROR_NO_PRIVATE_KEY')); return false; } //常量私钥 if (!defined('PRIVATE_KEY')) { define('PRIVATE_KEY', $privatekey); } $input = JFactory::getApplication()->input; $geetest_challenge = $input->get('geetest_challenge', '', 'string'); $geetest_validate = $input->get('geetest_validate', '', 'string'); $geetest_seccode = $input->get('geetest_seccode', '', 'string'); $GtSdk = new GeetestLib(); if (isset($_SESSION['gtserver']) && $_SESSION['gtserver'] == 1) { $result = $GtSdk->validate($geetest_challenge, $geetest_validate, $geetest_seccode); if ($result == TRUE) { $return = true; } else { if ($result == FALSE) { $this->_subject->setError(JText::_('PLG_GEETEST_ERROR_INVALID')); $return = false; } else { $this->_subject->setError(JText::_('PLG_GEETEST_ERROR_UNKNOWN')); $return = false; } } } else { if ($GtSdk->get_answer($geetest_seccode)) { $return = true; } else { $this->_subject->setError(JText::_('PLG_GEETEST_ERROR_INVALID')); $return = false; } } //var_dump($return);exit(); return $return; }
<?php /** * 本文件示例只是简单的输出 Yes or No */ error_reporting(0); require_once dirname(dirname(__FILE__)) . '/lib/class.geetestlib.php'; session_start(); $GtSdk = new GeetestLib(); if ($_SESSION['gtserver'] == 1) { $result = $GtSdk->validate($_POST['geetest_challenge'], $_POST['geetest_validate'], $_POST['geetest_seccode']); if ($result == TRUE) { echo 'Yes!'; } else { if ($result == FALSE) { echo 'No'; } else { echo 'FORBIDDEN'; } } } else { $validate = $_POST['geetest_validate']; if ($validate) { $value = explode("_", $validate); $challenge = $_SESSION['challenge']; $ans = $GtSdk->decode_response($challenge, $value['0']); $bg_idx = $GtSdk->decode_response($challenge, $value['1']); $grp_idx = $GtSdk->decode_response($challenge, $value['2']); $x_pos = $GtSdk->get_failback_pic_ans($bg_idx, $grp_idx); if (abs($ans - $x_pos) < 4) { echo "yes";
/** * 验证码验证 * @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); } }
pageft($count, $pageSize, 1, 0, 0, 3); } else { $firstcount = ($page - 1) * $pageSize; // $lastcount = $page * $pageSize; $query = C::t("#smart_vote#smart_vote")->fetch_all($firstcount, $pageSize); pageft($count, $pageSize, 1, 0, 0, 3); } // pageft($count,10); include template("smart_vote:index"); } else { if ("value" == $_GET['model']) { $openid = $_COOKIE["openid"]; //openid $today = time(); $exitdate = strtotime(date('Y-m-d 23:59:59')); $geetest = new GeetestLib(); $geetest->set_privatekey("465719ad89db5cbe489cc051ff81a38e"); $voteid = $_POST['voteid']; if (isset($_POST['geetest_challenge']) && isset($_POST['geetest_validate']) && isset($_POST['geetest_seccode'])) { $result = $geetest->validate($_POST['geetest_challenge'], $_POST['geetest_validate'], $_POST['geetest_seccode']); if ($result == TRUE) { //投票限制 if ($openid == "") { echo "feifa"; //非法提交 exit; } //---------------------- // $urlsub = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=$subtoken&openid=$openid"; // $chsub = curl_init(); // curl_setopt($chsub, CURLOPT_URL, $urlsub);
<?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 require_once "./class.geetestlib.php"; $geetestlib = new GeetestLib(); $data = json_decode($_POST['data'], true); $result = $geetestlib->validate($data['geetest_challenge'], $data['geetest_validate'], $data['geetest_seccode']); if ($result == 1) { echo "yes"; } else { echo "no"; }