• phpcms 整合 discuz!


    第一步,进入discuz后台,点击UCenter菜单,然后点击应用管理,接着点击右侧的添加新应用按钮
    
    然后填写应用相关信息:
            1、应用类型选择“其他”
            2、应该名称填写“phpcms”                //此处可以自己定义名称
            3、应用的主URL填 http://你的域名/phpsso_server         //我的是http://localhost/hi0556/phpsso_server
            4、通讯密钥现在不填写,保存的时候会自动生成,后面会用到此密钥
            5、是否开启同步登录选择“是”
            6、是否接受通知选择“是”
    
    接着点击提交,此时看到应用列表,但是通讯状态是失败
    
    解决办法,进入第二步操作。
    第二步,登录phpcms的phpsso ――>系统设置――>UCenter配置
    
    API地址可以在DZ――->站长――>UCenter设置中查看
    
    数据库信息按照你的实际情况进行填写,数据库密码不能为空哦,否则测试会失败的!!!!
    UCenter表前缀不能直接写表名前缀,必须使用格式为:`数据库名`.表名前缀
    提交后进DZ的应用列表可以看到新增的应用通信成功了!
    
    第三步,你会发现以下几种情况:
    1)        phpcms登录的用户可以同步到discuz
    2)        phpcms退出时无法同步到discuz
    3)        discuz登录无法同步到phpcms
    4)        discuz退出无法同步到phpcms
    解决办法:
    Phpcms退出无法同步到discuz的原因是
    由于phpcmsphpsso_serverphpcmsmodulesphpsso classes phpsso.class.php文件中的__construct函数解析出post[data]为空情况下
    直接exit操作导致Javascript语 句无法输出,简单做法是注释掉exit即可
    
    通过以上操作就可以使用phpcms退出能够同步到discuz了
    第四步,处理discuz登录无法同步到phpcms的情况
            Discuz登录无法同步到phpcms
            Discuz退出无法同步到phpcms
    解决办法:
    修改discuz的登录代码
    1、        修改 templatedefaultmemberlogin.htm 第 40行 行,删除
    
    onsubmit="{if $this->setting['pwdsafety']}pwmd5('password3_$loginhash');
    {/if}pwdclear = 1;ajaxpost('loginform_$loginhash', 'returnmessage_$loginhash', 'returnmessage_$loginhash', 'onerror');
    return false;"
    
    2、        修改 templatedefaultmemberlogin_s imple.htm 第 3 行,删除
    
    onsubmit="return lsSubmit()"
    
    3、        修改 /source/function/function_message.php 第 78 行,查找
    
    $param['header'] = true;
    替换为:
    $param['header'] = false;
    
    找到DZ文件夹下的uc_clientdatacacheapps.php,找到该文件下是否存在我们新增的应用phpcms,如果不存在,
    则需要新增,复制uc_serverdatacacheapps.php中的项目信息数组到该文件中
    
    2 => 
      array (
        'appid' => '2',
        'type' => 'OTHER',
        'name' => 'phpcms',
        'url' => 'http://localhost/hi0556/phpsso_server',
        'authkey' => 'a97cvX78Rg/OtVswGhVBXxa7MUcyWgI4aZghoUI',
        'ip' => '',
        'viewprourl' => '',
        'apifilename' => 'uc.php',
        'charset' => '',
        'dbcharset' => '',
        'synlogin' => '1',
        'recvnote' => '1',
        'extra' => 
        array (
          'apppath' => '',
          'extraurl' => 
          array (
          ),
        ),
        'tagtemplates' => '<?xml version="1.0" encoding="ISO-8859-1"?>
    <root>
            <item id="template"><![CDATA[]]></item>
    </root>',
        'allowips' => '',
      ),
    Phpcms注册的会有在第一次登录discuz时需要激活一次,这问题可以在discuz后台里面解决:
    Discuz后台――>站长――>UCenter设置,拉到最后有个“是否允许其他应用的会有在站点激活”和“是否允许直接激活”,两个都选择“是”然后提交,即可解决此问题
    

      

  • 相关阅读:
    [bzoj1039] [ZJOI2008]无序运动Movement
    [bzoj1037] [ZJOI2008]生日聚会Party
    [bzoj1034] [ZJOI2008]泡泡堂BNB
    wing IDE
    用css解决table文字溢出控制td显示字数
    表格Table宽度设置无效的解决方法
    mysql获取某个表的所有字段名
    Python 各种编码相互转化 (目前只有Unicode utf-8)
    Python dict转化为string方法
    前端传给后端的数据类型为ImmutableMultiDict 咋办
  • 原文地址:https://www.cnblogs.com/qhorse/p/5704522.html
Copyright © 2020-2023  润新知