1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554 |
- <?php
- /**
- * Description of M
- *
- * @author zongheng
- */
- class UserController extends DooController {
- private $cashlimit = 100; // 充值金额奖励底限
- private $perlimit = 0.05; // 奖励百分比
- private $salelimit = 0.2; // 销售人员提成
- public $data;
- private $theme = null;
- public $errorMsg; //错误信息
- public $QArray = array(1 => '您父亲的名字是?', 2 => '您母亲的名字是?', 3 => '您的英文名字是?', 4 => '您身份证最后6位数字是?', 5 => '您就读的第一所学校全称是?');
- function __construct() {
- $this->data['rootUrl'] = Doo::conf()->APP_URL;
- $this->data['rootUrl_JS'] = Doo::conf()->APP_JS_URL;
- $this->data['rootUrl_IMG'] = Doo::conf()->APP_IMG_URL;
- $this->data['rootUrl_CSS'] = Doo::conf()->APP_CSS_URL;
- $this->theme = Doo::conf()->APP_THEME;
- }
- /**
- * 管理登入
- */
- function login() {
- $forward = isset($this->params['forward']) ? $this->params['forward'] : 'profile';
- $session = Doo::session("sso");
- if ($session->user['id']) {
- if ($forward == 'deposit') {
- return Doo::conf()->APP_URL . 'msg/login';
- }
- }
- $this->data['messages'] = null;
- if (isset($_POST['zhusername']) && isset($_POST['zhuserpasswd'])) {
- $username = trim($_POST['zhusername']);
- $password = trim($_POST['zhuserpasswd']);
- if (!empty($username) && !empty($password)) {
- if ($this->checkMail($username)) {
- $user = Doo::db()->find('users', array(
- 'select' => 'id,username,userpasswd,useranswer,useremail,actstate,defquestion,userquestion,regdate,salt,intime,mobile',
- 'where' => 'useremail=?',
- 'param' => array($username),
- )
- );
- }elseif($this->checkMobile($username)){
- $user = Doo::db()->find('users', array(
- 'select' => 'id,username,userpasswd,useranswer,useremail,actstate,defquestion,userquestion,regdate,salt,intime,mobile',
- 'where' => 'mobile=?',
- 'param' => array($username),
- )
- );
- } else {
- $user = Doo::db()->find('users', array(
- 'select' => 'id,username,userpasswd,useranswer,salt,actstate,defquestion,userquestion,regdate,useremail,intime,mobile',
- 'where' => 'username=?',
- 'param' => array($username),
- )
- );
- }
- Doo::loadModel('userswitch');
- $userswitch = new UserSwitch();
- $usArray = $userswitch->getOne(array('select' => 'actime', 'where' => 'uid=?', 'param' => array($user[0]->id), 'asArray' => TRUE));
- if (!empty($user)) {
- if ($user[0]->userpasswd == $this->create_password($password, $user[0]->salt)) {
- $session = Doo::session("sso");
- unset($session->user);
- $session->user = array(
- 'id' => $user[0]->id,
- 'username' => $user[0]->username,
- 'password' => $user[0]->userpasswd,
- 'answer' => $user[0]->useranswer,
- 'regdate' => $user[0]->regdate,
- 'email' => $user[0]->useremail,
- 'mobile' => $user[0]->mobile,
- 'salt' => $user[0]->salt,
- 'status' => $usArray['actime'],
- 'defquestion' => $user[0]->defquestion,
- 'userquestion' => $user[0]->userquestion,
- );
- setcookie(Doo::conf()->COOKIEPRE . 'auth', $this->authcode($user[0]->id . "\t" . $this->clientIP(), 'ENCODE'), 0, '/', Doo::conf()->APP_URL, 0);
- setcookie(Doo::conf()->COOKIEPRE . '_userid', $this->authcode($user[0]->id, 'ENCODE'), 0, '/', Doo::conf()->APP_URL, 0);
- setcookie(Doo::conf()->COOKIEPRE . '_username', $this->authcode($user[0]->username, 'ENCODE'), 0, '/', Doo::conf()->APP_URL, 0);
- if (empty($user[0]->userquestion) && empty($user[0]->mobile))
- return Doo::conf()->APP_URL . 'safe';
- if ($forward == 'deposit') {
- return Doo::conf()->APP_URL . 'msg/login';
- }
- // else {
- // return Doo::conf()->APP_URL . 'profile';
- // }
- } else {
- $this->data['messages'] = '账号或者密码错误';
- }
- } else {
- $this->data['messages'] = '无此用户';
- }
- }
- }
- $this->data['userid'] = $session->user['id'];
- $this->data['username'] = $session->user['username'];
- $this->render($this->theme.'login', $this->data,true);
- }
-
- // 账户名称检测只能由中文、大小写字母、数字组成
- private function checkUserName($username){
- if (preg_match('/^[A-Za-z0-9\x{4e00}-\x{9fa5}]{3,15}$/u', $username)) {
- return TRUE;
- } else {
- return FALSE;
- }
- }
- // 检测手机验证码和验证手机是否符合
- private function checkSmsCode($mobile,$code){
- $now = time();
- $old = $now-900;
- Doo::loadModel('mobilecode');
- $mobilecode = new mobilecode();
- $user = $mobilecode->find(array(
- 'select' => 'id',
- 'where' => 'mobile='.$mobile.' and code='.$code.' and time between '.$old.' and '.$now,
- 'desc' => 'id',
- 'limit' => 1,
- 'asArray' => true
- ));
- if ($user) {
- $mobilecode->mobile=$mobile;
- $mobilecode->delete();
- return TRUE;
- } else {
- return FALSE;
- }
- }
- function reg() {
- $this->data['soft']=$this->params['soft']?$this->params['soft']:false;
- $web=isset($_POST['web'])?$_POST['web']:2;
-
- if($web==1)
- if(empty($_POST['realName'])||empty($_POST['PhoneNum'])||empty($_POST['Company'])||empty($_POST['MobileNum']))
- $this->render($this->theme.'register', $this->data);
-
-
- if (!empty($_POST['zhuser']) && !empty($_POST['zhemail']) && filter_var($_POST['zhemail'], FILTER_VALIDATE_EMAIL) && !empty($_POST['zhq']) && !empty($_POST['zhanswer']) && ($_POST['zhuser'] != $_POST['zhemail'])) {
- if(!$this->checkUserName($_POST['zhuser'])){
- return Doo::conf()->APP_URL . 'error/UserName';
- }
- // if(!$this->checkMail($_POST['zhemail'])){
- // return Doo::conf()->APP_URL . 'error/UserEmail';
- // }
- $strSalt = $this->create_randomstr();
- $stractstate = sha1(substr(uniqid(rand()), 0, 6)); // 旧激活功能代码
- $strpasswd = $this->create_password($_POST['zhpwdrepeat'], $strSalt);
- $nowtime = time();
- $items = array(
- 'username' => $_POST['zhuser'],
- 'useremail' => $_POST['zhemail'],
- 'mobile' => '',
- 'userpasswd' => $strpasswd,
- 'salt' => $strSalt,
- 'regip' => $this->clientIP(),
- 'userquestion' => htmlspecialchars($_POST['zhq']),
- 'defquestion' => addslashes(htmlspecialchars($_POST['defq'])),
- 'useranswer' => addslashes(htmlspecialchars($_POST['zhanswer'])),
- 'actstate' => $stractstate, // 旧激活功能代码
- 'intime' => $nowtime,
- 'regdate' => $nowtime,
- );
- doo::loadModel('users');
- $users = new Users();
- $RetValue = $users->_insertAttributes('users', $items);
- //插入网络版信息
- doo::loadModel('scUser');
- $scuser = new scUser();
- $scuser->uid=$RetValue;
- $scuser->Name=$_POST['realName'];
- $scuser->MobileNum=$_POST['MobileNum'];
- $scuser->Company=$_POST['Company'];
- $scuser->PhoneNum=$_POST['AreaCode'].'-'.$_POST['PhoneNum'];
- $scuser->QQ=$_POST['QQ'];
- $scuser->Province=$_POST['Province'];
- $scuser->Address=$_POST['Address'];
- $scuser->KnowFrom=$_POST['KnowFrom'];
- if($_POST['KnowFrom']==9)
- $scuser->KnowOther='其他';
- $scuser->insert();
- // 新注册用户加入待激活列表
- $rndcode = $this->create_randomstr();
- $acode = md5($RetValue . $rndcode);
- Doo::loadModel('userswitch');
- $UserSwitch = new UserSwitch();
- $UserSwitch->userAdd($RetValue, $acode, $rndcode);
- // End
- if ($RetValue) {
- $session = Doo::session("sso");
- unset($session->user);
- $session->user = array(
- 'id' => $RetValue,
- 'username' => $_POST['zhuser'],
- 'password' => $strpasswd,
- 'answer' => $_POST['zhanswer'],
- 'email' => $_POST['zhemail'],
- 'salt' => $strSalt,
- 'status' => $stractstate,
- 'defquestion' => addslashes(htmlspecialchars($_POST['defq'])),
- 'userquestion' => addslashes(htmlspecialchars($_POST['zhq'])),
- 'regdate' => $nowtime,
- );
- }
- $StrSubject = '纵横通行帐号-请激活您的帐号';
- $StrContent = '<table style="width:100%">
- <tbody>
- <tr><td>
- <p>感谢您注册成为纵横通行帐号的会员。在使用我们提供的服务之前,请点击以下链接,或将以下链接复制到浏览器的地址栏中打开,以激活您的帐户:</p>
- <p style="width:600px"><br><a href="' . Doo::conf()->APP_URL . 'actuser/' . $acode . '">' . Doo::conf()->APP_URL . 'actuser/' . $acode . '</a></p>
- <p><br>您之所以收到这封邮件,是因为您曾经注册成为纵横通行帐号的用户。我们保证仅向您发送关于纵横通行帐号的电子邮件。我们尊重并保护您的隐私。</p>
- <p><br>纵横通行帐号与你共成长!</p>
- <p>' . date('Y年m月d日', time()) . '</p>
- <p>©2012 <a href="http://smartcost.com.cn">珠海纵横创新软件有限公司</a></p>
- </td></tr>
- </tbody>
- </table>';
- @$this->SMail($_POST['zhemail'], $StrSubject, $StrContent);
- return Doo::conf()->APP_URL . 'sec';
- }
- $this->render($this->theme.'register', $this->data);
- }
- function smsreg(){
- $this->data['soft']=$this->params['soft']?$this->params['soft']:false;
- $web=isset($_POST['web'])?$_POST['web']:2;
- if($web==1)
- if(empty($_POST['realName'])||empty($_POST['PhoneNum'])||empty($_POST['Company'])||empty($_POST['MobileNum']))
- $this->render($this->theme.'register', $this->data);
- if (!empty($_POST['zhmuser']) && !empty($_POST['zhmobile']) && !empty($_POST['zhsmscode']) && !empty($_POST['zhmpasswd'])) {
- if(!$this->checkUserName($_POST['zhmuser'])){
- return Doo::conf()->APP_URL . 'error/UserName';
- }
- if(!$this->checkSmsCode($_POST['zhmobile'],$_POST['zhsmscode'])){
- return Doo::conf()->APP_URL . 'error/mobile';
- }
- $strSalt = $this->create_randomstr();
- $stractstate = sha1(substr(uniqid(rand()), 0, 6)); // 旧激活功能代码
- $strpasswd = $this->create_password($_POST['zhmpasswd'], $strSalt);
- $nowtime = time();
- $items = array(
- 'username' => $_POST['zhmuser'],
- 'mobile' => $_POST['zhmobile'],
- 'useremail' => '',
- 'userpasswd' => '',
- 'userquestion' => '',
- 'useranswer' => '',
- 'userpasswd' => $strpasswd,
- 'salt' => $strSalt,
- 'regip' => $this->clientIP(),
- 'actstate' => $stractstate, // 旧激活功能代码
- 'intime' => $nowtime,
- 'regdate' => $nowtime,
- );
- doo::loadModel('users');
- $users = new Users();
- $RetValue = $users->_insertAttributes('users', $items);
- //插入网络版信息
- doo::loadModel('scUser');
- $scuser = new scUser();
- $scuser->uid=$RetValue;
- // $scuser->Name=$_POST['realName'];
- // $scuser->MobileNum=$_POST['MobileNum'];
- // $scuser->Company=$_POST['Company'];
- // $scuser->PhoneNum=$_POST['AreaCode'].'-'.$_POST['PhoneNum'];
- // $scuser->QQ=$_POST['QQ'];
- // $scuser->Province=$_POST['Province'];
- // $scuser->Address=$_POST['Address'];
- // $scuser->KnowFrom=$_POST['KnowFrom'];
- // if($_POST['KnowFrom']==9)
- // $scuser->KnowOther='其他';
- $scuser->insert();
- if ($RetValue) {
- $session = Doo::session("sso");
- unset($session->user);
- $session->user = array(
- 'id' => $RetValue,
- 'username' => $_POST['zhmuser'],
- 'password' => $strpasswd,
- 'answer' => '',
- 'email' => '',
- 'mobile' => $_POST['zhmobile'],
- 'salt' => $strSalt,
- 'status' => $stractstate,
- 'defquestion' => '',
- 'userquestion' => '',
- 'regdate' => $nowtime,
- );
- }
- $this->data['username'] = $_POST['zhmuser'];
- $this->data['mobile'] = $_POST['zhmobile'];
- if(isset($_POST['mobilereg'])){
- $this->render($this->theme.'registerMobile-success', $this->data);
- }else{
- $this->render($this->theme.'successM', $this->data);
- }
- die();
- }else{
- if(isset($_POST['mobilereg'])) {
- $this->render($this->theme.'registerMobile', $this->data);
- }else{
- $this->render($this->theme.'register', $this->data);
- }
- }
- }
- /**
- * 生成随机字符串
- * @param string $lenth 长度
- * @return string 字符串
- */
- function create_randomstr($lenth = 6) {
- return $this->random($lenth, '123456789abcdefghijklmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ');
- }
- /**
- *
- * @param $password 密码
- * @param $random 随机数
- */
- function create_password($password = '', $random = '') {
- if (empty($random)) {
- $array['random'] = $this->create_randomstr();
- $array['password'] = md5(md5($password) . $array['random']);
- return $array;
- }
- return md5(md5($password) . $random);
- }
- /**
- * 随机字符串函数
- * @param $password 密码
- * @param $random 随机数
- */
- function random($length, $chars = '0123456789') {
- $hash = '';
- $max = strlen($chars) - 1;
- for ($i = 0; $i < $length; $i++) {
- $hash .= $chars[mt_rand(0, $max)];
- }
- return $hash;
- }
- function setpasswd() {
- $session = Doo::session("sso");
- if (empty($session->user['id'])) {
- return Doo::conf()->APP_URL . 'error/loginFail';
- }
- $StrEncode = $this->authcode(base64_decode($this->params['AuthStr']), 'DECODE');
- if (empty($StrEncode))
- exit('error');
- list($userid, $useremail, $timetemp) = explode('|', $StrEncode);
- if ((time() - $timetemp) > 86400) {
- exit('error');
- }
- $user = Doo::db()->find('users', array(
- 'select' => 'id,salt',
- 'where' => 'useremail=?',
- 'param' => array($useremail),
- )
- );
- if (empty($user)) {
- exit('error');
- }
- if ($userid != $user[0]->id) {
- exit('error!');
- }
- $this->data['messages'] = null;
- if (!empty($_POST['answer']) && !empty($_POST['newpasswd']) && !empty($_POST['repeatnew']) && ($_POST['newpasswd'] == $_POST['repeatnew'])) {
- $useranswer = htmlspecialchars($_POST['answer']);
- $userrepeatnew = $_POST['repeatnew'];
- Doo::loadModel('users');
- $objuser = new Users();
- $objuser->userpasswd = $this->create_password($userrepeatnew, $user[0]->salt);
- $RetValue = $objuser->update(array('where' => 'id=' . $userid . ' AND useremail=\'' . $useremail . '\' AND useranswer=\'' . $useranswer . '\''));
- if ($RetValue)
- $this->data['messages'] = '密码重置成功';
- return Doo::conf()->APP_URL;
- }
- $this->data['defquestion'] = null;
- $session = Doo::session("sso");
- if (!empty($session->user['defquestion']) || ($session->user['userquestion'] == 6))
- $this->data['defquestion'] = htmlspecialchars_decode($session->user['defquestion']);
- if (!empty($session->user['userquestion']) && ($session->user['userquestion'] != 6))
- $this->data['defquestion'] = $this->QArray[$session->user['userquestion']];
- $this->data['StrAuth'] = $this->params['AuthStr'];
- $this->data['rootUrl'] = Doo::conf()->APP_URL;
- $this->render($this->theme.'getPassword2', $this->data);
- }
- function getpasswd() {
- // $flash = new DooFlashMessenger();
- // $flash->addMessage("This is just test message");
- // $this->data['messages'] = $flash->displayMessages();
- $gpemail = isset($_POST['email']) ? $_POST['email'] : NULL;
- if (!empty($gpemail) && isset($_POST['emailsubmit'])) {
- if ($this->checkMail($gpemail)) {
- $user = Doo::db()->find('users', array(
- 'select' => 'id,salt,username,useremail',
- 'where' => 'useremail=?',
- 'param' => array($gpemail),
- )
- );
- } else {
- $user = Doo::db()->find('users', array(
- 'select' => 'id,salt,username,useremail',
- 'where' => 'username=?',
- 'param' => array($gpemail)
- )
- );
- }
- if (!empty($user)) {
- // TODO:重新设置密码过程
- $newPasswdStr = $this->create_randomstr();
- $newPasswd = $this->create_password($newPasswdStr, $user[0]->salt);
- $usersObj = Doo::loadModel('users', TRUE);
- $usersObj->id = $user[0]->id;
- $usersObj->userpasswd = $newPasswd;
- if ($usersObj->update()) {
- $StrSubject = '纵横通行帐号提醒您:您的帐号修改了新密码';
- $StrContent = '<table style="width:100%">
- <tbody>
- <tr><td>
- <p>尊敬的' . $user[0]->username . ':</p>
- <p><br>您的通行帐号修改了新的密码(区分大小写):<b style="font-size:18px">' . $newPasswdStr . '</b></p>
- <p><br>请妥善保管您的新密码,及时登陆纵横通行证进行更新。</p>
- <p><br>您之所以收到这封邮件,是因为您曾经注册成为纵横通行帐号的用户。我们保证仅向您发送关于纵横通行帐号的电子邮件。我们尊重并保护您的隐私。</p>
- <p><br>纵横通行帐号与你共成长!</p>
- <p>' . date('Y年m月d日', time()) . '</p>
- <p>©2012 <a href="http://smartcost.com.cn">珠海纵横创新软件有限公司</a></p>
- </td></tr>
- </tbody>
- </table>';
- if ($this->SMail($user[0]->useremail, $StrSubject, $StrContent)) {
- $this->data['messages'] = '密码找回完成,请查收您的邮箱';
- header('refresh:2;url=' . Doo::conf()->APP_URL);
- $this->render($this->theme.'getPConfirm', $this->data, TRUE);
- exit();
- }
- }
- } else {
- $this->data['messages'] = '账号或邮箱有误,请重新输入';
- }
- }
- if(isset($_POST['mobilesubmit'])){
- if($this->checkSmsCode($_POST['zhmobile'],$_POST['zhsmscode'])){
- $user = Doo::db()->find('users', array(
- 'select' => 'id,salt,username,mobile',
- 'where' => 'mobile=?',
- 'param' => array($_POST['zhmobile'])
- )
- );
- if(!empty($user)){
- // TODO:重新设置密码过程
- $newPasswdStr = $_POST['password'];
- $newPasswd = $this->create_password($newPasswdStr, $user[0]->salt);
- $usersObj = Doo::loadModel('users', TRUE);
- $usersObj->id = $user[0]->id;
- $usersObj->userpasswd = $newPasswd;
- if ($usersObj->update()) {
- return Doo::conf()->APP_URL . 'notic/repwdmobile';
- exit();
- }else{
- $this->data['messages2'] = '新密码有误,请重新输入';
- }
- } else {
- $this->data['messages2'] = '手机号有误,请重新输入';
- }
- }else{
- $this->data['messages2'] = '验证码过期或不一致,请重新获取';
- }
- }
- $this->data['messages'] = isset($this->data['messages']) ? $this->data['messages'] : NULL;
- $this->data['messages2'] = isset($this->data['messages2']) ? $this->data['messages2'] : NULL;
- $this->render($this->theme.'getPassword', $this->data);
- }
- function ActEmail() {
- $session = Doo::session("sso");
- if (empty($session->user['id'])) {
- return Doo::conf()->APP_URL . 'error/loginFail';
- }
- if (empty($this->params['AuthStr'])) {
- return Doo::conf()->APP_URL . 'error/actemail';
- }
- $StrEncode = $this->authcode(base64_decode($this->params['AuthStr']), 'DECODE');
- if (empty($StrEncode))
- return Doo::conf()->APP_URL . 'error/actemail';
- if (!empty($session->user['status'])) {
- if (empty($session->user['status'])) {
- $this->data['name'] = $session->user['username'];
- $this->data['rootUrl'] = Doo::conf()->APP_URL;
- $this->render($this->theme.'success', $this->data);
- exit();
- }
- list($userid, $userstatus, $uemail, $timetemp) = explode('|', $StrEncode);
- if ($session->user['email'] != $uemail) {
- return Doo::conf()->APP_URL . 'error/actemail';
- }
- if ((time() - $timetemp) > 86400) {
- return Doo::conf()->APP_URL . 'error/actemail';
- }
- if (empty($userstatus)) {
- return Doo::conf()->APP_URL . 'error/actemail';
- }
- if ($userid != $session->user['id']) {
- return Doo::conf()->APP_URL . 'error/actemail';
- }
- Doo::loadModel('users');
- $objuser = new Users();
- $objuser->actstate = 0;
- $RetValue = $objuser->update(array('where' => 'id=' . $session->user['id']));
- if ($RetValue)
- $session->user['status'] = null;
- }
- $this->data['name'] = $session->user['username'];
- $this->data['rootUrl'] = Doo::conf()->APP_URL;
- $this->render($this->theme.'success', $this->data);
- }
- function activeUserDo() {
- $accode = $this->params['AuthStr'];
- if (empty($accode)) {
- return Doo::conf()->APP_URL . 'error/actUserError';
- }
- // 检测账号激活状态
- Doo::loadModel('userswitch');
- $userswitch = new UserSwitch();
- $usArray = $userswitch->getOne(array('where' => 'actcode=?', 'param' => array($accode), 'asArray' => TRUE));
- // $checkActCode = md5($usArray['uid'] . $usArray['rndcode']);
- if (!empty($usArray)) {
- if (!self::isUserActive($usArray['uid'])) {
- $userswitch->actime = time();
- $userswitch->update(array('where' => 'uid=?', 'param' => array($usArray['uid'])));
- Doo::loadModel('users');
- $user = new Users();
- $name = $user->getOne(array('select' => 'username,useremail', 'where' => 'id=?', 'param' => array($usArray['uid']), 'asArray' => TRUE));
- } else {
- return Doo::conf()->APP_URL . 'error/actived';
- }
- } else {
- return Doo::conf()->APP_URL . 'error/actUserError';
- }
- $this->data['name'] = $name['username'];
- $this->data['email'] = $name['useremail'];
- $this->render($this->theme.'success', $this->data);
- }
- function CheckNewEMail() {
- // ini_set('display_errors', on);
- $session = Doo::session("sso");
- if (empty($session->user['id'])) {
- return Doo::conf()->APP_URL . 'error/loginFail';
- }
- if (empty($session->user['userquestion'])) {
- return Doo::conf()->APP_URL . 'safe';
- }
- $password = isset($_POST['password']) ? $_POST['password'] : NULL;
- $email = isset($_POST['email']) ? $_POST['email'] : NULL;
- if (!empty($email) && !empty($password) && $this->checkMail($email)) {
- if ($session->user['email'] == $_POST['email']) {
- $this->data['message'] = '邮箱已被注册';
- } else {
- if (!$this->checkExsitmail($email)) {
- $this->data['message'] = '请尝试其他邮箱';
- exit;
- }
- if ($session->user['password'] != $this->create_password($_POST['password'], $session->user['salt'])) {
- $this->data['message'] = '请重新确认您输入的密码';
- exit;
- }
- if ($this->sendmail($session->user['id'] . '|' . $_POST['email'] . '|' . time(), $_POST['email'])) {
- $this->data['email'] = $_POST['email'];
- $this->render($this->theme.'changeMail2', $this->data, TRUE);
- die();
- } else {
- $this->data['message'] = '发送失败,请联系管理员~';
- }
- }
- }
- $this->data['message'] = isset($this->data['message']) ? $this->data['message'] : NULL;
- $this->data['email'] = $session->user['email'];
- $this->data['name'] = $session->user['username'];
- $this->render($this->theme.'changeMail', $this->data, TRUE);
- }
- function CheckNewMobile() {
- // ini_set('display_errors', on);
- $session = Doo::session("sso");
- if (empty($session->user['id'])) {
- return Doo::conf()->APP_URL . 'error/loginFail';
- }
- $password = isset($_POST['password']) ? $_POST['password'] : NULL;
- $mobile = isset($_POST['zhmobile']) ? $_POST['zhmobile'] : NULL;
- $code = isset($_POST['zhsmscode']) ? $_POST['zhsmscode'] : NULL;
- if (!empty($mobile) && !empty($password) && !empty($code) && $this->checkMobile($mobile)) {
- if ($session->user['mobile'] == $_POST['zhmobile']) {
- $this->data['message'] = '该手机号码已被注册';
- return Doo::conf()->APP_URL . 'error/hadmobile';
- exit;
- } else {
- if (!$this->checkExsitMobile($mobile)) {
- $this->data['message'] = '请尝试其他手机号';
- return Doo::conf()->APP_URL . 'error/hadmobile';
- exit;
- }
- if ($session->user['password'] != $this->create_password($_POST['password'], $session->user['salt'])) {
- $this->data['message'] = '请重新确认您输入的密码';
- return Doo::conf()->APP_URL . 'error/mima';
- exit;
- }
- if(!$this->checkSmsCode($mobile,$code)){
- $this->data['message'] = '验证码过期或不一致,请重新获取';
- return Doo::conf()->APP_URL . 'error/mobile';
- exit();
- }
- Doo::loadModel('users');
- $objuser = new Users();
- $objuser->mobile = $mobile;
- $RetValue = $objuser->update(array('where' => 'id=' . $session->user['id']));
- if ($RetValue){
- $session->user['mobile'] = $mobile;
- $this->data['mobile'] = $mobile;
- $this->render($this->theme.'changeMobile2', $this->data, TRUE);
- die();
- }else{
- $this->data['message'] = '修改失败,请重试';
- return Doo::conf()->APP_URL . 'error';
- exit;
- }
- }
- }
- $this->data['message'] = isset($this->data['message']) ? $this->data['message'] : NULL;
- $this->data['mobile'] = $session->user['mobile'];
- $this->data['name'] = $session->user['username'];
- $this->render($this->theme.'changeMobile', $this->data, TRUE);
- }
- function AddMail(){
- $session = Doo::session("sso");
- if (empty($session->user['id'])) {
- return Doo::conf()->APP_URL . 'error/loginFail';
- }
- if(!empty($_POST['email']) && !empty($_POST['password'])){
- if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
- $this->data['message'] = '邮箱格式出错';
- return Doo::conf()->APP_URL . 'error/erroremail';
- exit;
- }
- if (!$this->checkExsitmail($_POST['email'])) {
- $this->data['message'] = '邮箱已被注册';
- return Doo::conf()->APP_URL . 'error/userdemail';
- exit;
- }
- if ($session->user['password'] != $this->create_password($_POST['password'], $session->user['salt'])) {
- $this->data['message'] = '请重新确认您输入的密码';
- return Doo::conf()->APP_URL . 'error/mima';
- exit;
- }
- $userquestion = htmlspecialchars($_POST['zhq']);
- $defquestion = addslashes(htmlspecialchars($_POST['defq']));
- $useranswer = addslashes(htmlspecialchars($_POST['zhanswer']));
- Doo::loadModel('users');
- $users = new Users();
- $users->useremail = $_POST['email'];
- $users->userquestion = $userquestion;
- $users->defquestion = $defquestion;
- $users->useranswer = $useranswer;
- $RetValue = $users->update(array('where' => 'id=' . $session->user['id']));
- // 新注册用户加入待激活列表
- $rndcode = $this->create_randomstr();
- $acode = md5($session->user['id'] . $rndcode);
- Doo::loadModel('userswitch');
- $UserSwitch = new UserSwitch();
- $UserSwitch->userAdd($session->user['id'], $acode, $rndcode);
- if ($RetValue){
- $session->user['defquestion'] = $defquestion;
- $session->user['userquestion'] = $userquestion;
- $session->user['answer'] = $useranswer;
- $session->user['email'] = $_POST['email'];
- }
- $StrSubject = '纵横通行帐号-请激活您的帐号';
- $StrContent = '<table style="width:100%">
- <tbody>
- <tr><td>
- <p>感谢您注册成为纵横通行帐号的会员。在使用我们提供的服务之前,请点击以下链接,或将以下链接复制到浏览器的地址栏中打开,以激活您的帐户:</p>
- <p style="width:600px"><br><a href="' . Doo::conf()->APP_URL . 'actuser/' . $acode . '">' . Doo::conf()->APP_URL . 'actuser/' . $acode . '</a></p>
- <p><br>您之所以收到这封邮件,是因为您曾经注册成为纵横通行帐号的用户。我们保证仅向您发送关于纵横通行帐号的电子邮件。我们尊重并保护您的隐私。</p>
- <p><br>纵横通行帐号与你共成长!</p>
- <p>' . date('Y年m月d日', time()) . '</p>
- <p>©2012 <a href="http://smartcost.com.cn">珠海纵横创新软件有限公司</a></p>
- </td></tr>
- </tbody>
- </table>';
- @$this->SMail($_POST['email'], $StrSubject, $StrContent);
- $this->data['email'] = $_POST['email'];
- $this->render($this->theme.'changeMail2', $this->data, TRUE);
- die();
- }
- $this->data['name'] = $session->user['username'];
- $this->data['message'] = isset($this->data['message']) ? $this->data['message'] : NULL;
- $this->render($this->theme.'addMail', $this->data, TRUE);
- }
- function AddMobile(){
- $session = Doo::session("sso");
- if (empty($session->user['id'])) {
- return Doo::conf()->APP_URL . 'error/loginFail';
- }
- $password = isset($_POST['password']) ? $_POST['password'] : NULL;
- $mobile = isset($_POST['zhmobile']) ? $_POST['zhmobile'] : NULL;
- $code = isset($_POST['zhsmscode']) ? $_POST['zhsmscode'] : NULL;
- if (!empty($mobile) && !empty($password) && !empty($code) && $this->checkMobile($mobile)) {
- if ($session->user['mobile'] == $_POST['zhmobile']) {
- $this->data['message'] = '该手机号码已被注册';
- return Doo::conf()->APP_URL . 'error/hadmobile';
- exit;
- } else {
- if (!$this->checkExsitMobile($mobile)) {
- $this->data['message'] = '请尝试其他手机号';
- return Doo::conf()->APP_URL . 'error/hadmobile';
- exit;
- }
- if ($session->user['password'] != $this->create_password($_POST['password'], $session->user['salt'])) {
- $this->data['message'] = '请重新确认您输入的密码';
- return Doo::conf()->APP_URL . 'error/mima';
- exit;
- }
- if(!$this->checkSmsCode($mobile,$code)){
- $this->data['message'] = '验证码过期或不一致,请重新获取';
- return Doo::conf()->APP_URL . 'error/mobile';
- exit();
- }
- Doo::loadModel('users');
- $objuser = new Users();
- $objuser->mobile = $mobile;
- $RetValue = $objuser->update(array('where' => 'id=' . $session->user['id']));
- if ($RetValue){
- $session->user['mobile'] = $mobile;
- // $this->data['mobile'] = $mobile;
- return Doo::conf()->APP_URL . 'notic/addmobile';
- // $this->render($this->theme.'addMobile2', $this->data, TRUE);
- die();
- }else{
- $this->data['message'] = '修改失败,请重试';
- return Doo::conf()->APP_URL . 'error';
- exit;
- }
- }
- }
- $this->data['name'] = $session->user['username'];
- $this->data['message'] = isset($this->data['message']) ? $this->data['message'] : NULL;
- $this->render($this->theme.'addMobile', $this->data, TRUE);
- }
- // Email发送函数
- function sendmail($StrEncodeAuth, $toemail) {
- Doo::loadClass('class.phpmailer');
- $mail = new PHPMailer();
- $mail->From = "websupport@smartcost.com.cn"; //发送邮箱全名
- $mail->FromName = "=?UTF-8?B?" . base64_encode("纵横知道·通行证") . "?="; //发送人昵称
- $mail->Username = "postmaster@websupport.sendcloud.org"; //用户名
- $mail->Password = "cDO1GjtY1seH"; //密码
- $mail->CharSet = "UTF8";
- $mail->SMTPAuth = true;
- $mail->Host = "smtpcloud.sohu.com"; //邮件主机的smtp地址
- $mail->Port = 25;
- $mail->Mailer = "smtp";
- $mail->Subject = "=?UTF-8?B?" . base64_encode('纵横通行帐号-修改邮箱确认') . "?=";
- $tmplate = '
- <table style="width:100%">
- <tbody>
- <tr><td>
- <p>您对通行帐号进行了修改邮箱操作,请点击以下链接,或将以下链接复制到浏览器的地址栏中打开,以验证您的新邮箱:</p>
- <p style="width:600px"><br><a href="' . Doo::conf()->APP_URL . 'ChangEmail/' . base64_encode($this->authcode($StrEncodeAuth, 'ENCODE')) . '">' . Doo::conf()->APP_URL . 'ChangEmail/' . base64_encode($this->authcode($StrEncodeAuth, 'ENCODE')) . '</a></p>
- <p><br>您之所以收到这封邮件,是因为您曾经注册成为纵横通行帐号的用户。我们保证仅向您发送关于纵横通行帐号的电子邮件。我们尊重并保护您的隐私。</p>
- <p><br>纵横通行帐号与你共成长!</p>
- <p>' . date('Y年m月d日', time()) . '</p>
- <p>©2012 <a href="http://smartcost.com.cn">珠海纵横创新软件有限公司</a></p>
- </td></tr>
- </tbody>
- </table>';
- $mail->MsgHTML($tmplate);
- $mail->AddAddress($toemail);
- $mail->CharSet = "UTF-8";
- return $mail->Send();
- }
- // Email发送函数
- function SMail($toemail, $subject, $contents) {
- Doo::loadClass('class.phpmailer');
- $mail = new PHPMailer();
- $mail->From = "websupport@smartcost.com.cn"; //发送邮箱全名
- $mail->FromName = "=?UTF-8?B?" . base64_encode("纵横知道·通行证") . "?="; //发送人昵称
- $mail->Username = "postmaster@websupport.sendcloud.org"; //用户名
- $mail->Password = "cDO1GjtY1seH"; //密码
- $mail->CharSet = "UTF8";
- $mail->SMTPAuth = true;
- $mail->Host = "smtpcloud.sohu.com"; //邮件主机的smtp地址
- $mail->Mailer = "smtp";
- $mail->Port = 25;
- $mail->Subject = "=?UTF-8?B?" . base64_encode($subject) . "?=";
- $mail->MsgHTML($contents);
- $mail->AddAddress($toemail);
- $mail->CharSet = "UTF-8";
- return $mail->Send();
- }
- // 变更邮箱第二步
- function ChangEmail() {
- $session = Doo::session("sso");
- if (empty($session->user['id'])) {
- return Doo::conf()->APP_URL . 'error/loginFail';
- }
- if (empty($session->user['userquestion'])) {
- return Doo::conf()->APP_URL . 'safe';
- }
- $StrEncode = $this->authcode(base64_decode($this->params['AuthStr']), 'DECODE');
- if (empty($StrEncode))
- return Doo::conf()->APP_URL . 'error/actemail';
- list($userid, $useremail, $timetemp) = explode('|', $StrEncode);
- if ((time() - $timetemp) > 86400) {
- return Doo::conf()->APP_URL . 'error/actemail';
- }
- if (!$this->checkMail($useremail)) {
- return Doo::conf()->APP_URL . 'error/actemail';
- }
- if ($userid != $session->user['id']) {
- return Doo::conf()->APP_URL . 'error/actemail';
- }
- if ($useremail == $session->user['email']) {
- return Doo::conf()->APP_URL . 'error/actemail';
- }
- Doo::loadModel('users');
- $objuser = new Users();
- $objuser->useremail = $useremail;
- $RetValue = $objuser->update(array('where' => 'id=' . $session->user['id']));
- if ($RetValue)
- $session->user['email'] = $useremail;
- $this->data['email'] = $useremail;
- $this->render($this->theme.'changeMail3', $this->data);
- }
- function secmail() {
- // TODO:切换新邮箱未发送此激活邮箱的激活邮件
- // TODO:检测已存在邮箱与
- $session = Doo::session("sso");
- if ($session->user['status'] == 0) {
- return Doo::conf()->APP_URL;
- }
- if (!empty($_POST['sendsubmit'])) {
- $StrSubject = '纵横通行帐号-修改邮箱确认';
- $StrContent = '<table style="width:100%">
- <tbody>
- <tr>
- <td>
- <p>您对通行帐号进行了修改邮箱操作,请点击以下链接,或将以下链接复制到浏览器的地址栏中打开,以验证您的新邮箱:</p>
- <p style="width:600px"><br><a href="' . Doo::conf()->APP_URL . 'ActEmail/' . base64_encode($this->authcode($session->user['id'] . '|' . $session->user['status'] . '|' . $session->user['email'] . '|' . time(), 'ENCODE')) . '">' . Doo::conf()->APP_URL . 'ActEmail/' . base64_encode($this->authcode($session->user['id'] . '|' . $session->user['status'] . '|' . $session->user['email'] . '|' . time(), 'ENCODE')) . '</a></p>
- <p><br>您之所以收到这封邮件,是因为您曾经注册成为纵横通行帐号的用户。我们保证仅向您发送关于纵横通行帐号的电子邮件。我们尊重并保护您的隐私。</p>
- <p><br>纵横通行帐号与你共成长!</p>
- <p>' . date('Y年m月d日', time()) . '</p>
- <p>©2012 <a href="http://smartcost.com.cn">珠海纵横创新软件有限公司</a></p>
- </td>
- </tr>
- </tbody>
- </table>';
- $this->SMail($session->user['email'], $StrSubject, $StrContent);
- // return Doo::conf()->APP_URL . 'sec';
- }
- if (!empty($_POST['email']))
- if ($this->checkMail($_POST['email']) && !empty($_POST['email']) && ($_POST['email'] != $session->user['email'])) {
- Doo::loadModel('users');
- $objuser = new Users();
- $objuser->useremail = $_POST['email'];
- $RetValue = $objuser->update(array('where' => 'id=' . $session->user['id']));
- if ($RetValue)
- $session->user['email'] = $_POST['email'];
- $StrSubject = '纵横通行帐号-修改邮箱确认';
- $StrContent = '<table style="width:100%">
- <tbody>
- <tr>
- <td>
- <p>您对通行帐号进行了修改邮箱操作,请点击以下链接,或将以下链接复制到浏览器的地址栏中打开,以验证您的新邮箱:</p>
- <p style="width:600px"><br><a href="' . Doo::conf()->APP_URL . 'ActEmail/' . base64_encode($this->authcode($session->user['id'] . '|' . $session->user['status'] . '|' . $session->user['email'] . '|' . time(), 'ENCODE')) . '">' . Doo::conf()->APP_URL . 'ActEmail/' . base64_encode($this->authcode($session->user['id'] . '|' . $session->user['status'] . '|' . $session->user['email'] . '|' . time(), 'ENCODE')) . '</a></p>
- <p><br>您之所以收到这封邮件,是因为您曾经注册成为纵横通行帐号的用户。我们保证仅向您发送关于纵横通行帐号的电子邮件。我们尊重并保护您的隐私。</p>
- <p><br>纵横通行帐号与你共成长!</p>
- <p>' . date('Y年m月d日', time()) . '</p>
- <p>©2012 <a href="http://smartcost.com.cn">珠海纵横创新软件有限公司</a></p>
- </td>
- </tr>
- </tbody>
- </table>';
- if ($this->SMail($session->user['email'], $StrSubject, $StrContent)) {
- return Doo::conf()->APP_URL . 'sec';
- }
- }
- $this->data['email'] = isset($session->user['email']) ? $session->user['email'] : NULL;
- $this->render($this->theme.'register2', $this->data);
- }
- function profile() {
- $session = Doo::session("sso");
- if (!isset($session->user['id'])) {
- return Doo::conf()->APP_URL . 'error/loginFail';
- }
- if ($this->checkUserQuestion($session->user['id']) && (!isset($session->user['mobile']) && empty($session->user['mobile'])))
- return Doo::conf()->APP_URL . 'safe';
- if (!empty($_POST['sendsubmit'])) {
- if (self::isUserActive($session->user['id']))
- return Doo::conf()->APP_URL . 'error/actuser';
- Doo::loadModel('userswitch');
- $UserSwitch = new UserSwitch();
- $usArray = $UserSwitch->getOne(array('where' => 'uid=?', 'param' => array($session->user['id']), 'asArray' => TRUE));
- $StrSubject = '纵横通行帐号-请激活您的帐号';
- $StrContent = '<table style="width:100%">
- <tbody>
- <tr>
- <td>
- <p>感谢您注册成为纵横通行帐号的会员。在使用我们提供的服务之前,请点击以下链接,或将以下链接复制到浏览器的地址栏中打开,以激活您的帐户:</p>
- <p style="width:600px"><br><a href="' . Doo::conf()->APP_URL . 'actuser/' . $usArray['actcode'] . '">' . Doo::conf()->APP_URL . 'actuser/' . $usArray['actcode'] . '</a></p>
- <p><br>您之所以收到这封邮件,是因为您曾经注册成为纵横通行帐号的用户。我们保证仅向您发送关于纵横通行帐号的电子邮件。我们尊重并保护您的隐私。</p>
- <p><br>纵横通行帐号与你共成长!</p>
- <p>' . date('Y年m月d日', time()) . '</p>
- <p>©2012 <a href="http://smartcost.com.cn">珠海纵横创新软件有限公司</a></p>
- </td>
- </tr>
- </tbody>
- </table>';
- if ($this->SMail($session->user['email'], $StrSubject, $StrContent)) {
- return Doo::conf()->APP_URL . 'error/isact';
- }
- }
- Doo::loadModel('users');
- $users = new Users();
- $valuebank = $users->getRowByUid($session->user['id']);
- $this->data['bank'] = isset($valuebank[0]['bank']) ? $valuebank[0]['bank'] : 0;
- $this->data['name'] = $session->user['username'];
- // $this->data['avatar'] = $this->url_exists($this->ps_getavatar($session->user['id'])) ? $this->ps_getavatar($session->user['id']) : Doo::conf()->APP_URL . 'global/img/avatra48.png';
- if(isset($session->user['id'])){
- $this->data['avatar'] = $this->ps_getavatar($session->user['id']);
- }else{
- $this->data['avatar'] = Doo::conf()->APP_URL . 'global/img/avatra48.png';
- }
- $this->data['regdate'] = $session->user['regdate'];
- $this->data['email'] = $session->user['email'];
- $this->data['mobile'] = $session->user['mobile'];
- // $this->data['status'] = $session->user['status'];
- $this->data['status'] = self::isUserActive($session->user['id']);
- $this->data['FUN'] = __FUNCTION__;
- $this->render($this->theme.'profile', $this->data, TRUE);
- }
- private function url_exists($url) {
- $h = get_headers($url);
- if (!$h || !isset($h[0]))
- return false;
- $status = $h[0];
- return preg_match("/.*200\s{1}OK/i", $status) ? true : false;
- }
- function chpasswd() {
- // TODO:变更密码后更新SESSION中数据
- $session = Doo::session("sso");
- if (empty($session->user['id'])) {
- return Doo::conf()->APP_URL . 'error/loginFail';
- }
- if (empty($session->user['userquestion']) && empty($session->user['mobile'])) {
- return Doo::conf()->APP_URL . 'safe';
- }
- $this->data['erroT']="";
- $this->data['erroTxt']='';
- $this->data['aerroT']="";
- $this->data['aerroTxt']='';
- $this->data['defquestion'] = null;
- $this->data['mobile'] = !empty($session->user['mobile']) ? $session->user['mobile'] : '';
- $this->data['userquestion'] = !empty($session->user['userquestion']) ? $session->user['userquestion'] : '';
- $this->data['name'] = $session->user['username'];
- if (!empty($session->user['defquestion']) || ($session->user['userquestion'] == 6))
- $this->data['defquestion'] = $session->user['defquestion'];
- if (!empty($session->user['userquestion']) && ($session->user['userquestion'] != 6))
- $this->data['defquestion'] = $this->QArray[$session->user['userquestion']];
- if (!empty($_POST['subchpwd'])) {
- if(isset($_POST['answer']) && !empty($_POST['answer'])){
- if($session->user['answer'] == $_POST['answer']){
- $action = 1;
- }else{
- $this->data['erroT']="";
- $this->data['erroTxt']='';
- $this->data['aerroT']="erroT";
- $this->data['aerroTxt']='<span for="oldpwd" generated="true" class="erroT" style="">输入的答案错误</span>';
- $this->render($this->theme.'changePassword', $this->data);die;
- }
- }elseif(isset($_POST['zhsmscode']) && !empty($_POST['zhsmscode'])){
- if($this->checkSmsCode($session->user['mobile'],$_POST['zhsmscode'])){
- $action = 2;
- }else{
- $this->data['erroT']="";
- $this->data['erroTxt']='';
- $this->data['aerroT']="erroT";
- $this->data['aerroTxt']='<span for="oldpwd" generated="true" class="erroT" style="">验证码过期或不一致,请重新获取</span>';
- $this->render($this->theme.'changePassword', $this->data);die;
- }
- }else{
- $this->data['erroT']="";
- $this->data['erroTxt']='';
- $this->data['aerroT']="erroT";
- $this->data['aerroTxt']='<span for="oldpwd" generated="true" class="erroT" style="">请输入密保答案或手机验证码</span>';
- $this->render($this->theme.'changePassword', $this->data);die;
- }
- if (($session->user['password'] == $this->create_password($_POST['oldpwd'], $session->user['salt']))) {
- Doo::loadModel('users');
- $objuser = new Users();
- // $objuser->id = $session->user['id'];
- $objuser->userpasswd = $this->create_password($_POST['newpwd'], $session->user['salt']);
- // $objuser->useranswer = $session->user['password'];
- // $AryUser[] = $objuser;
- $objuser->update(array('where' => 'useranswer=\'' . $session->user['answer'] . '\' and id=' . $session->user['id']));
- if($action == 1){
- $StrSubject = '纵横通行帐号提醒您:您的帐号修改了新密码';
- $StrContent = '<table style="width:100%">
- <tbody>
- <tr><td>
- <p>尊敬的' . $session->user['username'] . ':</p>
- <p><br>您的通行帐号修改了新的密码</p>
- <p><br>您之所以收到这封邮件,是因为您曾经注册成为纵横通行帐号的用户。我们保证仅向您发送关于纵横通行帐号的电子邮件。我们尊重并保护您的隐私。</p>
- <p><br>纵横通行帐号与你共成长!</p>
- <p>' . date('Y年m月d日', time()) . '</p>
- <p>©2012 <a href="http://smartcost.com.cn">珠海纵横创新软件有限公司</a></p>
- </td></tr>
- </tbody>
- </table>';
- $this->SMail($session->user['email'], $StrSubject, $StrContent);
- }elseif($action == 2){
- }
- setcookie(Doo::conf()->COOKIEPRE . 'auth');
- $session->user = array();
- return $this->logout('msgRelogin');
- }elseif($session->user['password'] != $this->create_password($_POST['oldpwd'], $session->user['salt'])){
- $this->data['erroT']="erroT";
- $this->data['erroTxt']='<span for="oldpwd" generated="true" class="erroT" style="">输入密码有误</span>';
- $this->data['aerroT']="";
- $this->data['aerroTxt']='';
- $this->render($this->theme.'changePassword', $this->data);die;
- }
- // echo $session->user['id'];
- }
- $this->render($this->theme.'changePassword', $this->data);
- }
- // 加密
- function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) {
- $ckey_length = 4;
- $key = md5($key != '' ? $key : Doo::conf()->AUTHKEY);
- $keya = md5(substr($key, 0, 16));
- $keyb = md5(substr($key, 16, 16));
- $keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length) : substr(md5(microtime()), -$ckey_length)) : '';
- $cryptkey = $keya . md5($keya . $keyc);
- $key_length = strlen($cryptkey);
- $string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0) . substr(md5($string . $keyb), 0, 16) . $string;
- $string_length = strlen($string);
- $result = '';
- $box = range(0, 255);
- $rndkey = array();
- for ($i = 0; $i <= 255; $i++) {
- $rndkey[$i] = ord($cryptkey[$i % $key_length]);
- }
- for ($j = $i = 0; $i < 256; $i++) {
- $j = ($j + $box[$i] + $rndkey[$i]) % 256;
- $tmp = $box[$i];
- $box[$i] = $box[$j];
- $box[$j] = $tmp;
- }
- for ($a = $j = $i = 0; $i < $string_length; $i++) {
- $a = ($a + 1) % 256;
- $j = ($j + $box[$a]) % 256;
- $tmp = $box[$a];
- $box[$a] = $box[$j];
- $box[$j] = $tmp;
- $result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));
- }
- if ($operation == 'DECODE') {
- if ((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26) . $keyb), 0, 16)) {
- return substr($result, 26);
- } else {
- return '';
- }
- } else {
- return $keyc . str_replace('=', '', base64_encode($result));
- }
- }
- /**
- * 管理登出
- */
- function logout($msg=null) {
- $session = Doo::session("sso");
- unset($session->user);
- session_destroy();
- setcookie(Doo::conf()->COOKIEPRE . 'auth', null, 0, '/', Doo::conf()->APP_URL, 0);
- setcookie(Doo::conf()->COOKIEPRE . '_userid', null, 0, '/', Doo::conf()->APP_URL, 0);
- setcookie(Doo::conf()->COOKIEPRE . '_username', null, 0, '/', Doo::conf()->APP_URL, 0);
- if(!empty($msg)){
- return Doo::conf()->APP_URL . 'notic/relogin';
- }else{
- return Doo::conf()->APP_URL . 'msg/logout';
- }
- }
- // 检测Email格式
- function checkMail($email) {
- //if (strlen($email) > 6 && preg_match('/^([\w-]+\.?)*\w+@[\w-]+\.[a-z]{2,6}$/', $email)) {
- if (filter_var($email, FILTER_VALIDATE_EMAIL)){
- return TRUE;
- } else {
- return FALSE;
- }
- }
- // 检测手机格式
- function checkMobile($mobile) {
- if(preg_match("/^1[34578]{1}\d{9}$/",$mobile)){
- return TRUE;
- } else {
- return FALSE;
- }
- }
- function checkhadmobile() {
- // TODO:检测手机号是否已注册通行账号
- if (!empty($_POST['zhmobile'])){
- }
- }
- function checkuser() {
- if (!empty($_POST['zhemail']))
- $checkemail = $_POST['zhemail'];
- if (!empty($_POST['zhuser']))
- $checkuser = $_POST['zhuser'];
- if(!empty($_POST['zhmobile']))
- $checkmobile = $_POST['zhmobile'];
- if(!empty($_POST['zhsmscode']))
- $checkcode = $_POST['zhsmscode'];
- if (!empty($_POST['zhmuser']))
- $checkuser = $_POST['zhmuser'];
- if (!empty($_POST['password']))
- $checkpassword = $_POST['password'];
- if (!empty($checkemail))
- if ($this->checkMail($checkemail)) {
- $user = Doo::db()->find('users', array(
- 'select' => 'id',
- 'where' => 'useremail=?',
- 'param' => array($checkemail),
- )
- );
- if (empty($user)) {
- exit('true');
- } else {
- exit('false');
- }
- }
- if (!empty($checkuser))
- if ($checkuser) {
- // TODO:判断是否符合账号规则
- $user = Doo::db()->find('users', array(
- 'select' => 'id',
- 'where' => 'username=?',
- 'param' => array($checkuser),
- )
- );
- if (empty($user)) {
- exit('true');
- } else {
- exit('false');
- }
- }
- if(!empty($checkcode) && !empty($checkmobile)){
- //TODO:检测验证码
- if($checkmobile && $checkcode) {
- $now = time();
- $old = $now-1800;
- Doo::loadModel('mobilecode');
- $mobilecode = new mobilecode();
- $code = $mobilecode->find(array(
- 'select' => 'id',
- 'where' => 'mobile='.$checkmobile.' and code='.$checkcode.' and time between '.$old.' and '.$now,
- 'desc' => 'id',
- 'limit' => 1,
- 'asArray' => true
- ));
- if ($code) {
- exit('true');
- } else {
- exit('false');
- }
- }
- }
- if(!empty($checkmobile)){
- if($checkmobile) {
- // TODO:判断是否符合电话并且未注册
- $user = Doo::db()->find('users', array(
- 'select' => 'id',
- 'where' => 'mobile=?',
- 'param' => array($checkmobile),
- )
- );
- if (empty($user)) {
- exit('true');
- } else {
- exit('false');
- }
- }
- }
- if(!empty($checkpassword)){
- if($checkpassword) {
- $session = Doo::session("sso");
- if ($session->user['password'] == $this->create_password($checkpassword, $session->user['salt'])) {
- exit('true');
- }else{
- exit('false');
- }
- }
- }
- }
- function checkphone(){
- if(!empty($_POST['zhmobile']))
- $checkmobile = $_POST['zhmobile'];
- if(!empty($checkmobile)){
- if($checkmobile) {
- // TODO:判断是否符合电话并且已注册
- $user = Doo::db()->find('users', array(
- 'select' => 'id',
- 'where' => 'mobile=?',
- 'param' => array($checkmobile),
- )
- );
- if (!empty($user)) {
- exit('true');
- } else {
- exit('false');
- }
- }
- }
- }
- public function checkemail() {
- //TODO:其实检测唯一性就已经检测了当前用户Email
- $session = Doo::session("sso");
- if (empty($session->user['id'])) {
- return Doo::conf()->APP_URL . 'error/loginFail';
- }
- $newEmail = isset($_POST['email']) ? $_POST['email'] : NULL;
- if (!empty($newEmail) && $this->checkMail($newEmail)) {
- $session = Doo::session("sso");
- if ($newEmail == $session->user['email']) {
- exit('false');
- }
- if (!$this->checkExsitmail($newEmail)) {
- exit('false');
- }
- }
- exit('true');
- }
- public function alipay(){
- $session = Doo::session("sso");
- if (empty($session->user['id'])) {
- return Doo::conf()->APP_URL . 'error/loginFail';
- }
- if (!empty($_POST['remark2'])) {
- Doo::loadModel('m/sale');
- $saleObj = new Sale();
- $rowNumber = $saleObj->count(array('where'=>'promocode=?','param' => array($_POST['remark2']),'asArray'=>TRUE));
- if($rowNumber){
- $this->data['remark2'] = $_POST['remark2'];
- }else{
- $this->data['remark2'] = NULL;
- }
- } else {
- $this->data['remark2'] = NULL;
- }
-
- require_once(Doo::conf()->SITE_PATH."protected/class/alipay/alipay.config.php");
- require_once(Doo::conf()->SITE_PATH."protected/class/alipay/lib/alipay_submit.class.php");
-
- $alipaySubmit = new AlipaySubmit($alipay_config);
-
- $payment_type = "1";
- $notify_url = Doo::conf()->APP_URL."api/smartcost/sso/notify_url.php";
- $return_url = Doo::conf()->APP_URL."api/smartcost/sso/return_url.php";
-
- //商户订单号
- $sn=$this->create_sn();
- $out_trade_no = $sn;
- $subject = '纵横通行账户充值';
- $extra_common_param=$this->data['remark2']; //用户自定义回传参数
- //付款金额
- $p_amount=trim($_POST['p_amount']);
- $total_fee = $p_amount;
- $body = '';
- $show_url = '';
-
- //防钓鱼时间戳
- $anti_phishing_key = $alipaySubmit->query_timestamp();
- $exter_invoke_ip = $this->clientIP();
-
-
- //构造要请求的参数数组,无需改动
- $parameter = array(
- "service" => "create_direct_pay_by_user",
- "partner" => trim($alipay_config['partner']),
- "seller_email" => trim($alipay_config['seller_email']),
- "payment_type" => $payment_type,
- "notify_url" => $notify_url,
- "return_url" => $return_url,
- "out_trade_no" => $out_trade_no,
- "subject" => $subject,
- "total_fee" => $total_fee,
- "body" => $body,
- "show_url" => $show_url,
- "anti_phishing_key" => $anti_phishing_key,
- "exter_invoke_ip" => $exter_invoke_ip,
- "_input_charset" => trim(strtolower($alipay_config['input_charset'])),
- "extra_common_param"=> $extra_common_param
- );
-
- //建立请求
-
- $html_text = $alipaySubmit->buildRequestForm($parameter,"get", "加载中");
-
- // 生成订单
- Doo::loadModel('pay');
- $pay = new Pay();
- $array = array('trade_sn' => $sn,
- 'userid' => $session->user['id'],
- 'username' => $session->user['username'],
- 'telephone' => $this->data['remark2'],
- 'money' => $p_amount,
- 'addtime' => time(),
- 'usernote' => $session->user['username'] . '[' . $sn . ']',
- 'pay_type' => 'alipay',
- 'payment' => '支付宝',
- 'ip' => $this->clientIP(),
- 'status' => 'unpay'
- );
- $pay->add($array);
- header("Content-type: text/html; charset=utf-8");
- echo $html_text;
- }
-
- function returnAlipay(){
- $session = Doo::session("sso");
- if (empty($session->user['id'])) {
- return Doo::conf()->APP_URL . 'error/loginFail';
- }
- require_once(Doo::conf()->SITE_PATH."protected/class/alipay/alipay.config.php");
- require_once(Doo::conf()->SITE_PATH."protected/class/alipay/lib/alipay_notify.class.php");
- $alipayNotify = new AlipayNotify($alipay_config);
- $verify_result = $alipayNotify->verifyReturn();
- if($verify_result) {
- $v_oid = $_GET['out_trade_no']; //商户订单号
- $trade_no = $_GET['trade_no']; //支付宝交易号
- $trade_status = $_GET['trade_status']; //交易状态
- $v_amount=$_GET['total_fee']; //交易金额
- $remark2 = $_GET['extra_common_param'];
-
- if($_GET['trade_status'] == 'TRADE_FINISHED' || $_GET['trade_status'] == 'TRADE_SUCCESS') {
-
- $pay = Doo::loadModel('pay', TRUE);
- $callbackData = $pay->getRowsBySN($v_oid);
- if ($callbackData['status'] == 'unpay') {
- if ($callbackData['money'] == $v_amount) {
- $pay->trade_sn = $v_oid;
- $comment = $pay->find(array('limit' => 1, 'select' => 'id', 'asArray' => TRUE));
- $pay->id = $comment['id'];
- $pay->paytime = time();
- $pay->status = 'succ';
- $succvalue = $pay->update();
- if ($succvalue) {
- // 增加销售人员提成与折扣
- if(!empty($remark2)&&($v_amount>=$this->cashlimit)){
- $salerGet = floor($v_amount*$this->salelimit); // 计算销售人员获得的提成
- $v_amount += floor($v_amount*$this->perlimit); // 计算输入优惠码的最终充值金额
- Doo::loadModel('m/sale');
- $saleObj = new Sale();
- $saleObj->total = new DooDbExpression('total+' . $salerGet);
- $saleObj->update(array('where'=>'promocode=?','param'=>array($remark2)));
- }
- Doo::loadModel('users');
- $users = new Users();
- $moneyValue = $users->updateBank($callbackData['userid'], $v_amount);
- if ($moneyValue) {
- $this->data['msg'] = '充值完成';
- header('refresh:3;url=/');
- }
- //发送邮件
- include ('./protected/class/email_templete.file.php');
-
- //获取文档 $callbackData['userid']
- $userinfo=$users->getRowByUid( $callbackData['userid']);
- //$v_amount , $v_oid
- $templete_email=$this->format_email_content($email_file['RECHARGE_SUCCESS'], "RECHARGE_SUCCESS",$v_amount,$userinfo,$v_oid);
-
- //$templete_email['toemail']="cpthought@vip.qq.com";
- if(filter_var($templete_email['toemail'], FILTER_VALIDATE_EMAIL))
- $this->_mail($templete_email['templete'],$templete_email['subject'],$templete_email['toemail']);
- }
- }
- } else {
- $this->data['msg'] = '已充值完毕,操作无效';
- header('refresh:3;url=/');
- }
- }
- }else {
- $this->data['msg'] = '充值故障';
- header('refresh:3;url=/');
- }
- $this->render($this->theme.'recharge_msg', $this->data, TRUE);
- }
-
- function notifyAlipay(){
- require_once(Doo::conf()->SITE_PATH."protected/class/alipay/alipay.config.php");
- require_once(Doo::conf()->SITE_PATH."protected/class/alipay/lib/alipay_notify.class.php");
- $alipayNotify = new AlipayNotify($alipay_config);
- $verify_result = $alipayNotify->verifyNotify();
- if($verify_result) {
- $v_oid = $_POST['out_trade_no']; //商户订单号
- $trade_no = $_POST['trade_no']; //支付宝交易号
- $trade_status = $_POST['trade_status']; //交易状态
- $v_amount=$_POST['total_fee']; //交易金额
- $remark2 = $_POST['extra_common_param'];
-
- if($_POST['trade_status'] == 'TRADE_FINISHED' || $_POST['trade_status'] == 'TRADE_SUCCESS') {
-
- $pay = Doo::loadModel('pay', TRUE);
- $callbackData = $pay->getRowsBySN($v_oid);
- if ($callbackData['status'] == 'unpay') {
- if ($callbackData['money'] == $v_amount) {
- $pay->trade_sn = $v_oid;
- $comment = $pay->find(array('limit' => 1, 'select' => 'id', 'asArray' => TRUE));
- $pay->id = $comment['id'];
- $pay->paytime = time();
- $pay->status = 'succ';
- $succvalue = $pay->update();
- if ($succvalue) {
- // 增加销售人员提成与折扣
- if(!empty($remark2)&&($v_amount>=$this->cashlimit)){
- $salerGet = floor($v_amount*$this->salelimit); // 计算销售人员获得的提成
- $v_amount += floor($v_amount*$this->perlimit); // 计算输入优惠码的最终充值金额
- Doo::loadModel('m/sale');
- $saleObj = new Sale();
- $saleObj->total = new DooDbExpression('total+' . $salerGet);
- $saleObj->update(array('where'=>'promocode=?','param'=>array($remark2)));
- }
- Doo::loadModel('users');
- $users = new Users();
- $moneyValue = $users->updateBank($callbackData['userid'], $v_amount);
- if ($moneyValue) {
- Doo::loadModel('income_pay');
- $incomepay = new IncomePay();
- $incomepay->uid = $callbackData['userid'];
- $incomepay->money = $v_amount;
- $incomepay->type = 1;
- $incomepay->comefrom = '支付宝';
- $incomepay->addtime = time();
- $incomepay->insert();
- echo "success"; die;
- }
- //发送邮件
- include ('./protected/class/email_templete.file.php');
-
- //获取文档 $callbackData['userid']
- $userinfo=$users->getRowByUid( $callbackData['userid']);
- //$v_amount , $v_oid
- $templete_email=$this->format_email_content($email_file['RECHARGE_SUCCESS'], "RECHARGE_SUCCESS",$v_amount,$userinfo,$v_oid);
-
- //$templete_email['toemail']="cpthought@vip.qq.com";
- if(filter_var($templete_email['toemail'], FILTER_VALIDATE_EMAIL))
- $this->_mail($templete_email['templete'],$templete_email['subject'],$templete_email['toemail']);
- }
- }
- }
- }
- echo "success";
- }else {
- echo "fail";
- }
- }
-
- public function deposit2() {
- $session = Doo::session("sso");
- if (empty($session->user['id'])) {
- return Doo::conf()->APP_URL . 'error/loginFail';
- }
- $sn = $this->create_sn();
- if (isset($_POST['isubmit']) && isset($_POST['ibank']) && is_numeric($_POST['ibank'])) {
- $money = intval($_POST['ibank']);
- // if (preg_match('/^1[3458][0-9]{9}$/', $_POST['remark2'])) {
- if (!empty($_POST['remark2'])) {
- Doo::loadModel('m/sale');
- $saleObj = new Sale();
- $rowNumber = $saleObj->count(array('where'=>'promocode=?','param' => array($_POST['remark2']),'asArray'=>TRUE));
- if($rowNumber){
- $this->data['remark2'] = $_POST['remark2'];
- }else{
- $this->data['remark2'] = NULL;
- }
- } else {
- $this->data['remark2'] = NULL;
- }
- Doo::loadModel('pay');
- $pay = new Pay();
- $array = array('trade_sn' => $sn, 'userid' => $session->user['id'], 'username' => $session->user['username'], 'money' => $money, 'telephone' => $this->data['remark2'], 'addtime' => time(), 'pay_type' => 'offline', 'payment' => '银行转账', 'ip' => $this->clientIP(), 'status' => 'waitting');
- $pay->add($array);
- $this->data['money'] = $money;
- // header('refresh:2;url=' . Doo::conf()->APP_URL . 'deposit');
- $this->render($this->theme.'bankConfirm', $this->data, TRUE);
- die();
- }
- Doo::loadModel('users');
- $users = new Users();
- $valuebank = $users->getRowByUid($session->user['id']);
- $this->data['bank'] = isset($valuebank[0]['bank']) ? $valuebank[0]['bank'] : 0;
- $this->data['sn'] = $sn;
- $this->data['usercat'] = NULL;
- $this->data['extmenu'] = 0;
- $this->data['FUN'] = __FUNCTION__;
- if($session->user['id']){
- $this->data['avatar'] = $this->ps_getavatar($session->user['id']);
- }else{
- $this->data['avatar'] = Doo::conf()->APP_URL . 'global/img/avatra48.png';
- }
- $this->data['name'] = $session->user['username'];
- $this->render($this->theme.'recharge', $this->data, TRUE);
- }
- public function deposit3() {
- $session = Doo::session("sso");
- if (empty($session->user['id'])) {
- return Doo::conf()->APP_URL . 'error/loginFail';
- }
- $bankArray = array(
- /*'1025' => 'https://pay3.chinabank.com.cn/i/bank_gsyh2.gif',
- '308' => 'https://pay3.chinabank.com.cn/i/bank_zsyh2.gif',
- '105' => 'https://pay3.chinabank.com.cn/i/bank_jsyh2.gif',
- '103' => 'https://pay3.chinabank.com.cn/i/bank_nyyh2.gif',
- '104' => 'https://pay3.chinabank.com.cn/i/bank_zgyh2.gif',
- '301' => 'https://pay3.chinabank.com.cn/i/bank_jtyh.gif',
- '311' => 'https://pay3.chinabank.com.cn/i/bank_hxyh.gif',
- '309' => 'https://pay3.chinabank.com.cn/i/bank_xyyh.gif',
- '305' => 'https://pay3.chinabank.com.cn/i/bank_msyh2.gif',
- '306' => 'https://pay3.chinabank.com.cn/i/bank_gdfz.gif',
- '307' => 'https://pay3.chinabank.com.cn/i/bank_szfz.gif',
- '314' => 'https://pay3.chinabank.com.cn/i/bank_pfyh.gif',
- '313' => 'https://pay3.chinabank.com.cn/i/bank_zxyh.gif',
- '312' => 'https://pay3.chinabank.com.cn/i/bank_gdyh.gif',
- '316' => 'https://pay3.chinabank.com.cn/i/bank_njyh.gif',
- '317' => 'https://pay3.chinabank.com.cn/i/bank_bhyh.gif',
- '3279' => 'https://pay3.chinabank.com.cn/i/bank_psbc.gif',
- '327' => 'https://pay3.chinabank.com.cn/i/bank_unionpay.gif'*/
- '1025'=>'http://bank-logo.qiniudn.com/bank_gsyh2.gif',
- '308'=>'http://bank-logo.qiniudn.com/bank_zsyh2.gif',
- '105'=>'http://bank-logo.qiniudn.com/bank_jsyh2.gif',
- '103'=>'http://bank-logo.qiniudn.com/bank_nyyh2.gif',
- '104'=>'http://bank-logo.qiniudn.com/bank_zgyh2.gif',
- '301'=>'http://bank-logo.qiniudn.com/bank_jtyh.gif',
- '311'=>'http://bank-logo.qiniudn.com/bank_hxyh.gif',
- '309'=>'http://bank-logo.qiniudn.com/bank_xyyh.gif',
- '305'=>'http://bank-logo.qiniudn.com/bank_msyh2.gif',
- '306'=>'http://bank-logo.qiniudn.com/bank_gdfz.gif',
- '307'=>'http://bank-logo.qiniudn.com/bank_payh.gif',
- '314'=>'http://bank-logo.qiniudn.com/bank_pfyh.gif',
- '313'=>'http://bank-logo.qiniudn.com/bank_zxyh.gif',
- '312'=>'http://bank-logo.qiniudn.com/bank_gdyh.gif',
- '316'=>'http://bank-logo.qiniudn.com/bank_njyh.gif',
- '3230'=>'http://bank-logo.qiniudn.com/bank_psbc.gif',
- '324'=>'http://bank-logo.qiniudn.com/bank_hangzhou.jpg',
- '302'=>'http://bank-logo.qiniudn.com/bank_nbyh.gif',
- '310'=>'http://bank-logo.qiniudn.com/bank_bj.gif',
- '342'=>'http://bank-logo.qiniudn.com/bank_CQRCB.gif',
- '343'=>'http://bank-logo.qiniudn.com/bank_SRCB.gif',
- '335'=>'http://bank-logo.qiniudn.com/bank_BJRCB.gif',
- '3341'=>'http://bank-logo.qiniudn.com/bank_QDCCB.gif',
- '336'=>'http://bank-logo.qiniudn.com/bank_BOCD.gif',
- );
- $banKey = array_keys($bankArray);
- if (isset($_POST['v_amount']) && isset($_POST['bank']) && in_array($_POST['bank'], $banKey)) {
- $this->data['v_amount'] = $_POST['v_amount'];
- $this->data['bankid'] = $_POST['bank'];
- $this->data['bankinfo'] = $bankArray[$this->data['bankid']];
- } else {
- return Doo::conf()->APP_URL . 'depositnew';
- }
- $this->data['usercat'] = NULL;
- $this->data['extmenu'] = 0;
- Doo::loadModel('users');
- $users = new Users();
- $valuebank = $users->getRowByUid($session->user['id']);
- $this->data['bank'] = isset($valuebank[0]['bank']) ? $valuebank[0]['bank'] : 0;
- $this->data['FUN'] = __FUNCTION__;
- if($session->user['id']){
- $this->data['avatar'] = $this->ps_getavatar($session->user['id']);
- }else{
- $this->data['avatar'] = Doo::conf()->APP_URL . 'global/img/avatra48.png';
- }
- $this->render($this->theme.'recharge2', $this->data, TRUE);
- }
- /**
- * 生成流水号
- */
- function create_sn() {
- mt_srand((double) microtime() * 1000000);
- return date("YmdHis") . str_pad(mt_rand(1, 99999), 5, "0", STR_PAD_LEFT);
- }
- public function send() {
- // TODO:20130312
- // TODO:没有检验金额,是否额定
- // TODO:请求链接来源验证
- // TODO:防止暴力提交订单
- // TODO:检测是否存在为支付订单,防止重复提交
- // TODO:增加销售人员手机号作为优惠码20130503
- $session = Doo::session("sso");
- if (empty($session->user['id'])) {
- return Doo::conf()->APP_URL . 'error/loginFail';
- }
- $this->data['v_oid'] = $this->create_sn();
- $this->data['v_mid'] = '22544863'; // 商户号,这里为测试商户号1001,替换为自己的商户号(老版商户号为4位或5位,新版为8位)即可
- $this->data['v_url'] = 'http://sso.smartcost.com.cn/Receive'; // 请填写返回url,地址应为绝对路径,带有http协议
- $this->data['v_return'] = 'http://sso.smartcost.com.cn'; // 请填写返回url,地址应为绝对路径,带有http协议
- $this->data['key'] = 'smartcost@)!@onlinepaychinabank'; // 如果您还没有设置MD5密钥请登陆我们为您提供商户后台,地址:https://merchant3.chinabank.com.cn/
- $this->data['v_amount'] = trim($_POST['v_amount']); //支付金额
- $this->data['v_moneytype'] = "CNY"; //币种
- $this->data['text'] = $this->data['v_amount'] . $this->data['v_moneytype'] . $this->data['v_oid'] . $this->data['v_mid'] . $this->data['v_url'] . $this->data['key']; //md5加密拼凑串,注意顺序不能变
- $this->data['v_md5info'] = strtoupper(md5($this->data['text'])); //md5函数加密并转化成大写字母
- if (isset($_POST['bank'])) {
- $this->data['bank'] = trim($_POST['bank']); //md5函数加密并转化成大写字母
- } else {
- $this->data['bank'] = NULL;
- }
- // $this->data['remark2'] = isset($_POST['remark2']) ? trim($_POST['remark2']) : NULL; //备注字段2
- // if (preg_match('/^1[3458][0-9]{9}$/', $_POST['remark2'])) {
- if (!empty($_POST['remark2'])) {
- Doo::loadModel('m/sale');
- $saleObj = new Sale();
- $rowNumber = $saleObj->count(array('where'=>'promocode=?','param' => array($_POST['remark2']),'asArray'=>TRUE));
- if($rowNumber){
- $this->data['remark2'] = $_POST['remark2'];
- }else{
- $this->data['remark2'] = NULL;
- }
- } else {
- $this->data['remark2'] = NULL;
- }
- // 生成订单
- Doo::loadModel('pay');
- $pay = new Pay();
- $array = array('trade_sn' => $this->data['v_oid'], 'userid' => $session->user['id'], 'username' => $session->user['username'], 'telephone' => $this->data['remark2'], 'money' => $this->data['v_amount'], 'addtime' => time(), 'usernote' => $session->user['username'] . '[' . $this->data['v_oid'] . ']', 'pay_type' => 'recharge', 'payment' => '网银在线', 'ip' => $this->clientIP(), 'status' => 'unpay','pay_id'=>$this->data['bank']);
- $pay->add($array);
- $this->data['remark1'] = $this->getUserName() . '[' . $this->data['v_oid'] . ']'; //备注字段1
- $this->data['v_rcvname'] = isset($_POST['v_rcvname']) ? trim($_POST['v_rcvname']) : NULL; // 收货人
- $this->data['v_rcvaddr'] = isset($_POST['v_rcvaddr']) ? trim($_POST['v_rcvaddr']) : NULL; // 收货地址
- $this->data['v_rcvtel'] = isset($_POST['v_rcvtel']) ? trim($_POST['v_rcvtel']) : NULL; // 收货人电话
- $this->data['v_rcvpost'] = isset($_POST['v_rcvpost']) ? trim($_POST['v_rcvpost']) : NULL; // 收货人邮编
- $this->data['v_rcvemail'] = isset($_POST['v_rcvemail']) ? trim($_POST['v_rcvemail']) : NULL; // 收货人邮件
- $this->data['v_rcvmobile'] = isset($_POST['v_rcvmobile']) ? trim($_POST['v_rcvmobile']) : NULL; // 收货人手机号
- $this->data['v_ordername'] = isset($_POST['v_ordername']) ? trim($_POST['v_ordername']) : NULL; // 订货人姓名
- $this->data['v_orderaddr'] = isset($_POST['v_orderaddr']) ? trim($_POST['v_orderaddr']) : NULL; // 订货人地址
- $this->data['v_ordertel'] = isset($_POST['v_ordertel']) ? trim($_POST['v_ordertel']) : NULL; // 订货人电话
- $this->data['v_orderpost'] = isset($_POST['v_orderpost']) ? trim($_POST['v_orderpost']) : NULL; // 订货人邮编
- $this->data['v_orderemail'] = isset($_POST['v_orderemail']) ? trim($_POST['v_orderemail']) : NULL; // 订货人邮件
- $this->data['v_ordermobile'] = isset($_POST['v_ordermobile']) ? trim($_POST['v_ordermobile']) : NULL; // 订货人手机号
- $this->render($this->theme.'send', $this->data, TRUE);
- }
- // 手动对账
- public function receive() {
- $session = Doo::session("sso");
- if (empty($session->user['id'])) {
- return Doo::conf()->APP_URL . 'error/loginFail';
- }
- $key = 'smartcost@)!@onlinepaychinabank';
- $v_oid = isset($_POST['v_oid']) ? trim($_POST['v_oid']) : NULL; // 商户发送的v_oid定单编号
- $v_pmode = isset($_POST['v_pmode']) ? trim($_POST['v_pmode']) : NULL; // 支付方式(字符串)
- $v_pstatus = isset($_POST['v_pstatus']) ? trim($_POST['v_pstatus']) : NULL; // 支付状态 :20(支付成功);30(支付失败)
- $v_pstring = isset($_POST['v_pstring']) ? trim($_POST['v_pstring']) : NULL; // 支付结果信息 : 支付完成(当v_pstatus=20时);失败原因(当v_pstatus=30时,字符串);
- $v_amount = isset($_POST['v_amount']) ? trim($_POST['v_amount']) : NULL; // 订单实际支付金额
- $v_moneytype = isset($_POST['v_moneytype']) ? trim($_POST['v_moneytype']) : NULL; //订单实际支付币种
- $remark1 = isset($_POST['remark1']) ? trim($_POST['remark1']) : NULL; //备注字段1
- $remark2 = isset($_POST['remark2']) ? trim($_POST['remark2']) : NULL; //备注字段2
- $v_md5str = isset($_POST['v_md5str']) ? trim($_POST['v_md5str']) : NULL; //拼凑后的MD5校验值
- // echo $v_oid . '|' . $v_pstatus . '|' . $v_amount . '|' . $v_moneytype . '|' . $key;
- /**
- * 重新计算md5的值
- * // 增加优惠信息
- */
- $md5string = strtoupper(md5($v_oid . $v_pstatus . $v_amount . $v_moneytype . $key)); //拼凑加密串
- if ($v_md5str == $md5string) {
- if ($v_pstatus == '20') {
- $pay = Doo::loadModel('pay', TRUE);
- $callbackData = $pay->getRowsBySN($v_oid);
- if ($callbackData['status'] == 'unpay') {
- if ($callbackData['money'] == $v_amount) {
- $pay->trade_sn = $v_oid;
- $comment = $pay->find(array('limit' => 1, 'select' => 'id', 'asArray' => TRUE));
- $pay->id = $comment['id'];
- $pay->paytime = time();
- $pay->status = 'succ';
- $succvalue = $pay->update();
- Doo::loadModel('income_pay');
- $incomepay = new IncomePay();
- $incomepay->uid = $session->user['id'];
- $incomepay->money = $v_amount;
- $incomepay->type = 1;
- $incomepay->comefrom = '网银在线';
- $incomepay->addtime = time();
- $incomepay->insert();
- if ($succvalue) {
- // 增加销售人员提成与折扣
- if(!empty($remark2)&&($v_amount>=$this->cashlimit)){
- $salerGet = floor($v_amount*$this->salelimit); // 计算销售人员获得的提成
- $v_amount += floor($v_amount*$this->perlimit); // 计算输入优惠码的最终充值金额
- Doo::loadModel('m/sale');
- $saleObj = new Sale();
- $saleObj->total = new DooDbExpression('total+' . $salerGet);
- $saleObj->update(array('where'=>'promocode=?','param'=>array($remark2)));
- }
- Doo::loadModel('users');
- $users = new Users();
- $moneyValue = $users->updateBank($callbackData['userid'], $v_amount);
- if ($moneyValue) {
- $this->data['msg'] = '充值完成';
- header('refresh:3;url=/');
- }
- //发送邮件
- include ('./protected/class/email_templete.file.php');
-
- //获取文档 $callbackData['userid']
- $userinfo=$users->getRowByUid( $callbackData['userid']);
- //$v_amount , $v_oid
- $templete_email=$this->format_email_content($email_file['RECHARGE_SUCCESS'], "RECHARGE_SUCCESS",$v_amount,$userinfo,$v_oid);
-
- //$templete_email['toemail']="cpthought@vip.qq.com";
- if(filter_var($templete_email['toemail'], FILTER_VALIDATE_EMAIL))
- $this->_mail($templete_email['templete'],$templete_email['subject'],$templete_email['toemail']);
- }
- }
- } else {
- $this->data['msg'] = '已充值完毕,操作无效';
- header('refresh:3;url=/');
- }
- }
- } else {
- $this->data['msg'] = '充值故障';
- header('refresh:3;url=/');
- }
- $this->render($this->theme.'recharge_msg', $this->data, TRUE);
- }
- /**
- * 判断email格式是否正确
- * @param $string email
- */
- public function getUserID() {
- $userid = self::get_cookie('_userid');
- if ($userid) {
- return $userid;
- } else {
- return FALSE;
- }
- }
- public function getUserName() {
- $username = self::get_cookie('_username');
- if ($username) {
- return $username;
- } else {
- return FALSE;
- }
- }
- public function get_cookie($var, $default = '') {
- $varvar = Doo::conf()->COOKIEPRE . $var;
- return isset($_COOKIE[$varvar]) ? $this->authcode($_COOKIE[$varvar], 'DECODE') : $default;
- }
- public function issafe() {
- $session = Doo::session("sso");
- if (empty($session->user['id'])) {
- return Doo::conf()->APP_URL . 'error/loginFail';
- }
- if ($this->checkUserQuestionExs($session->user['id'])) {
- return Doo::conf()->APP_URL . 'profile';
- }
- if (!empty($_POST['isubmit'])) {
- $userquestion = htmlspecialchars($_POST['zhq']);
- $defquestion = addslashes(htmlspecialchars($_POST['defq']));
- $useranswer = addslashes(htmlspecialchars($_POST['zhanswer']));
- if (in_array($userquestion, array(1, 2, 3, 4, 5, 6))) {
- Doo::loadModel('users');
- $users = new Users();
- if (($userquestion == 6) && !empty($defquestion)) {
- $users->defquestion = $defquestion;
- }
- $users->userquestion = $userquestion;
- $users->useranswer = $useranswer;
- $users->update(array('where' => 'id=' . $session->user['id']));
- $session->user['userquestion'] = $userquestion;
- return Doo::conf()->APP_URL . 'profile';
- }
- }
- $this->data['avatar'] = $this->url_exists($this->ps_getavatar($session->user['id'])) ? $this->ps_getavatar($session->user['id']) : Doo::conf()->APP_URL . 'global/img/avatra48.png';
- $this->data['qArray'] = $this->QArray;
- $this->render($this->theme.'oldAunRe', $this->data, TRUE);
- }
- public function saveSafe() {
- // $data = array('str' => '你好测试一下好不好用', 1 => 2, 2 => 3);
- //// var_dump($data);
- //// serialize
- // $msg = msgpack_pack($data);
- //
- //// hexadecimal
- // $str = unpack('H*', $msg);
- // var_dump($str);
- //// deserialize
- //// $ret = msgpack_unpack($msg);
- //// var_dump($ret);
- $this->data['qArray'] = $this->QArray;
- $this->render($this->theme.'oldAunRe', $this->data, TRUE);
- }
- public function pay() {
- $session = Doo::session("sso");
- if (empty($session->user['id'])) {
- return Doo::conf()->APP_URL . 'error/loginFail';
- }
- Doo::loadModel('users');
- $users = new Users();
- $valuebank = $users->getRowByUid($session->user['id']);
- $this->data['bank'] = isset($valuebank[0]['bank']) ? $valuebank[0]['bank'] : 0;
- $this->data['name'] = $session->user['username'];
- $this->data['avatar'] = $this->url_exists($this->ps_getavatar($session->user['id'])) ? $this->ps_getavatar($session->user['id']) : Doo::conf()->APP_URL . 'global/img/avatra48.png';
- $this->render($this->theme.'toCash2', $this->data, TRUE);
- }
- public function ps_getavatar($uid) {
- $dir1 = ceil($uid / 10000);
- $dir2 = ceil($uid % 10000 / 1000);
- $url = Doo::conf()->APP_URL . 'data/avatar/' . $dir1 . '/' . $dir2 . '/' . $uid . '/';
- $avatar = array('180' => $url . '180x180.jpg', '90' => $url . '90x90.jpg', '45' => $url . '45x45.jpg', '30' => $url . '30x30.jpg');
- return $avatar['45'];
- }
- // Not activated 未激活状态更改邮箱
- public function nactChangMail() {
- $session = Doo::session("sso");
- $this->data['name'] = $session->user['username'];
- if (empty($session->user['id'])) {
- return Doo::conf()->APP_URL . 'error/loginFail';
- }
- if (self::isUserActive($session->user['id']))
- return Doo::conf()->APP_URL . 'error/actuser';
- if (isset($_POST['isubmit'])) {
- $ismail = $this->checkMail($_POST['nactmail']);
- if (!$ismail)
- return Doo::conf()->APP_URL . 'error/erroremail';
- $isok = $this->checkExsitmail($_POST['nactmail']);
- if (!$isok || ($session->user['useremail'] == $_POST['nactmail']))
- return Doo::conf()->APP_URL . 'error/userdemail';
- $users = Doo::loadModel('users', true);
- $users->id = $session->user['id'];
- $users->useremail = $_POST['nactmail'];
- $succvalue = $users->update();
- if ($succvalue) {
- Doo::loadModel('userswitch');
- $UserSwitch = new UserSwitch();
- $usArray = $UserSwitch->getOne(array('where' => 'uid=?', 'param' => array($session->user['id']), 'asArray' => TRUE));
- $StrSubject = '纵横通行帐号-请激活您的帐号';
- $StrContent = '<table style="width:100%">
- <tbody>
- <tr>
- <td>
- <p>感谢您注册成为纵横通行帐号的会员。在使用我们提供的服务之前,请点击以下链接,或将以下链接复制到浏览器的地址栏中打开,以激活您的帐户:</p>
- <p style="width:600px"><br><a href="' . Doo::conf()->APP_URL . 'actuser/' . md5($session->user['id'] . $usArray['rndcode']) . '">' . Doo::conf()->APP_URL . 'actuser/' . md5($session->user['id'] . $usArray['rndcode']) . '</a></p>
- <p><br>您之所以收到这封邮件,是因为您曾经注册成为纵横通行帐号的用户。我们保证仅向您发送关于纵横通行帐号的电子邮件。我们尊重并保护您的隐私。</p>
- <p><br>纵横通行帐号与你共成长!</p>
- <p>' . date('Y年m月d日', time()) . '</p>
- <p>©2012 <a href="http://smartcost.com.cn">珠海纵横创新软件有限公司</a></p>
- </td>
- </tr>
- </tbody>
- </table>';
- $this->SMail($_POST['nactmail'], $StrSubject, $StrContent);
- $this->data['nowmail'] = $session->user['email'] = $_POST['nactmail'];
- $this->render($this->theme.'mailConfirm', $this->data, TRUE);
- exit();
- } else {
- $this->render($this->theme.'newMailch', $this->data, TRUE);
- exit();
- }
- }
- $this->render($this->theme.'newMailch', $this->data, TRUE);
- }
- public function regMobile(){
- $this->render($this->theme.'registerMobile', $this->data, TRUE);
- }
- public function getPWMobile(){
- $this->render($this->theme.'getPassword-mobile', $this->data, TRUE);
- }
- public function setPWMobile() {
- if($this->checkSmsCode($_POST['zhmobile'],$_POST['zhsmscode'])){
- $user = Doo::db()->find('users', array(
- 'select' => 'id,salt,username,mobile',
- 'where' => 'mobile=?',
- 'param' => array($_POST['zhmobile'])
- )
- );
- if(!empty($user)){
- $this->data['userid'] = $user[0]->id;
- $this->data['usersalt'] = $user[0]->salt;
- $this->render($this->theme.'getPassword-mobile2', $this->data, TRUE);
- die;
- } else {
- $this->data['messages'] = '手机号有误,请重新输入';
- }
- }else{
- $this->data['messages'] = '验证码过期或不一致,请重新获取';
- }
- $this->render($this->theme.'getPassword-mobile', $this->data, TRUE);
- }
- public function successPW(){
- if(isset($_POST['userid'])){
- // TODO:重新设置密码过程
- $newPasswdStr = $_POST['password'];
- $newPasswd = $this->create_password($newPasswdStr, $_POST['usersalt']);
- $usersObj = Doo::loadModel('users', TRUE);
- $usersObj->id = $_POST['userid'];
- $usersObj->userpasswd = $newPasswd;
- if ($usersObj->update()) {
- $this->render($this->theme . 'getPassword-mobile-success', $this->data, TRUE);
- die;
- }else{
- $this->data['messages'] = '新密码有误,请重新输入';
- $this->data['userid'] = $_POST['userid'];
- $this->data['usersalt'] = $_POST['usersalt'];
- $this->render($this->theme.'getPassword-mobile2', $this->data, TRUE);
- die;
- }
- }
- return '/mobile/getpasswd';
- }
- public function Voucher(){
- $session = Doo::session("sso");
- if (empty($session->user['id'])) {
- return Doo::conf()->APP_URL . 'error/loginFail';
- }
- Doo::loadModel('voucher');
- Doo::loadModel('users');
- $voucher = new Voucher();
- if(isset($_POST['code'])){
- $vinfo = $voucher->getRowbyCode($_POST['code']);
- if(!empty($vinfo) && isset($vinfo['vstarttime']) && $vinfo['vstarttime'] <= time()){
- Doo::loadModel('users_voucher');
- $usersvoucher = new UsersVoucher();
- $hadnum = $usersvoucher->count(array('where' => 'vid='.$vinfo['id']));
- if($vinfo['vendtime'] < time() || ($vinfo['vcount'] != 0 && $hadnum >= $vinfo['vcount'])){
- $this->data['pnote'] = '领取码"'.$_POST['code'].'"的活动已结束';
- }else{
- $checktake = $usersvoucher->checkuser($session->user['id'],$vinfo['id']);
- if(!$checktake){
- $this->data['pnote'] = '领取码"'.$_POST['code'].'"的活动您已参加,不可再次领取';
- }else{
- $usersvoucher->userid = $session->user['id'];
- $usersvoucher->vid = $vinfo['id'];
- $usersvoucher->vmoney = $vinfo['vcost'];
- $usersvoucher->addtime = time();
- $usersvoucher->vname = $vinfo['vname'];
- $usersvoucher->insert();
- Doo::loadModel('pay');
- $pay = new Pay();
- $array = array(
- 'trade_sn' => $this->create_sn(),
- 'userid' => $session->user['id'],
- 'username' => $session->user['username'],
- 'money' => $vinfo['vcost'],
- 'addtime' => time(),
- 'usernote' => $session->user['username'] . '[' . $this->create_sn() . ']',
- 'pay_type' => 'voucher',
- 'payment' => $vinfo['vname'],
- 'ip' => $this->clientIP(),
- 'status' => 'succ'
- );
- $pay->add($array);
- $user = new Users();
- $k=$user->updateBank($session->user['id'], $vinfo['vcost']);
- if($k){
- Doo::loadModel('income_pay');
- $incomepay = new IncomePay();
- $incomepay->uid = $session->user['id'];
- $incomepay->money = $vinfo['vcost'];
- $incomepay->type = 1;
- $incomepay->comefrom = '代金券';
- $incomepay->description = $vinfo['vname'];
- $incomepay->addtime = time();
- $incomepay->insert();
- $this->data['pnote'] = '您成功领取了"'.$_POST['code'].'"领取码的活动';
- }
- }
- }
- }else{
- $this->data['pnote'] = '没有"'.$_POST['code'].'"领取码的活动';
- }
- }
- Doo::loadModel('users_voucher');
- $uvou = new UsersVoucher();
- $this->data['uvounum'] = $uvou->count(array('where' => 'userid='.$session->user['id'], 'asArray' => TRUE));
- $uvoulist = $uvou->getvoucher($session->user['id'],20);
- if(!empty($uvoulist)){
- $this->data['uvoulist'] = $uvoulist;
- }
- $users = new Users();
- $valuebank = $users->getRowByUid($session->user['id']);
- $this->data['bank'] = isset($valuebank[0]['bank']) ? $valuebank[0]['bank'] : 0;
- $this->data['name'] = $session->user['username'];
- // $this->data['avatar'] = $this->url_exists($this->ps_getavatar($session->user['id'])) ? $this->ps_getavatar($session->user['id']) : Doo::conf()->APP_URL . 'global/img/avatra48.png';
- if(isset($session->user['id'])){
- $this->data['avatar'] = $this->ps_getavatar($session->user['id']);
- }else{
- $this->data['avatar'] = Doo::conf()->APP_URL . 'global/img/avatra48.png';
- }
- $this->data['FUN'] = 'voucher';
- $this->render($this->theme.'voucher', $this->data, TRUE);
- }
- public function getVoucherMsg(){
- $session = Doo::session("sso");
- if (empty($session->user['id'])) {
- return Doo::conf()->APP_URL . 'error/loginFail';
- }
- if(isset($this->params['pindex']) && is_numeric($this->params['pindex'])) {
- Doo::loadModel('users_voucher');
- $uvou = new UsersVoucher();
- $limit = ($this->params['pindex']*20).',20';
- $uvoulist = $uvou->getvoucher($session->user['id'], $limit);
- if (!empty($uvoulist)) {
- $uvounum = $uvou->count(array('where' => 'userid='.$session->user['id'], 'asArray' => TRUE));
- $num = 0;
- if($this->params['pindex']*20+20 < $uvounum){
- $num = $this->params['pindex']+1;
- };
- foreach($uvoulist as $k => $v){
- $uvoulist[$k]['addtime'] = date("Y-m-d H:i:s",$v['addtime']);
- }
- echo json_encode(array('code' => 200, 'uvoulist' => $uvoulist, 'num' => $num));
- exit;
- }
- }
- echo json_encode(array('code' => 400));
- exit;
- }
- public function Order(){
- $session = Doo::session("sso");
- if (empty($session->user['id'])) {
- return Doo::conf()->APP_URL . 'error/loginFail';
- }
- Doo::loadModel('income_pay');
- $incomepay = new IncomePay();
- $this->data['incomepaynum'] = $incomepay->count(array('where' => 'uid='.$session->user['id'], 'asArray' => TRUE));
- $incomepaylist = $incomepay->get_listbyuid($session->user['id'],20);
- if(!empty($incomepaylist)){
- $this->data['incomepaylist'] = $incomepaylist;
- }
- Doo::loadModel('users');
- $users = new Users();
- $valuebank = $users->getRowByUid($session->user['id']);
- $this->data['bank'] = isset($valuebank[0]['bank']) ? $valuebank[0]['bank'] : 0;
- $this->data['name'] = $session->user['username'];
- // $this->data['avatar'] = $this->url_exists($this->ps_getavatar($session->user['id'])) ? $this->ps_getavatar($session->user['id']) : Doo::conf()->APP_URL . 'global/img/avatra48.png';
- if(isset($session->user['id'])){
- $this->data['avatar'] = $this->ps_getavatar($session->user['id']);
- }else{
- $this->data['avatar'] = Doo::conf()->APP_URL . 'global/img/avatra48.png';
- }
- $this->data['FUN'] = '';
- $this->render($this->theme.'order', $this->data, TRUE);
- }
- public function getOrderMsg(){
- $session = Doo::session("sso");
- if (empty($session->user['id'])) {
- return Doo::conf()->APP_URL . 'error/loginFail';
- }
- if(isset($this->params['pindex']) && is_numeric($this->params['pindex'])) {
- Doo::loadModel('income_pay');
- $incomepay = new IncomePay();
- $limit = ($this->params['pindex']*20).',20';
- $incomepaylist = $incomepay->get_listbyuid($session->user['id'], $limit);
- if (!empty($incomepaylist)) {
- $incomepaynum = $incomepay->count(array('where' => 'uid='.$session->user['id'], 'asArray' => TRUE));
- $num = 0;
- if($this->params['pindex']*20+20 < $incomepaynum){
- $num = $this->params['pindex']+1;
- };
- foreach($incomepaylist as $k => $v){
- $incomepaylist[$k]['addtime'] = date("Y-m-d H:i:s",$v['addtime']);
- }
- echo json_encode(array('code' => 200, 'incomepaylist' => $incomepaylist, 'num' => $num));
- exit;
- }
- }
- echo json_encode(array('code' => 400));
- exit;
- }
- private function checkExsitmail($email) {
- $users = Doo::loadModel('users', true);
- $arruser = $users->getOne(array('select' => 'id', 'where' => 'useremail=?', 'param' => array($email), 'asArray' => TRUE));
- if (empty($arruser)) {
- return TRUE;
- } else {
- return FALSE;
- }
- }
- private function checkExsitMobile($mobile) {
- $users = Doo::loadModel('users', true);
- $arruser = $users->getOne(array('select' => 'id', 'where' => 'mobile=?', 'param' => array($mobile), 'asArray' => TRUE));
- if (empty($arruser)) {
- return TRUE;
- } else {
- return FALSE;
- }
- }
- private function checkUserQuestion($uid) {
- $ddd = Doo::loadModel('users', true);
- $arruser = $ddd->getOne(array('select' => 'userquestion', 'where' => 'id=?', 'param' => array($uid), 'limit' => '1', 'asArray' => TRUE));
- if (empty($arruser['userquestion'])) {
- return TRUE;
- } else {
- return FALSE;
- }
- }
- private function checkUserQuestionExs($uid) {
- $ddd = Doo::loadModel('users', true);
- $arruser = $ddd->getOne(array('select' => 'userquestion', 'where' => 'id=?', 'param' => array($uid), 'limit' => '1', 'asArray' => TRUE));
- if ($arruser['userquestion']) {
- return TRUE;
- }
- }
- private static function isUserActive($uid) {
- Doo::loadModel('userswitch');
- $userswitch = new UserSwitch();
- return $userswitch->checkUserStatus($uid);
- }
-
- /**
- * 发送email
- * @param unknown_type $html_templete
- * @param unknown_type $subject
- * @param unknown_type $toemail
- */
- function _mail( $html_templete = "",$subject="",$toemail=""){
-
- require_once './protected/class/class.pop3.php';
-
- require_once './protected/class/class.smtp.php';
-
- require_once './protected/class/class.phpmailer.php';
-
- $mail = new PHPMailer();
-
- $body = $html_templete;
-
- $mail->IsSMTP(); // telling the class to use SMTP
-
- $mail->SMTPAuth = true; // enable SMTP authentication
- //$mail->SMTPSecure = "ssl"; // sets the prefix to the servier
- $mail->Host = "smtp.exmail.qq.com"; // sets GMAIL as the SMTP server
- //$mail->Port = 465; // set the SMTP port for the GMAIL server
-
- //$mail->CharSet = "UTF8";
-
- $mail->Username = "websupport@smartcost.com.cn"; // GMAIL username
- $mail->Password = "smartcost2010"; // GMAIL password
-
- $mail->From = "websupport@smartcost.com.cn";
-
- $mail->FromName = "=?UTF-8?B?" . base64_encode('纵横知道·问答') . "?=";
-
- $mail->Subject = $subject;
-
- $mail->MsgHTML($body);
-
- $mail->AddAddress($toemail);
-
- $mail->Send();
- }
-
- /**
- * 实现接口
- * (non-PHPdoc)
- * @see BaseLogic::format_email_content()
- */
- protected function format_email_content($html_templete, $templete_name, $postArray = 0, $user = 0,$v_oid) {
-
- if ($templete_name == "RECHARGE_SUCCESS") { //纵横通行帐号提醒您:您的帐号成功充值了一笔金额
-
- $str = str_replace ( "%username%",$user[0]['username'] , $html_templete );
-
- $str = str_replace ( "%price%",$postArray , $str );
-
- $str = str_replace ( "%oder%", $v_oid, $str );
-
- $str = str_replace ( "%time%", date('Y-m-d H:i:s', time()), $str );
-
- $result ['templete'] = $str;
-
- $result ['subject'] = "=?UTF-8?B?" . base64_encode ( '纵横通行帐号提醒您:您的帐号成功充值了一笔金额' ) . "?=";
-
- $result ['toemail'] = $user [0]['useremail'];
-
- return $result;
- }
- }
- /**
- * ajax短信验证码调用接口
- */
- public function checkSms(){
- if(isset($_POST['zhmobile'])){
- $mobile = trim($_POST['zhmobile']);
- }else{
- exit(json_encode(array('code' => -1, 'msg' => '请输入手机号')));
- }
- if(preg_match("/^1[34578]{1}\d{9}$/",$mobile)){
- Doo::loadModel('users');
- $user = new Users();
- $checkuser = $user->getOne(array('where' => 'mobile='.$mobile, 'asArray' => true));
- if(!empty($checkuser)){
- exit(json_encode(
- array('code' => -1, 'msg' => '该手机号码已被注册!')
- ));
- }
- Doo::loadModel('mobilecode');
- $mobilecode = new mobilecode();
- $code = $this->getRandomCheckCode();
- $now = time();
- $checkresult = $mobilecode->find(array('where' => 'mobile='.$mobile, 'desc' => 'id', 'limit' => 1,'asArray' => true));
- if(!empty($checkresult)){
- $old = $checkresult['time'];
- if($now-$old >= 60){
- $sendresult = $this->sendSms($mobile,$code);
- // $sendresult = true;
- if($sendresult){
- $mobilecode->mobile = $mobile;
- $mobilecode->code = $code;
- $mobilecode->time = $now;
- $mobilecode->insert();
- exit(json_encode(
- array('code' => 1, 'msg' => '发送成功')
- ));
- }else{
- exit(json_encode(
- array('code' => -1, 'msg'=> $this->errorMsg)
- ));
- }
- }else{
- exit(json_encode(
- array('code' => -1, 'msg' => '60s内无法再次发送验证码')
- ));
- }
- }else{
- $sendresult = $this->sendSms($mobile,$code);
- // $sendresult = true;
- if($sendresult){
- $mobilecode->mobile = $mobile;
- $mobilecode->code = $code;
- $mobilecode->time = $now;
- $mobilecode->insert();
- exit(json_encode(
- array('code' => 1, 'msg' => '发送成功')
- ));
- }else{
- exit(json_encode(
- array('code' => -1, 'msg'=> $this->errorMsg)
- ));
- }
- }
- }else{
- exit(json_encode(
- array('code' => -1, 'msg' => '请正确填写您的手机号码')
- ));
- }
- }
- /**
- * ajax短信修改密码验证码调用接口
- */
- function chpwdsms(){
- if(isset($_POST['zhmobile'])){
- $mobile = trim($_POST['zhmobile']);
- }else{
- exit(json_encode(array('code' => -1, 'msg' => '请输入手机号')));
- }
- if(preg_match("/^1[34578]{1}\d{9}$/",$mobile)){
- Doo::loadModel('mobilecode');
- $mobilecode = new mobilecode();
- $code = $this->getRandomCheckCode();
- $now = time();
- $checkresult = $mobilecode->find(array('where' => 'mobile='.$mobile, 'desc' => 'id', 'limit' => 1,'asArray' => true));
- if(!empty($checkresult)){
- $old = $checkresult['time'];
- if($now-$old >= 60){
- $sendresult = $this->sendSms($mobile,$code);
- // $sendresult = true;
- if($sendresult){
- $mobilecode->mobile = $mobile;
- $mobilecode->code = $code;
- $mobilecode->time = $now;
- $mobilecode->insert();
- exit(json_encode(
- array('code' => 1, 'msg' => '发送成功')
- ));
- }else{
- exit(json_encode(
- array('code' => -1, 'msg'=> $this->errorMsg)
- ));
- }
- }else{
- exit(json_encode(
- array('code' => -1, 'msg' => '60s内无法再次发送验证码')
- ));
- }
- }else{
- $sendresult = $this->sendSms($mobile,$code);
- // $sendresult = true;
- if($sendresult){
- $mobilecode->mobile = $mobile;
- $mobilecode->code = $code;
- $mobilecode->time = $now;
- $mobilecode->insert();
- exit(json_encode(
- array('code' => 1, 'msg' => '发送成功')
- ));
- }else{
- exit(json_encode(
- array('code' => -1, 'msg'=> $this->errorMsg)
- ));
- }
- }
- }else{
- exit(json_encode(
- array('code' => -1, 'msg' => '请正确填写您的手机号码')
- ));
- }
- }
- function checkgetpwdsms(){
- if(isset($_POST['zhmobile'])){
- $mobile = trim($_POST['zhmobile']);
- }else{
- exit(json_encode(array('code' => -1, 'msg' => '请输入手机号')));
- }
- if(preg_match("/^1[34578]{1}\d{9}$/",$mobile)){
- Doo::loadModel('users');
- $user = new Users();
- $checkuser = $user->getOne(array('where' => 'mobile='.$mobile, 'asArray' => true));
- if(empty($checkuser)){
- exit(json_encode(
- array('code' => -1, 'msg' => '该手机号码未在纵横通行账号注册!')
- ));
- }
- Doo::loadModel('mobilecode');
- $mobilecode = new mobilecode();
- $code = $this->getRandomCheckCode();
- $now = time();
- $checkresult = $mobilecode->find(array('where' => 'mobile='.$mobile, 'desc' => 'id', 'limit' => 1,'asArray' => true));
- if(!empty($checkresult)){
- $old = $checkresult['time'];
- if($now-$old >= 60){
- $sendresult = $this->sendSms($mobile,$code);
- // $sendresult = true;
- if($sendresult){
- $mobilecode->mobile = $mobile;
- $mobilecode->code = $code;
- $mobilecode->time = $now;
- $mobilecode->insert();
- exit(json_encode(
- array('code' => 1, 'msg' => '发送成功')
- ));
- }else{
- exit(json_encode(
- array('code' => -1, 'msg'=> $this->errorMsg)
- ));
- }
- }else{
- exit(json_encode(
- array('code' => -1, 'msg' => '60s内无法再次发送验证码')
- ));
- }
- }else{
- $sendresult = $this->sendSms($mobile,$code);
- // $sendresult = true;
- if($sendresult){
- $mobilecode->mobile = $mobile;
- $mobilecode->code = $code;
- $mobilecode->time = $now;
- $mobilecode->insert();
- exit(json_encode(
- array('code' => 1, 'msg' => '发送成功')
- ));
- }else{
- exit(json_encode(
- array('code' => -1, 'msg'=> $this->errorMsg)
- ));
- }
- }
- }else{
- exit(json_encode(
- array('code' => -1, 'msg' => '请正确填写您的手机号码')
- ));
- }
- }
- /**
- * 实现短信验证码接口
- *
- */
- protected function sendSms($number,$code){
- $send = array(
- 'apikey' => 'fb5ef483e44b9556512a9febef376051',
- 'mobile' => $number,
- 'text' => '【纵横通行账号】您的验证码是'.$code.',15分钟内有效。'
- );
- $data = http_build_query($send);
- $res = json_decode($this->_httpClient($data));
- $resArr = $this->objectToArray($res);
- if (!empty($resArr) && $resArr["code"] == 0) return true;
- else {
- if (empty($this->errorMsg)) $this->errorMsg = isset($resArr["msg"]) ? $resArr["msg"] : '未知错误';
- return false;
- }
- }
- //对象转数组,使用get_object_vars返回对象属性组成的数组
- function objectToArray($array){
- if(is_object($array)) {
- $array = (array)$array;
- } if(is_array($array)) {
- foreach($array as $key=>$value) {
- $array[$key] = $this->objectToArray($value);
- }
- }
- return $array;
- }
- /**
- * POST方式访问短信接口
- * @param string $data
- * @return mixed
- */
- private function _httpClient($data) {
- $sms_api_url = 'http://sms.haotingyun.com/v2/sms/single_send.json';
- try {
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept:text/plain;charset=utf-8', 'Content-Type:application/x-www-form-urlencoded','charset=utf-8'));
- curl_setopt($ch, CURLOPT_URL,$sms_api_url);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_TIMEOUT, 10);
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
- $res = curl_exec($ch);
- curl_close($ch);
- return $res;
- } catch (Exception $e) {
- $this->errorMsg = $e->getMessage();
- return false;
- }
- }
- /**
- * 随机生成验证码
- */
- function getRandomCheckCode() {
- $chars = '0123456789';
- mt_srand((double)microtime()*1000000*getmypid());
- $CheckCode="";
- while(strlen($CheckCode)<6)
- $CheckCode.=substr($chars,(mt_rand()%strlen($chars)),1);
- return $CheckCode;
- }
- // private static function isUserActive($uid) {
- // Doo::loadModel('userswitch');
- // $userswitch = new UserSwitch();
- // return $userswitch->checkUserStatus($uid);
- // }
- }
- ?>
|