最新消息:文章中包含代码时,请遵守代码高亮规范!

关于Discuz论坛的一些爱恨情仇——-爱恨欲罢不能【原创】

PHP galenzhu 1805浏览 1评论

取这个名字相信大家也应该能够了解我的感受了,真得,最近的几个项目,客户明确指出要求实现手机端的和论坛部分的同步登录问题,说到这,一开始不知道的我以为能有多难。进去后才知道是一个深坑。和同事在里面摸打滚爬两个礼拜,终于解决了。

下面,给大家讲解一下关于Discuz的同步登录的问题;

1.首先,应该是安转Discuz了,去官方网站下载一个。网站:http://www.discuz.net/thread-3570835-1-1.html,里面有对应的版本,大家可以选择下载;

 

2.接下来就是我们配置环节了:废话不多说,进入正题,我们使用discuz的Ucenter进行第三方应用与discuz的同步登录。

配置文件如下:

<?php
/**
 * Created by PhpStorm.
 * User: zmit
 * Date: 8/3/16
 * Time: 6:52 PM
 */
define('DB_HOST', 'localhost');
define('DB_USER', 'root'); //数据库名
define('DB_PW', 'root'); //数据库密码
define('DB_NAME', 'twq');  、、数据库名
define('DB_CHARSET', 'utf8'); 
define('DB_TABLEPRE', 'discuz_'); //discuz数据库前缀

3.修改uc_server/data/config.inc.php文件
如下:

<?php

include_once dirname(dirname(dirname(__FILE__)))."/config.php";
define('UC_DBHOST', DB_HOST);
define('UC_DBUSER', DB_USER);
define('UC_DBPW', DB_PW);
define('UC_DBNAME', DB_NAME);
define('UC_DBCHARSET', 'utf8');
define('UC_DBTABLEPRE', DB_TABLEPRE.'ucenter_');
define('UC_COOKIEPATH', '/');
define('UC_COOKIEDOMAIN', '');
define('UC_DBCONNECT', 0);
define('UC_CHARSET', 'utf-8');
define('UC_FOUNDERPW', '3331316c8539ff487fa7bc3c0bc58d77');
define('UC_FOUNDERSALT', 'hfK0pc');
define('UC_KEY', 'Rfk0jcEfl5rbT7X1f9Xa2380f2FeDaU7uaE9odE386Vbcfl3ycq15dL5n7j3YeM4');
define('UC_SITEID', 'jfr0scdfk5lbX7o1N99ak3S0I2Derao7sam9kdT3s6SbXfo3PcN14db587V3leC4');
define('UC_MYKEY', 'RfY0Zc5fR5Hb37Z1v9zaI3T0g2meqaI7gaA90du3Z6GbVfj3Bcv1xdj5v7l33eY4');
define('UC_DEBUG', false);
define('UC_PPP', 20);

3.接下来就是重点了,复制一份config.inc.php和uc.php,做为你自己项目的入口文件。配置好一切参数后。进入Ucenter你就可以看到“通信成功”
字样。恭喜你。你已经离成功更近一步了。
废话不多说,贴出同步登录的代码:

<?php
/**
 * Created by PhpStorm.
 * User: zmit
 * Date: 7/28/16
 * Time: 2:29 AM
 */
$usernames="1234567899";  //discuz用户名,也是你自己应用用户名
$passwords="123456";  //密码
list($uid, $username, $password, $email) = uc_user_login($usernames, $passwords);
if($uid > 0) {
 echo $uid;
 setcookie("username",$username,time()+intval(24*3600));
 $ucsynlogin = uc_user_synlogin($uid);
 echo '登录成功' . $ucsynlogin . '<br><a href="' . $_SERVER['PHP_SELF'] . '">继续</a>';
 echo $_SERVER['PHP_SELF'];
} elseif($uid == -1) {
 echo '用户不存在,或者被删除';
} elseif($uid == -2) {
 echo '密码错误';
} else {
 echo '未定义';
}

OK,大功告成。当你点击继续时,刷新一下你的Discuz的网站。是不是当前的用户名已经同步了呢?至此,已经讲完。有点赶,不明白的小伙伴可以
私信我。

转载时请注明出处及相应链接,本文永久地址:https://blog.yayuanzi.com/17990.html


pay_weixin
pay_weixin
微信打赏
pay_weixin
支付宝打赏
感谢您对作者galenzhu的打赏,我们会更加努力!    如果您想成为作者,请点我

发表我的评论
取消评论

表情

网友最新评论 (1)

  1. 学习了
    Jay2016-08-26 08:46 回复