/** * 产生验证码 * * @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; }
/** * 绑定邮箱 - 发送邮件 */ 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); }
/** * 加密 * @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); }
/** * 系统后台 会员登录后 将会员验证内容写入对应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); }
/** * 添加权限组 */ 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'); }
/** * 删除购物车商品 * * @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); }
public static function uk86_getTokenValue() { return uk86_encrypt(TIMESTAMP, md5(MD5_KEY)); }