Example #1
0
/**
 * 产生验证码
 *
 * @param string $nchash 哈希数
 * @return string
 */
function uk86_makeSeccode($nchash)
{
    $seccode = uk86_random(6, 1);
    $seccodeunits = '';
    $s = sprintf('%04s', base_convert($seccode, 10, 23));
    $seccodeunits = 'ABCEFGHJKMPRTVXY2346789';
    if ($seccodeunits) {
        $seccode = '';
        for ($i = 0; $i < 4; $i++) {
            $unit = ord($s[$i]);
            $seccode .= $unit >= 0x30 && $unit <= 0x39 ? $seccodeunits[$unit - 0x30] : $seccodeunits[$unit - 0x57];
        }
    }
    uk86_setNcCookie('seccode' . $nchash, uk86_encrypt(strtoupper($seccode) . "\t" . time() . "\t" . $nchash, MD5_KEY), 3600);
    return $seccode;
}
Example #2
0
 /**
  * 绑定邮箱 - 发送邮件
  */
 public function send_bind_emailOp()
 {
     $obj_validate = new Uk86Validate();
     $obj_validate->validateparam = array(array("input" => $_POST["email"], "require" => "true", 'validator' => 'email', "message" => '请正确填写邮箱'));
     $error = $obj_validate->uk86_validate();
     if ($error != '') {
         uk86_showValidateError($error);
     }
     $model_member = Model('member');
     $condition = array();
     $condition['member_email'] = $_POST['email'];
     $condition['member_id'] = array('neq', $_SESSION['member_id']);
     $member_info = $model_member->getMemberInfo($condition, 'member_id');
     if ($member_info) {
         showDialog('该邮箱已被使用');
     }
     $data = array();
     $data['member_email'] = $_POST['email'];
     $data['member_email_bind'] = 0;
     $update = $model_member->editMember(array('member_id' => $_SESSION['member_id']), $data);
     if (!$update) {
         showDialog('系统发生错误,如有疑问请与管理员联系');
     }
     $seed = uk86_random(6);
     $data = array();
     $data['auth_code'] = $seed;
     $data['send_acode_time'] = TIMESTAMP;
     $update = $model_member->editMemberCommon($data, array('member_id' => $_SESSION['member_id']));
     if (!$update) {
         showDialog('系统发生错误,如有疑问请与管理员联系');
     }
     $uid = base64_encode(uk86_encrypt($_SESSION['member_id'] . ' ' . $_POST["email"]));
     $verify_url = SHOP_SITE_URL . '/index.php?act=login&op=bind_email&uid=' . $uid . '&hash=' . md5($seed);
     $model_tpl = Model('mail_templates');
     $tpl_info = $model_tpl->getTplInfo(array('code' => 'bind_email'));
     $param = array();
     $param['site_name'] = C('site_name');
     $param['user_name'] = $_SESSION['member_name'];
     $param['verify_url'] = $verify_url;
     $subject = uk86_ncReplaceText($tpl_info['title'], $param);
     $message = uk86_ncReplaceText($tpl_info['content'], $param);
     $email = new Uk86Email();
     $result = $email->uk86_send_sys_email($_POST["email"], $subject, $message);
     showDialog('验证邮件已经发送至您的邮箱,请于24小时内登录邮箱并完成验证!', 'index.php?act=member_security&op=index', 'succ', '', 5);
 }
Example #3
0
 /**
  * 加密
  * @param array /string $string
  * @param int $member_id
  * @return mixed arrray/string
  */
 public function buyEncrypt($string, $member_id)
 {
     $buy_key = sha1(md5($member_id . '&' . MD5_KEY));
     if (is_array($string)) {
         $string = serialize($string);
     } else {
         $string = strval($string);
     }
     return uk86_encrypt(base64_encode($string), $buy_key);
 }
Example #4
0
 /**
  * 系统后台 会员登录后 将会员验证内容写入对应cookie中
  *
  * @param string $name 用户名
  * @param int $id 用户ID
  * @return bool 布尔类型的返回结果
  */
 protected final function systemSetKey($user)
 {
     uk86_setNcCookie('sys_key', uk86_encrypt(serialize($user), MD5_KEY), 3600, '', null);
 }
Example #5
0
 /**
  * 添加权限组
  */
 public function gadmin_addOp()
 {
     if (uk86_chksubmit()) {
         $limit_str = '';
         $model = Model('gadmin');
         if (is_array($_POST['permission'])) {
             $limit_str = implode('|', $_POST['permission']);
         }
         $data['limits'] = uk86_encrypt($limit_str, MD5_KEY . md5($_POST['gname']));
         $data['gname'] = $_POST['gname'];
         if ($model->insert($data)) {
             $this->log(L('nc_add,limit_gadmin') . '[' . $_POST['gname'] . ']', 1);
             uk86_showMessage(L('nc_common_save_succ'), 'index.php?act=admin&op=gadmin');
         } else {
             uk86_showMessage(L('nc_common_save_fail'));
         }
     }
     Tpl::output('top_link', $this->sublink($this->links, 'gadmin_add'));
     Tpl::output('limit', $this->permission());
     Tpl::showpage('gadmin.add');
 }
Example #6
0
 /**
  * 删除购物车商品
  *
  * @param string $type 存储类型 db,cookie
  * @param unknown_type $condition
  */
 public function delCart($type, $condition = array())
 {
     if ($type == 'db') {
         $result = $this->where($condition)->delete();
     } elseif ($type == 'cookie') {
         $cart_str = get_magic_quotes_gpc() ? stripslashes(uk86_cookie('cart')) : uk86_cookie('cart');
         $cart_str = base64_decode(uk86_decrypt($cart_str));
         $cart_array = @unserialize($cart_str);
         if (key_exists($condition['goods_id'], (array) $cart_array)) {
             unset($cart_array[$condition['goods_id']]);
         }
         uk86_setNcCookie('cart', uk86_encrypt(base64_encode(serialize($cart_array))), 24 * 3600);
         $result = true;
     }
     //重新计算购物车商品数和总金额
     if ($result) {
         $this->getCartNum($type, array('buyer_id' => $condition['buyer_id']));
     }
     return $result;
 }
 /**
  * 浏览过的商品加入浏览历史数据库
  *
  * @param mixed $goods_id 商品ID或者商品ID数组
  * @return array
  */
 public function addViewedGoodsToCookie($goods_id)
 {
     if (!$goods_id) {
         return array('state' => false, 'msg' => '参数错误');
     }
     //浏览时间
     $browsetime = time();
     //构造cookie的一项值,每项cookie的值为商品ID-访问时间
     if (is_array($goods_id)) {
         $goods_idarr = $goods_id;
         foreach ($goods_id as $v) {
             $cookievalue[] = $v . '-' . $browsetime;
         }
     } else {
         $cookievalue[] = $goods_id . '-' . $browsetime;
         $goods_idarr[] = $goods_id;
     }
     unset($goods_id);
     if (uk86_cookie('viewed_goods')) {
         //如果cookie已经存在
         $string_viewed_goods = uk86_decrypt(uk86_cookie('viewed_goods'), MD5_KEY);
         if (get_magic_quotes_gpc()) {
             $string_viewed_goods = stripslashes($string_viewed_goods);
             // 去除斜杠
         }
         $vg_ca = @unserialize($string_viewed_goods);
         if (!empty($vg_ca) && is_array($vg_ca)) {
             foreach ($vg_ca as $vk => $vv) {
                 $vv_arr = explode('-', $vv);
                 if (in_array($vv_arr[0], $goods_idarr)) {
                     //如果该商品的浏览记录已经存在,则删除它
                     unset($vg_ca[$vk]);
                 }
             }
         } else {
             $vg_ca = array();
         }
         //将新浏览历史加入cookie末尾
         array_push($vg_ca, implode(',', $cookievalue));
         //cookie中最多存储50条浏览信息
         if (count($vg_ca) > 50) {
             $vg_ca = array_slice($vg_ca, -50, 50);
         }
     } else {
         $vg_ca = $cookievalue;
     }
     $vg_ca = uk86_encrypt(serialize($vg_ca), MD5_KEY);
     uk86_setNcCookie('viewed_goods', $vg_ca);
 }
Example #8
0
 public static function uk86_getTokenValue()
 {
     return uk86_encrypt(TIMESTAMP, md5(MD5_KEY));
 }