搭建了一个个人网站,希望使用phpwind来完成论坛功能.但很快就发现存在用户同步的问题,我的网站已经有了用户管理功能, phpwind论坛也有.因此用户同步注册,登陆和注销是必须要实现的. 网上说可以使用ucenter,但没有找到相关资料。倒是找到了一些手动实现同步登录的资料.

http://blog.csdn.net/zjzcl/article/details/5417231

http://blog.sina.com.cn/s/blog_78ecbe330100zm1t.html.
不过这些写的都不太全面,或者有些问题.我来总结一下好了.
首先确认要同步的版本是phpwind8.7.这个phpwind目前支持下载的两大版本之一,还有一个是9,不过貌似变化比较大。8.7版本目前也是阿里云虚拟主机一键安装lamp缺省提供的论坛版本。
首先是实现用户注册的同步:
1)先把phpwind解压到http服务器某个目录下,我的是放到了网站的一个phpwind子目录下。启动install.php安装。
2)在完成自身网站用户注册的代码后面,增加如下代码即可:
 
require_once '../phpwind/global.php';
require_once(R_P.'require/checkpass.php');
 
$registerinfo->mail=email;
$registerinfo->nickname=username;
$registerinfo->uid=userid;
$this->registeInphpWind($registerinfo);
 
//-------------------------------------------------
registeInphpWind函数的实现如下:
 
   protected function registeInphpWind(stdClass $registerinfo)
    {
    $ret=new Ret();
   
 
       //pw = phpwind 的安装前缀
  //判断pw中是否有该会员数据
  $sql_valid = "select uid from phpwinddb.pw_members where username = '$registerinfo->nickname'";
       if (!$result=mysql_query($sql_valid))
{
error_log(mysql_error());
$ret->errorcode=Error_DB_Query;
    return $ret;
}
   $row = mysql_fetch_object($result);
   mysql_free_result($result);
 
  if(!$row)   
  {
    //插入该会员数据到phpwind的pw_members表
    $sql = "insert into phpwinddb.pw_members(uid,username,password,email,groupid,memberid,icon,gender,regdate,signature,introduce,location,bday,yz,aliww,banpm) values ($registerinfo->uid,'$registerinfo->nickname','$registerinfo->password','$registerinfo->mail',-1,8,'',0,'".time()."','','','','".date("Y-m-d",time())."',1,'','')";
    mysql_query($sql);
    
  
    
    //插入数据到phpwind的pw_memberdata表
    mysql_query("INSERT INTO phpwinddb.pw_memberdata (uid,postnum,rvrc,money,lastvisit,thisvisit,onlineip) VALUES ($registerinfo->uid, '0', '0', '0', '" . time() . "', '" . time() . "', '')");
    mysql_query("UPDATE phpwinddb.pw_bbsinfo SET newmember='$registerinfo->nickname',totalmember=totalmember+1 WHERE id='1'");
  }
  
  $plinfo=new stdClass();
$plinfo->username=$registerinfo->nickname;
   $plinfo->password=$registerinfo->password;
   
   $this->loginPHPWind($plinfo);
 
    }
以上最后一部分是实现用户登录,下面看看用户同步登录的实现
 
phpwind用户同步登录:
 
 
   protected function loginPHPWind(stdClass $plinfo)
    {
    //与phpwind登陆同步,原理:共用cookie
    $pwuser=$plinfo->username;
    $md5_pwpwd=$plinfo->password;
   
    $safecv=questcode('-1','1','1');
 
  
   $logininfo = checkpass($pwuser, $md5_pwpwd, $safecv, $lgt, true);
   list($winduid, $groupid, $windpwd, $showmsginfo) = $logininfo;
  
 
   $param2=StrCode($winduid."\t".$windpwd."\t".'');
  
Cookie("winduser",$param2);
Cookie("ck_info",$db_ckpath."\t".$db_ckdomain);
Cookie('lastvisit','',0);//将$lastvist清空以将刚注册的会员加入今日到访会员中
    }
 
具体原理可以参考之前的文章连接,我这里直接提供干货了。
 
3)同步登出,退出登录
 
 
这个超级简单,就一句话
Loginout();
这个函数在checkpass.php里面,所以把这个文件包含进来就可以调用了。
 
下一步是修改phpwind,实现自身网站的同步注册,登录和登出,目前我只实现了同步注册,弄好其他的再一起再发上来。

网站与phpwind用户同步的方法的更多相关文章

  1. jsp网站与discuz论坛用户同步

    需求分析: 要想实现A(jsp网站)和B(discuz论坛)的同步,这里说的同步指的是 在AB网站任意一方注册之后在另一方都可以直接登录 AB两网站之间的用户登陆状态是同步的,在任意一方登录后,另一方 ...

  2. 黄聪:多个wordpress网站(不同域名)共享用户数据的方法

    WordPress可以自定义用户数据表,这样多个wordpress网站就可以共享用户数据了,有时候这是非常方便的,这些Wordpress站点应该安装在同一个数据库下,数据表前缀各不相同.由于Wordp ...

  3. MVC5 网站开发之七 用户功能 1、角色的后台管理

    角色是网站中都有的一个功能,用来区分用户的类型.划分用户的权限,这次实现角色列表浏览.角色添加.角色修改和角色删除. 目录 奔跑吧,代码小哥! MVC5网站开发之一 总体概述 MVC5 网站开发之二 ...

  4. MVC5 网站开发之七 用户功能 2 用户添加和浏览

    目录 MVC5网站开发之一 总体概述 MVC5 网站开发之二 创建项目 MVC5 网站开发之三 数据存储层功能实现 MVC5 网站开发之四 业务逻辑层的架构和基本功能 MVC5 网站开发之五 展示层架 ...

  5. MVC5 网站开发之七 用户功能 3用户资料的修改和删除

    这次主要实现管理后台界面用户资料的修改和删除,修改用户资料和角色是经常用到的功能,但删除用户的情况比较少,为了功能的完整性还是坐上了.主要用到两个action "Modify"和& ...

  6. JAVA中线程同步的方法(7种)汇总

    同步的方法: 一.同步方法 即有synchronized关键字修饰的方法. 由于java的每个对象都有一个内置锁,当用此关键字修饰方法时, 内置锁会保护整个方法.在调用该方法前,需要获得内置锁,否则就 ...

  7. phpwind数据同步本地之后板块排版乱

    排版紊乱的问题一般是css文件的问题 解决思路 1.打开chrome调用F12,查看是不是css文件没有获取. 2.如果没有获取到的话检查css文件的路径. 在本例中phpwind数据同步到本地之后, ...

  8. iOS网络编程同步GET方法请求编程

    iOS SDK为HTTP请求提供了同步和异步请求两种不同的API,而且可以使用GET或POST等请求方法.我们先了解其中最为简单的同步GET方法请求. 首先实现查询业务,查询业务请求可以在主视图控制器 ...

  9. linux内核空间与用户空间信息交互方法

    linux内核空间与用户空间信息交互方法     本文作者: 康华:计算机硕士,主要从事Linux操作系统内核.Linux技术标准.计算机安全.软件测试等领域的研究与开发工作,现就职于信息产业部软件与 ...

随机推荐

  1. CentOS6.7-64bit编译spark-1.6.1和spark-1.3.1

    编译spark-1.6.1 tar -zxvf spark-1.6.1.tgz -C /usr/local/src/ cd /usr/local/src/spark-1.6.1/ #设置内存2G ex ...

  2. (转)explain、db2exfmt 命令的使用:文本输出执行计划

    原文:http://blog.51cto.com/freebile/1068610 db2有图形执行计划显示工具,如果没有图形环境,如unix主机,可以生成文本的文件来显示执行计划1.如果第一次执行, ...

  3. Bridge桥接模式(结构型模式)

    现有一个需求,一个游戏系统需要构建不同风格的房屋,暂不考虑其他设计模式,需要能实现在PC端.移动端....等等多个平台的构建.最简单的实现方式如下: /// <summary> /// 房 ...

  4. 执行HBase shell时出现ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet错误解决办法(图文详解)

    不多说,直接上干货! [kfk@bigdata-pro01 bin]$ jps NameNode ResourceManager JournalNode HMaster DataNode HRegio ...

  5. 编译centos6.5:glibc 升级2.14问题

    第一种:不需要 ln 创建软连接,缺点嘛,就是直接安装到系统文件夹/lib64下,想换回来就比较麻烦.(我选择的第二种,因为公司需要fpm打包,写到脚本里面,第一种之间安装在/usr目录下,打包的包安 ...

  6. Linux-(rcp,scp)

    rcp命令 1.命令格式: rcp [参数] [源文件] [目标文件] 2.命令功能: rcp命令用在远端复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前 ...

  7. tsung压力测试——安装

    在安装之前确保安装了以下工具: erlang 必须要有安装java环境,要不然不成功 yum install gcc yum install gcc-c++ yum install libtool y ...

  8. offsetTop、offsetLeft、offsetWidth、offsetHeight的用法

    假设 obj 为某个 HTML 控件. obj.offsetTop 指 obj 相对于版面或由 offsetParent 属性指定的父坐标的计算上侧位置,整型,单位像素. obj.offsetLeft ...

  9. tomcat之日志切割

    日志分割 场景:日志量比较大,且研发程序没有设置分卷 1.配置样例: 文件路径:/etc/logrotate.d/tomcat /data/logs/catalina.out { daily comp ...

  10. Eclipse和Myeclipse的Properties插件(解决properties文件乱码)

    资源链接:链接:https://pan.baidu.com/s/13M2ovUUXLfOENFoD17MLng 密码:zvo9 插件安装: 解压后得到features.Plugins两个文件将他们放入 ...