function forget() { header("Content-Type:text/html; charset=utf-8"); $cstmusrnm = $_POST['cstmusrnm']; $cstmusrml = $_POST['cstmusrml']; $cstmusr = M('cstmusr'); if ($cstmusr->where("cstmusrnm='" . $cstmusrnm . "'")->find()) { if ($cstmusr->where("cstmusrnm='" . $cstmusrnm . "' AND cstmusrml='" . $cstmusrml . "'")->find()) { $cstmusro = $cstmusr->where("cstmusrnm='" . $cstmusrnm . "'")->find(); //由于从邮箱进行点击链接是无法获取session的,所以存sql sql存一个是key 一个是时间戳 $tm = time(); //一样可以保证是同一个tm $vrf = md5($cstmusrnm . $tm); $ss = M('ss'); $dt = array(ssvrf => $vrf, sstm => $tm, sscstmusrnm => $cstmusrnm); //刚刚创建好了立马用 $ss->data($dt)->add(); $cnt = $ss->count(); $ssls = $ss->limit($cnt - 1, 1)->select(); $ssid = $ssls[0]['ssid']; //得到公网地址 $sys = M('sys'); $syso = $sys->find(); //发送邮件 import('@.MAIL.MailAction'); //$mail = new PHPMailer(); //实例化 $mail = new MailAction(); $mail->IsSMTP(); // 启用SMTP $mail->Host = "smtp.163.com"; //SMTP服务器 以163邮箱为例子 $mail->Port = 25; //邮件发送端口 $mail->SMTPAuth = true; //启用SMTP认证 $mail->CharSet = "UTF-8"; //字符集 $mail->Encoding = "base64"; //编码方式 $mail->Username = "******"; //你的邮箱 $mail->Password = "******"; //你的密码 $mail->Subject = "Geek密码找回"; //邮件标题 $mail->From = "*****@*****.**"; //发件人地址(也就是你的邮箱) $mail->FromName = "管理员"; //发件人姓名 $address = $cstmusrml; //收件人email $mail->AddAddress($address, $cstmusro['cstmusrnn']); //添加收件人(地址,昵称) //$mail->AddAttachment('xx.xls','我的附件.xls'); // 添加附件,并指定名称 //$mail->IsHTML(true); //支持html格式内容 //$mail->AddEmbeddedImage("logo.jpg", "my-attach", "logo.jpg"); //设置邮件中的图片 $mail->Body = '你好, 请点击以下链接 http://' . $syso['sysip'] . '/' . $syso['sysnm'] . '/admin.php/Cstmusr/gtxpg/x/modifypwml/ssid/' . $ssid . '/vrf/' . $vrf . ' 如果您的邮箱不支持点击链接,那么请您将此链接粘贴至浏览器地址栏进行访问,此邮件30分钟内有效'; //邮件主体内容 //发送 // if(!$mail->Send()) { // echo "Mailer Error: " . $mail->ErrorInfo; // } else { // echo "Message sent!"; // } if ($mail->Send()) { $data['status'] = 1; $this->ajaxReturn($data, 'json'); } else { $data['status'] = 2; $this->ajaxReturn($data, 'json'); } } else { $data['status'] = 4; $this->ajaxReturn($data, 'json'); } } else { $data['status'] = 3; $this->ajaxReturn($data, 'json'); } }
/** * API:用户注册 * * @access public * @param 无 * @return JsonView 响应json */ public function exeUserRegister() { $requestParam = $this->getAllParameters(); Logger::debug('requestParam:' . print_r($requestParam, true)); $requestJsonParam = $this->getDecodedJsonRequest(); Logger::debug('requestJsonParam:' . print_r($requestJsonParam, true)); // 检测账号是否重复 $ret = AuthModel::checkUserAccount($requestJsonParam['account']); if (!$ret) { $view = new JsonView(); $messageArr['error'] = "该账号已存在"; return $this->getViewByJson($view, $messageArr, 0, "auth/user_register"); } // 检测账号是否重复 $ret = AuthModel::checkUserName($requestJsonParam['user_name']); if (!$ret) { $view = new JsonView(); $messageArr['error'] = "该昵称已存在"; return $this->getViewByJson($view, $messageArr, 0, "auth/user_register"); } // 插入新用户 $ret = AuthModel::insert(array('s_account' => $requestJsonParam['account'], 's_password' => $requestJsonParam['password'], 't_create_time' => date("Y-m-d H:i:s")), $pdo); if (is_null($ret)) { throw new ModelException('insert false pa_user_master'); } //---------------------------- 初始用户表 ---------------------------- $user_id = AuthModel::getUserID($requestJsonParam['account'], $requestJsonParam['password'], $pdo); $messageArr['n_id'] = $user_id; self::$userBasicIni['s_name'] = $requestJsonParam['user_name']; self::$userBasicIni['n_sex'] = $requestJsonParam['sex']; self::$userBasicIni['t_create_time'] = date("Y-m-d H:i:s"); // 初始化关卡信息 $checkPointIni = array(1 => array('score' => 0, 'scr_length' => 0, 'reward' => 0, 'kill_num' => 0, 'star_num' => 0)); //self::$userBasicIni['s_checkpoint_info'] = serialize( $checkPointIni ); // 初始化角色信息 self::$userBasicIni['s_role_info '] = CharacterAction::registCharacter($user_id, Constants::INI_CHARACTER_ID); // 初始化武将信息 self::$userBasicIni['s_general_info'] = GeneralAction::registGeneral($user_id, Constants::INI_GENERAL_ID); // 初始化任务信息 self::$userBasicIni['s_task_info'] = serialize(TaskAndAchieveAction::randTask($user_id)); // 初始化成就信息 self::$userBasicIni['s_achievement_info'] = TaskAndAchieveAction::registAchieveCsv($user_id); // 初始化签到信息 $loginInfo = UserAction::getUserLoginInfo(); self::$userBasicIni['s_login_info'] = serialize($loginInfo); $userInfo = array_merge($messageArr, self::$userBasicIni); $ret = UserModel::insert($userInfo, $pdo); FriendModel::insert(array('n_user_id' => $user_id, 'n_friend_id' => Constants::ROBERT, 't_create_time' => date("Y-m-d H:i:s"))); $battle = UserAction::getUserbattle($user_id); UserModel::update(array('n_battle' => $battle), array('n_id' => $user_id)); MailAction::sendSystemMail($user_id); if (is_null($ret)) { throw new ModelException('insert false pa_user_master'); } // // 成就 // $statisticArr['login_day'] = 1; // TaskAndAchieveAction::achieveStatistic( $user_id, $statisticArr ); $userInfo = array_merge($messageArr, self::$userBasicIni); $session_key = CharacterModel::setSessionKey($user_id, $session_key); $messageArr['total_day'] = $loginInfo['total_day']; $messageArr['session_key'] = $session_key; $view = new JsonView(); return $this->getViewByJson($view, $messageArr, 1, "auth/user_register"); }
public function run() { parent::run(); }
/** * API:注册登陆时获取所有界面信息 * * @access public * @param int $user_id 用户ID $character_id主角ID * @return array */ public function getAllMessage($user_id) { //主角界面 $characterInfo = CharacterAction::GetAllCharacterInfo($user_id); //武将界面 $generalInfo = GeneralAction::GetAllGeneralInfo($user_id); $messageArr = array_merge($characterInfo, $generalInfo); //任务成就界面 $messageArr['achieveInfo'] = TaskAndAchieveAction::getAchieveInfo($user_id); $messageArr['taskInfo'] = TaskAndAchieveAction::getTaskInfo($user_id); //商城数据 $messageArr['mallInfo'] = BuyPropAction::exeGetMallInfo($user_id); //道具数据 $messageArr['itemInfo'] = BuyPropAction::exeGetPropInfo($user_id); //好友界面 $messageArr['friendInfo'] = FriendAction::exeGetFriendMenu($user_id); $messageArr['mail_num'] = MailAction::getMailNum($user_id); $messageArr['achieve_type'] = TaskAndAchieveAction::isFinish($user_id); //复活信息 $messageArr['resurrextInfo']['price_type'] = Constants::RESURE_TYPE; $messageArr['resurrextInfo']['price'] = Constants::RESURE_COST; $messageArr['resurrextInfo']['hp'] = Constants::RESURE_HP; $messageArr['resurrextInfo']['time'] = Constants::RESURE_TIME; //BOSS关卡评分 $messageArr['bossPoint']['time'] = Constants::BOSS_TIME; $messageArr['bossPoint']['less_time'] = Constants::LESS_TIME; $messageArr['bossPoint']['more_time'] = Constants::MORE_TIME; return $messageArr; }
/** * API:升级武将属性 * * @access public * @param 无 * @return JsonView 响应json */ public function exeUpdateGeneral() { $requestParam = $this->getAllParameters(); Logger::debug('requestParam:' . print_r($requestParam, true)); $requestJsonParam = $this->getDecodedJsonRequest(); Logger::debug('requestJsonParam:' . print_r($requestJsonParam, true)); $user_id = $requestParam['user_id']; $general_id = $requestJsonParam['general_id']; $attribute_id = $requestJsonParam['attribute_id']; $session_key = $requestParam['session_key']; $userGeneral = UserCache::getByKey($user_id, 's_general_info'); if (!$userGeneral) { $userGeneral = GeneralModel::getUserGeneralInfo($user_id); UserCache::setByKey($user_id, 's_general_info', $userGeneral); } $attribute = self::$attribute; $price_type = self::$price_type; // 读取csv类 ,读取目标文件 $file = IniFileManager::getRootDir() . "/files/csv/general" . $general_id . "_update_value.csv"; $str = "update_id = " . $attribute_id . '_' . $userGeneral[$general_id][$attribute[$attribute_id]]; $nowArr = CharacterAction::readCsv($file, $str); $type = $price_type[$nowArr[0]['price_type']]; $money = UserCache::getByKey($user_id, $type); if (!$money) { $userInfo = GeneralModel::getUserInfo($user_id); $money = $userInfo[$type]; } $money = $money - $nowArr[0]['price']; if ($money < 0) { $messageArr['error'] = "人生果/钻石不足!"; $messageArr['session_key'] = CharacterModel::setSessionKey($user_id, $session_key); $view = new JsonView(); return $this->getViewByJson($view, $messageArr, 0, "general/update_general"); } if ($userGeneral[$general_id][$attribute[$attribute_id]] >= Constants::MAX_LEVEL) { $messageArr['error'] = "等级已达最大!"; $messageArr['session_key'] = CharacterModel::setSessionKey($user_id, $session_key); $view = new JsonView(); return $this->getViewByJson($view, $messageArr, 0, "general/update_general"); } $userGeneral[$general_id][$attribute[$attribute_id]] = $userGeneral[$general_id][$attribute[$attribute_id]] + 1; $s_general_info = serialize($userGeneral); $res = GeneralModel::update(array($type => $money, 's_general_info' => $s_general_info), array('n_id' => $user_id)); if (!$res) { throw new Exception(" update false pa_user_master "); } //任务成就统计 $num = 0; TaskAndAchieveAction::taskStatistic($user_id, array('generl_up' => 1)); if ($type == $price_type[1]) { TaskAndAchieveAction::achieveStatistic($user_id, array('cost' => $nowArr[0]['price'])); } foreach ($attribute as $key => $value) { if ($userGeneral[$general_id][$value] >= Constants::MAX_LEVEL) { $num++; } } if ($num == 2) { TaskAndAchieveAction::achieveStatistic($user_id, array('generl_full' => 1)); } //session_key UserCache::setByKey($user_id, 's_general_info', $userGeneral); UserCache::setByKey($user_id, $type, $money); //更新战斗力 $battle = UserAction::getUserBattle($user_id); GeneralModel::update(array('n_battle' => $battle), array('n_id' => $user_id)); UserCache::setByKey($user_id, 'n_battle', $battle); $messageArr = self::GetAllGeneralInfo($user_id); $messageArr['battle'] = $battle; //任务成就界面 $messageArr['achieveInfo'] = TaskAndAchieveAction::getAchieveInfo($user_id); $messageArr['taskInfo'] = TaskAndAchieveAction::getTaskInfo($user_id); $messageArr['mail_num'] = MailAction::getMailNum($user_id); $messageArr['achieve_type'] = TaskAndAchieveAction::isFinish($user_id); $messageArr['session_key'] = CharacterModel::setSessionKey($user_id, $session_key); $view = new JsonView(); return $this->getViewByJson($view, $messageArr, 1, "general/update_general"); }