有时我们会使用帝国cms制作多个网站,会想让所有网站使用一套会员系统,这样对于我们的管理更加方便。
首先,假设我们有“A网站”、“B网站”、“C网站”
安装系统的数据库名分别为“adb”、“bdb”、“cdb”;
使用的域名分别为“a.phome.net”、“b.phome.net”、“c.phome.net”。
操作步骤:
一、首先我们把A网站的会员数据表作为所有网站的公共会员表。
会员数据表的表名是:adb.phome_enewsmember
(这里一定要带上数据库名作为前缀)
二、修改所有网站会员配置文件( /e/class/user.php ),把会员表名全部改成公共会员表名“adb.phome_enewsmember”。
我们打开 /e/class/user.php 文件,搜索下面的代码:
折叠PHP 代码
- $user_tablename="{$user_tbpre}enewsmember"; //用户表
替换为
折叠PHP 代码
- $user_tablename="adb.phome_enewsmember"; //用户表
三、接下来,我们需要修改cookie的作用域,设置统一的COOKIE信息可以实现同步登录与退出,修改如下:
搜索:
折叠PHP 代码
- $phome_cookiedomain=''; //cookie作用域
修改为:
折叠PHP 代码
- $phome_cookiedomain='.phome.net'; //cookie作用域
然后修改cookie前缀
折叠PHP 代码
- $phome_cookievarpre='ecms'; //前台cookie变量前缀
三个网站的cookie前缀必须一致。
这样我们就可以实现会员同步登陆、退出、注册了。这里大家可能注意到了一个问题,就是cookie作用域,我们只能填主域名,也就是几个网站只能用子域名来访问才能实现同步登入登出,如果主域名不同,也就没办法实现了。不过这不影响几个网站共用会员数据。