Esempio n. 1
0
 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;
 }
Esempio n. 2
0
 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;
     }
 }
Esempio n. 3
0
 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;
 }
Esempio n. 4
0
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;
            }
        }
    }
}
Esempio n. 5
0
 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";
         }
     }
 }
Esempio n. 6
0
<?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";
    }
}
Esempio n. 7
0
<?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);
}
Esempio n. 9
0
 /**
  * 验证验证码
  */
 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;
     }
 }
Esempio n. 10
0
 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;
 }
Esempio n. 13
0
<?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";
Esempio n. 14
0
 /**
  * 验证码验证
  * @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);
     }
 }
Esempio n. 15
0
         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);
Esempio n. 16
0
<?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);
}
Esempio n. 17
0
<?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";
}