本人是PHP新手(以前做ASP的)
近段时间做一个网站,涉及到与DISCUZ的整合
在网上看到不少这样的贴子
有用通行证的,也有高手自己去写整合代码的
发现都不适合我(也许是我没完全看懂他们的意思)由于我这个站对整合程度要求不高
只要求能实现同步登录
所以我想这样实现:
网站的用户数据表,登录入口及登录验证模块等等用的都是DISCUZ的。
只是想在登录入口部分传个参数或隐藏域,LOGGING页通过判断这个参数,再决定是跳到论坛首页还是网站的指定页面。可是我对DISCUZ的LOGGING页的代码看的不太懂,改了好长时间还没有改成功。希望前辈位帮忙指点一下。先谢谢了
啊!

解决方案 »

  1.   

    dz_inc.php.登录提交到dz,登录后在你本系统调用get_dzuserid获取用户信息<?php
    $dz_config['dz_bbs_database'] = 'yourdb.';
    $dz_config['dz_table_prefix'] = 'cdb_';
    $dz_config['dz_bbs_domain'] = 'http://www.yourbbs.com/'; 
    $dz_config['dz_bbs_imgurl'] = 'http://www.yourbbs.com/attachments/'; 
    $dz_config['dz_cache_dir'] = '/app/web/www.yourbbs.com/forumdata/cache/';
    $dz_config['dz_cookie_prefix'] = 'cdb_'; if(include_once($dz_config['dz_cache_dir'] . 'cache_settings.php'))
    {
    $discuz_auth_key = md5($_DCACHE['settings']['authkey'].$_SERVER['HTTP_USER_AGENT']);
    }
    else
    {
    $thissetting = $DB->query_first("select * from " . $dz_config['dz_bbs_database'] . $dz_config['dz_table_prefix'] . "settings where variable = 'authkey'");
    $discuz_auth_key = md5($thissetting['value'].$_SERVER['HTTP_USER_AGENT']);
    }function daddslashes($string, $force = 0) {
    !defined('MAGIC_QUOTES_GPC') && define('MAGIC_QUOTES_GPC', get_magic_quotes_gpc());
    if(!MAGIC_QUOTES_GPC || $force) {
    if(is_array($string)) {
    foreach($string as $key => $val) {
    $string[$key] = daddslashes($val, $force);
    }
    } else {
    $string = addslashes($string);
    }
    }
    return $string;
    }function authcode($string, $operation, $key = '') { global $discuz_auth_key;
    $key = md5($key ? $key : $discuz_auth_key);
    $key_length = strlen($key); $string = $operation == 'DECODE' ? base64_decode($string) : substr(md5($string.$key), 0, 8).$string;
    $string_length = strlen($string); $rndkey = $box = array();
    $result = ''; for($i = 0; $i <= 255; $i++) {
    $rndkey[$i] = ord($key[$i % $key_length]);
    $box[$i] = $i;
    } 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, 8) == substr(md5(substr($result, 8).$key), 0, 8)) {
    return substr($result, 8);
    } else {
    return '';
    }
    } else {
    return str_replace('=', '', base64_encode($result));
    }
    }function get_dzuserid()
    {
    global $dz_config;
    $a = daddslashes(explode("\t", authcode($_COOKIE[$dz_config['dz_cookie_prefix'] . 'auth'], 'DECODE')), 1);
    return (int)$a[2];
    }
    ?>
      

  2.   

    老大们,能GOOGLE到就不来提问了啊
    还有楼上的,唉,不说了。
    愿意帮忙的麻烦您诚心点
    不愿意帮忙的请您飘过。
      

  3.   

    哇...
    原来在CSDN找人帮忙是如此的牛X..
    我帮你顶..
      

  4.   

    不是有ucenter吗? 看下uc的开发文档就可以了,很简单的说。