Discuz!官方免费开源建站系统

 找回密码
 立即注册
搜索

[疑问] 转换到dz,出问题了

[复制链接]
subs 发表于 2008-1-31 19:11:59 | 显示全部楼层 |阅读模式
我原来是用恒浪同步的动易和动网,后来因为发展需要,把论坛转成了discuz,这样discuz的密码就成了16位的md5,一换就麻烦了,整合全部不能用了,登陆失败,原来的老用户直接不能用!请问怎么解决啊?谢谢

附恒浪接口代码,期待高手修改:
<?php
require_once './include/common.inc.php';
require_once DISCUZ_ROOT.'./forumdata/cache/cache_profilefields.php';
require_once DISCUZ_ROOT.'./include/discuzcode.func.php';
require_once './inc/UpiConfig.php';

//******************************************************
//文件名: dz_Interface.asp
//描 述: DisCuz6.0恒浪整合系统IMS前台接口文件
//版  本: 恒浪_DisCuz6.0_For HoWaveIMSV5.x&V4.x
//Copyright 2007 HoWave Inc. All Rights Reserved.
//CodeWriter By: SeaShell
//最后更新:  2007-09-11
//******************************************************
//恒浪接口定义的变量
        $H_UserName="";
        $H_Password="";
        $H_Question="";
        $H_Answer="";
        $H_Email="";
        $H_OriginPassword="";
        $H_CookieTime="";
        $H_Action="";
        $H_UserSex="";
        $H_SecurityKey="";
        $H_Other="";
        $H_ComeUrl="";
       
//恒浪IMS定义其它变量
        $H_Password_32="";
        $H_CurrentDate="";
        $Sys_SecurityKey="";
        $H_HowaveLoginType="";
        $TrueIP="";
        $H_UserLock="";

//******************************************** 请求数据 **************************************
        $H_Action         = FunReplace($_GET["action"]);               //---------------------------------当前操作
        $H_SecurityKey    = FunReplace($_GET["SecurityKey"]);          //---------------------------------密钥
        $H_UserName       = FunReplace($_GET["username"]);             //---------------------------------用户名
        $H_Password       = FunReplace($_GET["password"]);             //---------------------------------密码
        $H_Password_32    = $H_Password;                               //---------------------------------32位加密(小写)
        $H_Question       = FunReplace($_GET["question"]);             //---------------------------------问题
        $H_Answer         = FunReplace($_GET["answer"]);               //---------------------------------答案
        $H_Email          = FunReplace($_GET["email"]);                //---------------------------------邮箱
        $H_UserSex        = FunReplace($_GET["sex"]);                  //---------------------------------性别
        $H_CookieTime     = FunReplace($_GET["cookietime"]);           //---------------------------------登录Cookies保存时间
        $H_OriginPassword = FunReplace($_GET["OriginPass"]);           //---------------------------------修改密码时验证的密码
        $H_CurrentDate    = zonedate("YmdH");                          //------------------------------当前日期
        $H_Other          = FunReplace($_GET["Other"]);                //---------------------------------保留参数
        $H_HowaveLoginType= FunReplace($_GET["howaveLoginType"]);      //---------------------------------异步登录
        $H_UserLock       = FunReplace($_GET["lock"]);                 //---------------------------------用户状态
       
        if ($H_UserSex=="男"){
            $H_UserSex=1;
        }
        elseif($H_UserSex=="女"){
            $H_UserSex=2;
        }
//******************************************** 请求数据 **************************************
function FunReplace($str)
{
  $strResult = $str;
  if(!get_magic_quotes_gpc())//判断设置是否开启
  {
    $strResult = addslashes($strResult);//转换sql语句特殊字符
  }
  return $strResult;
}

function zonedate($layout,$countryzone=8){
        if($countryzone >> 0){
                $zone=3600*$countryzone;
        } else {
                $zone=0;
        }
        $mydate=gmdate($layout, time() + $zone);
        return $mydate;
}

//********************************* 收到退出命令后执行退出子程序结束 *****************************
if($H_Action =="Logout"){
        clearcookies();
        $groupid = 7;
        $discuz_uid = 0;
        $discuz_user = $discuz_pw = '';
        $styleid = $_DCACHE['settings']['styleid'];
        showmessage('logout_succeed', dreferer());
        exit;
}
//********************************* 收到退出命令后执行退出子程序结束 *****************************


//**************************************** 跨域名接口组装 **************************************
function Cross_Domain()
{
  $m_CrossDomain=$_GET['CrossDomain'];
  if($m_CrossDomain=="true")
  {  
                $m_ComeUrl=$_GET['ComeUrl'];
                $m_CrossUrlArray=$_GET['CrossUrlArray'] ;//取出下一个跨域名的网站接口地址       
                if ($m_CrossUrlArray!="")
                {
                    $NextInterfaceUrl=HL_getUrl();//获取当前的接口地址
                    $splitflag=strpos($NextInterfaceUrl,"?");                  
                    $NextInterface=substr($NextInterfaceUrl,$splitflag,(strlen($NextInterfaceUrl)-$splitflag)) ;       
                    if (strpos($m_CrossUrlArray,",")>0 )
                    {  
                       $NextInterfaceArray =explode(",",$m_CrossUrlArray);                       
                           for($i=1;$i<count($NextInterfaceArray);$i++)
               {
                                    $NextCrossDominUrl=$NextCrossDominUrl.$NextInterfaceArray[$i].",";
                           }                          
                           $NextCrossDominUrl=substr($NextCrossDominUrl,0,(strlen($NextCrossDominUrl)-1));
                           $NextInterfaceUrl=$NextInterfaceArray[0].$NextInterface        ;          
                    }
                    else
                    {
                           $NextCrossDominUrl="";
                           $NextInterfaceUrl=$m_CrossUrlArray.$NextInterface;
                    }               
                    $splitflag=strrpos($NextInterfaceUrl,"=")        ;          
                    $NextInterfaceUrl=substr($NextInterfaceUrl,0,$splitflag+1).$NextCrossDominUrl;
                }
                else
                {
                   $NextInterfaceUrl=$m_ComeUrl;  
                }
                if($NextInterfaceUrl!="")
                {
                   Header("Location: $NextInterfaceUrl");                  
                }
                else
                {                  
                   Header("Location: index.php");  
                }
   }       
}
//**************************************** 跨域名接口组装 **************************************


if ($H_Action!="" && $H_UserName!="" && $H_SecurityKey!="" && $HLIntegration=="true"){
    $md5_username=strtolower(rawurlencode($H_UserName));
    $md5_username=str_replace("%20","+",$md5_username);
        $Sys_SecurityKey=md5($md5_username.$H_Password_32.$SecurityKey.$H_Action.$H_CurrentDate);
        if(strtolower($H_SecurityKey)!=strtolower($Sys_SecurityKey)){
              echo "签名不正确.请返回源页面.";
                  exit;          
        }
        else{
       
            //***************************************** 执行注册代码 *************************************
        if($H_Action=="Reg"){
                        $inviteconfig = array();
                        $query = $db->query("SELECT * FROM {$tablepre}settings WHERE variable IN ('bbrules', 'bbrulestxt', 'welcomemsg', 'welcomemsgtitle', 'welcomemsgtxt', 'inviteconfig')");
                        while($setting = $db->fetch_array($query)) {
                                $$setting['variable'] = $setting['value'];
                        }
                       
                        if($regstatus > 1) {
                                $inviterewardcredit = $inviteaddcredit = $invitedaddcredit = '';
                                @extract(unserialize($inviteconfig));
                        }
                       
                        $query = $db->query("SELECT groupid, allownickname, allowcstatus, allowavatar, allowcusbbcode, allowsigbbcode, allowsigimgcode, maxsigsize FROM {$tablepre}usergroups WHERE ".($regverify ? "groupid='8'" : "creditshigher<=".intval($initcredits)." AND ".intval($initcredits)."<creditslower LIMIT 1"));
                        $groupinfo = $db->fetch_array($query);
                        $groupinfo['allowavatar'] = $groupinfo['allowavatar'] == 3 ? 2 : $groupinfo['allowavatar'];               

                        $email = $H_Email;
                        $username = $H_UserName;
                        $alipay = trim($alipay);
                        $gendernew=$H_UserSex;
               
                        $guestexp = '\xA1\xA1|\xAC\xA3|^Guest|^\xD3\xCE\xBF\xCD|\xB9\x43\xAB\xC8';
               
                        $censorexp = '/^('.str_replace(array('\\*', "\r\n", ' '), array('.*', '|', ''), preg_quote(($censoruser = trim($censoruser)), '/')).')$/i';
                        if(preg_match("/^\s*$|^c:\\con\\con$|[%,\*\"\s\t\<\>\&]|$guestexp/is", $username) || ($censoruser && @preg_match($censorexp, $username))) {
                                showmessage('profile_username_illegal');
                        }
                        if($censoruser && (@preg_match($censorexp, $nickname) || @preg_match($censorexp, $cstatus))) {
                                showmessage('profile_nickname_cstatus_illegal');
                        }
               
                        $accessexp = '/('.str_replace("\r\n", '|', preg_quote($accessemail, '/')).')$/i';
                        $censorexp = '/('.str_replace("\r\n", '|', preg_quote($censoremail, '/')).')$/i';
                        $invalidemail = $accessemail ? !preg_match($accessexp, $email) : $censoremail && preg_match($censorexp, $email);
                        if(!isemail($email) || $invalidemail) {
                                showmessage('profile_email_illegal');
                        }
               
                        if($alipay && !isemail($alipay)) {
                                showmessage('profile_alipay_illegal');
                        }
               
                        if($msn && !isemail($msn)) {
                                showmessage('profile_alipay_msn');
                        }
               
                        $fieldadd1 = $fieldadd2 = '';
                        foreach(array_merge($_DCACHE['fields_required'], $_DCACHE['fields_optional']) as $field) {
                                $field_key = 'field_'.$field['fieldid'];
                                $field_val = ${'field_'.$field['fieldid'].'new'};
                                if($field['required'] && trim($field_val) == '') {
                                        showmessage('profile_required_info_invalid');
                                } elseif($field['selective'] && $field_val != '' && !isset($field['choices'][$field_val])) {
                                        showmessage('undefined_action', NULL, 'HALTED');
                                } else {
                                        $fieldadd1 .= ", $field_key";
                                        $fieldadd2 .= ', \''.dhtmlspecialchars($field_val).'\'';
                                }
                        }
               
               
                        if($groupinfo['maxsigsize']) {
                                if(strlen($signature) > $groupinfo['maxsigsize']) {
                                        $maxsigsize = $groupinfo['maxsigsize'];
                                        showmessage('profile_sig_toolong');
                                }
                        } else {
                                $signature = '';
                        }
               
                        if($ipregctrl) {
                                foreach(explode("\n", $ipregctrl) as $ctrlip) {
                                        if(preg_match("/^(".preg_quote(($ctrlip = trim($ctrlip)), '/').")/", $onlineip)) {
                                                $ctrlip = $ctrlip.'%';
                                                $regctrl = 72;
                                                break;
                                        }
                                }
                        } else {
                                $ctrlip = $onlineip;
                        }
               
                        if($regstatus > 1) {
                                if($regstatus == 2 && !$invitecode) {
                                        showmessage('register_invite_notfound');
                                } elseif($invitecode) {
                                        $query = $db->query("SELECT uid, invitecode, inviteip, expiration FROM {$tablepre}invites WHERE invitecode='$invitecode' AND status IN ('1', '3')");
                                        if(!$invite = $db->fetch_array($query)) {
                                                showmessage('register_invite_error');
                                        } else {
                                                if($invite['inviteip'] == $onlineip) {
                                                        showmessage('register_invite_iperror');
                                                } elseif($invite['expiration'] < $timestamp) {
                                                        showmessage('register_invite_expiration');
                                                }
                                        }
                                }
                                $groupinfo['groupid'] = $invitegroupid ? intval($invitegroupid) : $groupinfo['groupid'];
                        }
               
                        if($regctrl) {
                                $query = $db->query("SELECT ip FROM {$tablepre}regips WHERE ip LIKE '$ctrlip' AND count='-1' AND dateline>$timestamp-'$regctrl'*3600 LIMIT 1");
                                if($db->num_rows($query)) {
                                        showmessage('register_ctrl', NULL, 'HALTED');
                                }
                        }
               
                        $query = $db->query("SELECT uid FROM {$tablepre}members WHERE username='$username'");
                        if($db->num_rows($query)) {
                            Cross_Domain();//跨域名
                                showmessage('profile_username_duplicate');
                        }
               
                        if(!$doublee) {
                                $query = $db->query("SELECT uid FROM {$tablepre}members WHERE email='$email' LIMIT 1");
                                if($db->num_rows($query)) {
                                        showmessage('profile_email_duplicate');
                                }
                        }
               
                        if($regfloodctrl) {
                                $query = $db->query("SELECT count FROM {$tablepre}regips WHERE ip='$onlineip' AND count>'0' AND dateline>'$timestamp'-86400");
                                if($regattempts = $db->result($query, 0)) {
                                        if($regattempts >= $regfloodctrl) {
                                                showmessage('register_flood_ctrl', NULL, 'HALTED');
                                        } else {
                                                $db->query("UPDATE {$tablepre}regips SET count=count+1 WHERE ip='$onlineip' AND count>'0'");
                                        }
                                } else {
                                        $db->query("INSERT INTO {$tablepre}regips (ip, count, dateline)
                                                VALUES ('$onlineip', '1', '$timestamp')");
                                }
                        }

                        //$secques = quescrypt($questionid, $answer);
               
                        $tppnew = in_array($tppnew, array(10, 20, 30)) ? $tppnew : 0;
                        $pppnew = in_array($pppnew, array(5, 10, 15)) ? $pppnew : 0;
               
                        $dateformatnew = ($dateformatnew = intval($dateformatnew)) && !empty($userdateformat[$dateformatnew -1]) ? $dateformatnew : 0;
               
                        $icq = preg_match("/^([0-9]+)$/", $icq) && strlen($icq) >= 5 && strlen($icq) <= 12 ? $icq : '';
                        $qq = preg_match("/^([0-9]+)$/", $qq) && strlen($qq) >= 5 && strlen($qq) <= 12 ? $qq : '';
                        $bday = datecheck($bday) ? $bday : '0000-00-00';
               
                        //$avatar = dhtmlspecialchars($avatar);
               
                        $yahoo = dhtmlspecialchars($yahoo);
                        $taobao = dhtmlspecialchars($taobao);
                        $email = dhtmlspecialchars($email);
                        $msn = dhtmlspecialchars($msn);
                        $alipay = dhtmlspecialchars($alipay);
                        $bday = dhtmlspecialchars($bday);
               
                        $signature = censor($signature);
                        $sigstatus = $signature ? 1 : 0;
                        $sightml = addslashes(discuzcode(stripslashes($signature), 1, 0, 0, 0, ($groupinfo['allowsigbbcode'] ? ($groupinfo['allowcusbbcode'] ? 2 : 1) : 0), $groupinfo['allowsigimgcode'], 0));
               
                        $bio = censor(dhtmlspecialchars($bio));
                        $site = dhtmlspecialchars(trim(preg_match("/^https?:\/\/.+/i", $site) ? $site : ($site ? 'http://'.$site : '')));
               
                        $locationnew = cutstr(censor(dhtmlspecialchars($locationnew)), 30);
                        $nickname = $groupinfo['allownickname'] ? cutstr(censor(dhtmlspecialchars($nickname)), 30) : '';
                        $cstatus = $groupinfo['allowcstatus'] ? cutstr(censor(dhtmlspecialchars($cstatus)), 30) : '';
               
                        $invisiblenew = $invisiblenew && $groupinfo['allowinvisible'] ? 1 : 0;
               
                        $idstring = random(6);
                        $authstr = $regverify == 1 ? "$timestamp\t2\t$idstring" : '';
               
                        //avatar
                        if(!empty($urlavatar) && $groupinfo['allowavatar']) {
               
                                $avatarimagesize = array();
                                $avatar = $urlavatar;
                                if(@preg_match("/^(images\/avatars\/.+?)$/i", $urlavatar)) {
                                        $avatarimagesize = @getimagesize($urlavatar);
                                } elseif(preg_match("/^(http:\/\/.+?)$/i", $urlavatar)) {
                                        if(ini_get('allow_url_fopen') && (substr(PHP_OS, 0, 3) != 'WIN' || PHP_VERSION >= 5)) {
                                                $avatarimagesize = @getimagesize($urlavatar);
                                        }
                                } else {
                                        showmessage('profile_avatar_invalid');
                                }
               
                                if(!in_array(strtolower(fileext($avatar)), array('gif', 'jpg', 'png'))) {
                                        showmessage('profile_avatar_invalid');
                                }
               
                                $avatar = dhtmlspecialchars(trim($avatar));
                                if($avatarwidth == '*' || $avatarheight == '*' || $avatarwidth == '' || $avatarheight == '') {
                                        $avatarwidth = $avatarheight = ($maxavatarpixel ? round($maxavatarpixel * 0.6) : 80);
                                        @list($avatarwidth, $avatarheight) = $avatarimagesize ? $avatarimagesize : array($avatarwidth, $avatarheight);
                                }
               
                                $maxsize = max($avatarwidth, $avatarheight);
                                if($maxsize > $maxavatarpixel) {
                                        $avatarwidth = $avatarwidth * $maxavatarpixel / $maxsize;
                                        $avatarheight = $avatarheight * $maxavatarpixel / $maxsize;
                                }
               
                        } else {
                                $avatar = $avatarwidth = $avatarheight = '';
                        }
               
                        $db->query("INSERT INTO {$tablepre}members (username, password, secques, gender, adminid, groupid, regip, regdate, lastvisit, lastactivity, posts, credits, extcredits1, extcredits2, extcredits3, extcredits4, extcredits5, extcredits6, extcredits7, extcredits8, email, bday, sigstatus, tpp, ppp, styleid, dateformat, timeformat, pmsound, showemail, newsletter, invisible, timeoffset) VALUES ('$username', '$password', '$secques', '$gendernew', '0', '$groupinfo[groupid]', '$onlineip', '$timestamp', '$timestamp', '$timestamp', '0', $initcredits, '$email', '$bday', '$sigstatus', '$tppnew', '$pppnew', '$styleidnew', '$dateformatnew', '$timeformatnew', '$pmsoundnew', '$showemailnew', '$newsletter', '$invisiblenew', '$timeoffsetnew')");
                        $uid = $db->insert_id();
               
                        $db->query("INSERT INTO {$tablepre}memberfields (uid, nickname, site, icq, qq, yahoo, msn, taobao, alipay, location, bio, sightml, customstatus, authstr, avatar, avatarwidth, avatarheight $fieldadd1) VALUES ('$uid', '$nickname', '$site', '$icq', '$qq', '$yahoo', '$msn', '$taobao', '$alipay', '$locationnew', '$bio', '$sightml', '$cstatus', '$authstr', '$avatar', '$avatarwidth', '$avatarheight' $fieldadd2)");
               
                        if($regctrl || $regfloodctrl) {
                                $db->query("DELETE FROM {$tablepre}regips WHERE dateline<='$timestamp'-".($regctrl > 72 ? $regctrl : 72)."*3600", 'UNBUFFERED');
                                if($regctrl) {
                                        $db->query("INSERT INTO {$tablepre}regips (ip, count, dateline)
                                                VALUES ('$onlineip', '-1', '$timestamp')");
                                }
                        }
               
                        if($regverify == 2) {
                                $db->query("REPLACE INTO {$tablepre}validating (uid, submitdate, moddate, admin, submittimes, status, message, remark)
                                        VALUES ('$uid', '$timestamp', '0', '', '1', '0', '$regmessage', '')");
                        }
               
                        if($invitecode && $regstatus > 1) {
                                $db->query("UPDATE {$tablepre}invites SET reguid='$uid', regdateline='$timestamp', status='2' WHERE invitecode='$invitecode' AND status='1'");
                                if($inviteaddbuddy) {
                                        $db->query("INSERT INTO {$tablepre}buddys (uid, buddyid, dateline) VALUES ('$invite[uid]', '$uid', '$timestamp')");
                                }
               
                                if($inviterewardcredit) {
                                        if($inviteaddcredit) {
                                                $db->query("UPDATE {$tablepre}members SET extcredits$inviterewardcredit=extcredits$inviterewardcredit+'$inviteaddcredit' WHERE uid='$uid'");
                                        }
                                        if($invitedaddcredit) {
                                                $db->query("UPDATE {$tablepre}members SET extcredits$inviterewardcredit=extcredits$inviterewardcredit+'$invitedaddcredit' WHERE uid='$invite[uid]'");
                                        }
                                }
                        }
               
                        $discuz_uid = $uid;
                        $discuz_user = $username;
                        $discuz_userss = stripslashes($discuz_user);
                        $discuz_pw = $password;
                        $discuz_secques = $secques;
                        $groupid = $groupinfo['groupid'];
                        $styleid = $styleid ? $styleid : $_DCACHE['settings']['styleid'];
       
                        if($welcomemsg && !empty($welcomemsgtxt)) {
                                $welcomtitle = !empty($welcomemsgtitle) ? $welcomemsgtitle : "Welcome to $bbname!";
                                $welcomtitle = addslashes(replacesitevar($welcomtitle));
                                $welcomemsgtxt = addslashes(replacesitevar($welcomemsgtxt));
                                if($welcomemsg == 1) {
                                        $db->query("INSERT INTO {$tablepre}pms (msgfrom, msgfromid, msgtoid, folder, new, subject, dateline, message)
                                                VALUES ('System Message', '0', '$uid', 'inbox', '1', '$welcomtitle', '$timestamp','$welcomemsgtxt')");
                                        $db->query("UPDATE {$tablepre}members SET newpm='1' WHERE uid='$uid'");
                                } elseif($welcomemsg == 2) {
                                        sendmail("$username <$email>", $welcomtitle, $welcomemsgtxt);
                                }
                        }
               
                        if($fromuid) {
                                updatecredits($fromuid, $creditspolicy['promotion_register']);
                                dsetcookie('promotion', '');
                        }
               
                        require_once DISCUZ_ROOT.'./include/cache.func.php';
                        $_DCACHE['settings']['totalmembers']++;
                        $_DCACHE['settings']['lastmember'] = $discuz_userss;
                        updatesettings();
               
                        switch($regverify) {
                                case 1:
                                        sendmail("$username <$email>", 'email_verify_subject', 'email_verify_message');
                                        HL_showmessage('profile_email_verify');
                                        Cross_Domain();//跨域名
                                        break;
                                case 2:
                                        HL_showmessage('register_manual_verify', 'memcp.php');
                                        Cross_Domain();//跨域名
                                        break;
                                default:
                                        if($_DCACHE['settings']['frameon'] && $_DCOOKIE['frameon'] == 'yes') {
                                                $extrahead .= '<script>if(top != self) {parent.leftmenu.location.reload();}</script>';
                                        }
                                        if($passport_status == 'shopex' && $passport_shopex) {
                                                $dreferer = dreferer();
                                                $verify = md5('login'.$dreferer.$passport_key);
                                                showmessage('register_succeed', 'api/relateshopex.php?action=login&forward='.rawurlencode($dreferer).'&verify='.$verify);
                                        } else {
                                                HL_showmessage('register_succeed', dreferer());
                                                Cross_Domain();//跨域名
                                        }
                                        break;
                        }
                }
                //***************************************** 执行注册代码 *************************************
               
                //***************************************** 执行登录代码 *************************************               
                if($H_Action=="Login"){

                        if($_DCACHE['settings']['frameon'] && $_DCOOKIE['frameon'] == 'yes') {
                            Cross_Domain();
                                exit;
                        }
                    $discuz_uid = 0;
                    $discuz_user = $discuz_pw = $discuz_secques = $md5_password = '';
                    $member = array();
                       
                        if(isset($loginauth)) {
                                $field = 'username';
                                $password = 'VERIFIED';
                                list($username, $md5_password) = daddslashes(explode("\t", authcode($loginauth, 'DECODE')), 1);
                        } else {
                                $md5_password = $password;
                                $password = preg_replace("/^(.{".round(strlen($password) / 4)."})(.+?)(.{".round(strlen($password) / 6)."})$/s", "\\1***\\3", $password);
                        }
                       
                    $query = $db->query("SELECT m.uid AS discuz_uid, m.username AS discuz_user, m.password AS discuz_pw, m.secques AS discuz_secques,m.adminid, m.groupid, m.styleid AS styleidmem, m.lastvisit, m.lastpost, u.allowinvisible        FROM {$tablepre}members m LEFT JOIN {$tablepre}usergroups u USING (groupid) WHERE m.username='$username'");

                    $member = $db->fetch_array($query);

                    if($member['discuz_uid'] && $member['discuz_pw'] == $md5_password) {
                            if($member['discuz_secques'] == $secques && !$seccodemiss) {
                                    extract($member);

                                    $discuz_userss = $discuz_user;
                                    $discuz_user = addslashes($discuz_user);

                                    if(($allowinvisible && $loginmode == 'invisible') || $loginmode == 'normal') {
                                        $db->query("UPDATE {$tablepre}members SET invisible='".($loginmode == 'invisible' ? 1 : 0)."' WHERE uid='$member[discuz_uid]'", 'UNBUFFERED');
                                    }

                                    $styleid = intval(empty($_POST['styleid']) ? ($styleidmem ? $styleidmem :
                                        $_DCACHE['settings']['styleid']) : $_POST['styleid']);

                                    $cookietime = intval(isset($H_CookieTime) ? $H_CookieTime :
                                        ($_DCOOKIE['cookietime'] ? $_DCOOKIE['cookietime'] : 0));

                                    dsetcookie('cookietime', $cookietime, 31536000);
                                    dsetcookie('auth', authcode("$discuz_pw\t$discuz_secques\t$discuz_uid", 'ENCODE'), $cookietime);

                                    $sessionexists = 0;
               
                                        if($groupid == 8) {
                                            HL_showmessage('login_succeed_inactive_member', 'memcp.php');
                                                Cross_Domain();//跨域名
                                        }
                                        else {
                                            HL_showmessage('login_succeed', dreferer());
                                                Cross_Domain();//跨域名
                                        }
                                }
                        }
               
                }
                //***************************************** 执行登录代码 *************************************
               
                //***************************************** 执行修改代码 *************************************               
                if($H_Action=="Modify"){
               
                        $temp= "UPDATE {$tablepre}members Set ";
                        if($H_Email!=""){
                           $temp.=" email='$H_Email',";
                        }
                        if($H_Password!=""){
                           $temp.=" password='$H_Password' ";
                        }else{
                                $temp.=" password=password ";
                        }
                        $temp.=" where username='$username'";     
                        $db->query($temp);
               
                }
                //***************************************** 执行修改代码 *************************************

                //***************************************** 执行删除代码 *************************************               
                if($H_Action=="Delete"){
               
                        $D_UserName=$H_UserName;
                        $D_Users=explode(",",$D_UserName);
                        foreach($D_Users as $key => $OneUserName){
                            $OneUserName=trim($OneUserName);
                $query = $db->query("SELECT uid FROM {$tablepre}members WHERE username='$OneUserName'");
                                while($member = $db->fetch_array($query))
                                {
                                        $uids=$member['uid'];
                                }
               
                                $query = $db->query("DELETE FROM {$tablepre}members WHERE uid IN ($uids)");
                                $numdeleted = $db->affected_rows();

                                $db->query("DELETE FROM {$tablepre}access WHERE uid IN ($uids)", 'UNBUFFERED');
                                $db->query("DELETE FROM {$tablepre}memberfields WHERE uid IN ($uids)", 'UNBUFFERED');
                                $db->query("DELETE FROM {$tablepre}moderators WHERE uid IN ($uids)", 'UNBUFFERED');
                                $db->query("DELETE FROM {$tablepre}buddys WHERE uid IN ($uids) OR buddyid IN ($uids)", 'UNBUFFERED');
                                $db->query("DELETE FROM {$tablepre}favorites WHERE uid IN ($uids)", 'UNBUFFERED');
                                $db->query("DELETE FROM {$tablepre}pms WHERE msgfromid IN ($uids) OR msgtoid IN ($uids)", 'UNBUFFERED');
                                $db->query("DELETE FROM {$tablepre}subscriptions WHERE uid IN ($uids)", 'UNBUFFERED');

                        }               
               
                }
                //***************************************** 执行删除代码 *************************************

                //***************************************** 执行登录代码 *************************************               
                if($H_Action=="Test"){
                    $ConfigStr="<div style='font-size:13px'>接口正常!</br>接口配置文件UpiConfig.php设置参数如下:<ul>";
                        if ($HLVersion=="1")
                           $ConfigStr=$ConfigStr."<li>你现在使用的接口模式为HoWaveV5.x</li>";
                        else
                           $ConfigStr=$ConfigStr."<li>你现在使用的接口模式为HoWaveV4.x</li>";
                           $ConfigStr=$ConfigStr."<li>恒浪所在站点URL为:".$HL_Url."</li><li>前台密钥SecurityKey与恒浪后台设置一致</li>";
                        if ($RegPageSet=="")
                           $ConfigStr=$ConfigStr."<li>注册模式为:原系统注册</li>";
                        else
                           $ConfigStr=$ConfigStr."<li>注册模式为:跳转到".$RegPageSet."进行注册</li>";
                        if ($Domainname=="")
                           $ConfigStr=$ConfigStr."<li>设置子域名为:空</li>";
                        else
                           $ConfigStr=$ConfigStr."<li>设置子域名为:".$Domainname."</li>";
                        $ConfigStr=$ConfigStr."</div>";
                        echo $ConfigStr;
                }
                //***************************************** 执行登录代码 *************************************
               
               
        }
}

function replacesitevar($string, $replaces = array()) {
        global $sitename, $bbname, $timestamp, $timeoffset, $adminemail, $adminemail, $discuz_user;
        $sitevars = array(
                '{sitename}' => $sitename,
                '{bbname}' => $bbname,
                '{time}' => gmdate('Y-n-j H:i', $timestamp + $timeoffset * 3600),
                '{adminemail}' => $adminemail,
                '{username}' => $discuz_user,
                '{myname}' => $discuz_user
        );
        $replaces = array_merge($sitevars, $replaces);
        return str_replace(array_keys($replaces), array_values($replaces), $string);
}

?>
回复

使用道具 举报

 楼主| subs 发表于 2008-1-31 19:12:55 | 显示全部楼层
//***************************************** 执行登录代码 *************************************               
                if($H_Action=="Login"){

                        if($_DCACHE['settings']['frameon'] && $_DCOOKIE['frameon'] == 'yes') {
                            Cross_Domain();
                                exit;
                        }
                    $discuz_uid = 0;
                    $discuz_user = $discuz_pw = $discuz_secques = $md5_password = '';
                    $member = array();
                        
                        if(isset($loginauth)) {
                                $field = 'username';
                                $password = 'VERIFIED';
                                list($username, $md5_password) = daddslashes(explode("\t", authcode($loginauth, 'DECODE')), 1);
                        } else {
                                $md5_password = $password;
                                $password = preg_replace("/^(.{".round(strlen($password) / 4)."})(.+?)(.{".round(strlen($password) / 6)."})$/s", "\\1***\\3", $password);
                        }
                        
                    $query = $db->query("SELECT m.uid AS discuz_uid, m.username AS discuz_user, m.password AS discuz_pw, m.secques AS discuz_secques,m.adminid, m.groupid, m.styleid AS styleidmem, m.lastvisit, m.lastpost, u.allowinvisible        FROM {$tablepre}members m LEFT JOIN {$tablepre}usergroups u USING (groupid) WHERE m.username='$username'");

                    $member = $db->fetch_array($query);

                    if($member['discuz_uid'] && $member['discuz_pw'] == $md5_password) {
                            if($member['discuz_secques'] == $secques && !$seccodemiss) {
                                    extract($member);

                                    $discuz_userss = $discuz_user;
                                    $discuz_user = addslashes($discuz_user);

                                    if(($allowinvisible && $loginmode == 'invisible') || $loginmode == 'normal') {
                                        $db->query("UPDATE {$tablepre}members SET invisible='".($loginmode == 'invisible' ? 1 : 0)."' WHERE uid='$member[discuz_uid]'", 'UNBUFFERED');
                                    }

                                    $styleid = intval(empty($_POST['styleid']) ? ($styleidmem ? $styleidmem :
                                        $_DCACHE['settings']['styleid']) : $_POST['styleid']);

                                    $cookietime = intval(isset($H_CookieTime) ? $H_CookieTime :
                                        ($_DCOOKIE['cookietime'] ? $_DCOOKIE['cookietime'] : 0));

                                    dsetcookie('cookietime', $cookietime, 31536000);
                                    dsetcookie('auth', authcode("$discuz_pw\t$discuz_secques\t$discuz_uid", 'ENCODE'), $cookietime);

                                    $sessionexists = 0;
               
                                        if($groupid == 8) {
                                            HL_showmessage('login_succeed_inactive_member', 'memcp.php');
                                                Cross_Domain();//跨域名
                                        }
                                        else {
                                            HL_showmessage('login_succeed', dreferer());
                                                Cross_Domain();//跨域名
                                        }
                                }
                        }
               
                }
                //***************************************** 执行登录代码 *************************************
个人感觉应该是这段,但是我对php不熟悉,只有等高手了
回复

使用道具 举报

 楼主| subs 发表于 2008-1-31 20:04:05 | 显示全部楼层
有人帮我吗?谢谢
回复

使用道具 举报

桃子(小敏) 发表于 2008-2-1 10:03:28 | 显示全部楼层
dv转过来后,需要用转换程序中所给的logging.php替换论坛的logging.php登录文件,这样老用户才可以登录
如果您做了整合,会员登录验证不在论坛,那么可以参考passport通行证整合:
https://discuz.dismall.com/usersguide/advanced_passport.htm#title
回复

使用道具 举报

 楼主| subs 发表于 2008-2-2 10:05:53 | 显示全部楼层
原帖由 桃子(小敏) 于 2008-2-1 10:03 发表
dv转过来后,需要用转换程序中所给的logging.php替换论坛的logging.php登录文件,这样老用户才可以登录
如果您做了整合,会员登录验证不在论坛,那么可以参考passport通行证整合:
https://discuz.dismall.com/usersgui ...

我用的
是恒浪的整合,因为你们的通行证不支持动易,一转换后下了logging.php是可以登陆,但是整合就不行了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-9-14 12:27 , Processed in 0.118755 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表