歡迎光臨, 訪客. 請先 登入註冊一個帳號.
三月 28, 2025, 04:01:29 上午
19595 文章 在 3865 主題 由 4579 會員
最新註冊會員: aa123aa1
  列出文章
頁: 1 [2] 3 4 ... 7
16  開發 / 外掛程式 / 关于站点整合用户注册的讨论 於: 六月 03, 2005, 03:59:15 下午
我在用户统一注册方面做了些尝试,现在有些成功,但是有部分也做不成功,列出来大家讨论一下,希望能大家能讨论出个解决办法来。
我的目前架构是这样的,有一台oracle数据库有个表userbaseinfo,我在这个表中记录所有其他系统的用户注册登陆信息,比如用户名,密码等,其他的子系统注册的时候都向这个表写入数据,写入的时候好查找是否重复。结合plog,我在
class/dao/users.class.php中增加了个函数如下:

 
然后增加了个验证函数如下:
       function getUserBaseInfo( $username)
        {
              
                  $a=new db_sql;
                  $a->query("select count(LOGINNAME) as users_num from USERBASEINFO  where LOGINNAME='$username'");
                   while($a->next_record()){
                     $users_num=$a->Record["users_num"];
                  }
               
               if($users_num>0)
                return true;
            else
                return false;
                  
            }
在function userExists( $userName ) 函数后面加入了
       function UserBaseInfoUserExists( $userName )
        {
          return( $this->getUserBaseInfo( $userName ));  
        }
并且在  function addUser( &$user )中增加了以下语句:

      //对oracle数据库的用户
   
         $a=new db_sql;
         $sqlstr=("INSERT INTO USERBASEINFO(USERID,LOGINNAME, PASSWORD, EMAIL, PASSWORDENCRYPT)
           values(Sequence_USERBASEINFO.nextval,'".Db::qstr($user->getUserName())."', '".$user->getPassword()."','".
                      Db::qstr($user->getEmail())."','".md5($user->getPassword())."')");
         $a->query($sqlstr);
         
      

            $userId = $this->_db->Insert_ID();
         
         $user->setId( $userId );

            return $userId;
           
           
        }

以上部分的实现解决在oracle中插入数据是没问题的。

关于登陆部分,我想这样构造,在

然后在class\action\admin\adminloginaction.class.php中大约67行左右 把if( !$users->authenticateUser( $this->_userName, $this->_userPassword )
改成了if( !$users->authenticateUser( $this->_userName, $this->_userPassword ) && !$users->authenticateUserbaseinfoUser( $this->_userName, $this->_userPassword )){
然后75行左右加入了

           if( !$users->authenticateUser( $this->_userName, $this->_userPassword ) && $users->authenticateUserbaseinfoUser( $this->_userName, $this->_userPassword )){
               //执行插入操作
               $users->addForUserbaseinfoUser( $this->_userName, $this->_userPassword );
               
           
authenticateUserbaseinfoUser这个函数在class/dao/users.class.php中定义

        function authenticateUserbaseinfoUser( $user, $pass )
        {
                  $a=new db_sql;
                  $query="select count(loginname) as users_num from userbaseinfo  where loginname='".Db::qstr($user)."' and passwordencrypt='".md5($pass)."'";
                  $a->query($query);
            
                 while($a->next_record()){
                     $users_num=$a->record["users_num"];
                  }

            if( $result == false )
                return false;

                  if($users_num==1)
                return true;
            else
                return false;
        }        

 addForUserbaseinfoUser函数在class/dao/users.class.php中定义如下:
 
        function addForUserbaseinfoUser( $user, $pass )
        {
                  
           
              $a=new db_sql;
                  $query="select email as email,passwordencrypt as passwordencrypt from userbaseinfo  where loginname='".Db::qstr($user)."' and passwordencrypt='".md5($pass)."'";
                  $a->query($query);
            
                 while($a->next_record()){
                     $users_num=$a->record["users_num"];
                  }
 
           
           $sql1="insert into ".$this->getPrefix()."users(user,password,email,properties,status,resource_picture_id)
                         values($user,$passwordencrypt,$email,'a:0:{}',1,0)";
           
               $result = $this->Execute( $sql1 );
 
               
           $sql2="select blogs.owner_id as owner_id from ".$this->getPrefix()."blogs blogs,".$this->getPrefix()."users users where blogs.owner_id=users.id and users.user=$user";
           
           $result = $this->Execute( $sql2 );
           
 
               
           $sql3="insert into ".$this->getPrefix()."blogs(blog,owner_id,settings,status,show_in_summary) values($user,$owner_id,'".'O:12:"blogsettings":3:{s:6:"_objId";N;s:3:"log";O:6:"logger":2:{s:9:"appenders";a:1:{i:0;O:12:"fileappender":4:{s:4:"file";s:12:"tmp/plog.log";s:2:"fp";i:0;s:6:"layout";O:13:"patternlayout":2:{s:7:"message";N;s:7:"pattern";s:28:"%d %N - [%f:%l (%c:%F)] %m%n";}s:11:"_properties";a:4:{s:6:"layout";s:28:"%d %N - [%f:%l (%c:%F)] %m%n";s:8:"appender";s:4:"file";s:4:"file";s:12:"tmp/plog.log";s:4:"prio";s:5:"debug";}}}s:4:"prio";s:5:"debug";}s:6:"_props";a:11:{s:6:"locale";s:5:"zh_CN";s:14:"show_posts_max";s:2:"50";s:8:"template";s:8:"standard";s:17:"show_more_enabled";s:1:"1";s:16:"recent_posts_max";s:2:"50";s:17:"xmlrpc_ping_hosts";a:1:{i:0;s:27:"http://rpc.weblogs.com/RPC2";}s:16:"htmlarea_enabled";s:1:"1";s:16:"comments_enabled";s:1:"1";s:16:"categories_order";i:0;s:14:"comments_order";s:1:"1";s:11:"time_offset";s:1:"0";}}'."',1,1)";
           
           $result = $this->Execute( $sql3 );  
 
               
           $sql4="select articles_categories.blog_id as blog_id from ".$this->getPrefix()."articles_categories articles_categories,".$this->getPrefix()."blogs blogs,".$this->getPrefix()."users users where articles_categories.blog_id=blogs.id  and blogs.owner_id=users.id and users.user=$user";
           
           $result = $this->Execute( $sql4 );  
            if( !$result )
                return false;          
           $sql5="insert ".$this->getPrefix()."articles_categories(name,blog_id,in_main_page,parent_id,properties) values('工作日志',$blog_id,1,0,'a:0:{}');
           
           $result = $this->Execute( $sql4 );  
 
                           
           return true;                    
                  
        }
       
       
出了如下错误:

Parse error: parse error in /www/blog/class/dao/users.class.php on line 157

Fatal error: Cannot instantiate non-existent class: users in /www/blog/class/dao/articles.class.php on line 49

不知道如何解决了,请各位讨论一下,
17  開發 / 外掛程式 / [plugin]置頂文章外掛程式 於: 六月 03, 2005, 02:58:48 下午
谢谢lss,您讲的很清楚,我现在明白了,刚才和mark交流了一下,看来我还是想的太复杂了,那我把这个插件先用上去,再加入帮助我想bloger应该就明白怎么做了,真的非常感谢lss如此不厌其烦,耐心的给我解决问题,太谢谢了!
18  開發 / 核心補強 / 请问如何从plog的sessino中提取出当前用户名,blog名等相关信息? 於: 六月 03, 2005, 01:02:08 下午
顶一下,这个问题好,我也遇到了,不知道如何解决?
19  開發 / 外掛程式 / [plugin]置頂文章外掛程式 於: 六月 03, 2005, 12:57:33 下午
lss 我觉得对置顶文章管理还是不方便,首先要让blog自己决定该把哪篇置顶,可是我在 “置顶及公告文章设定 ”中只看到文章数目设置,那么作为一个普通的blog他如何设置自己的文章id为精华,我看你们有讨论说把id写入main.templete里面,可是这个模板文件只有管理员才能上传,普通的blog既不知道如何改由不知道如何上传,所以我不知道这方面如何考虑的?请有空答复以下。谢谢
20  開發 / 外掛程式 / [plugin]置頂文章外掛程式 於: 六月 03, 2005, 10:36:05 上午
请问该插件装上后怎么翻译页面"Sticky Posts"和“Announce Posts”的中文含义?
21  開發 / 外掛程式 / [plugin]置頂文章外掛程式 於: 六月 03, 2005, 08:52:15 上午
谢谢lss看来我还是很粗心,我在钻研一下,有问题再请教! 微笑
22  開發 / 外掛程式 / [plugin]置頂文章外掛程式 於: 六月 02, 2005, 04:40:01 下午
lss 你能否把你完整的main.template这个文件贴到这里,我怎么做不成功!或者哪位做成功的清完整贴出来,谢谢啦!
23  開發 / 外掛程式 / [plugin]置頂文章外掛程式 於: 六月 02, 2005, 01:34:20 下午
下载了这个插件,但是readme-zh_TW.txt为繁体字,我这里没有看繁体字的工具,所以看不明白什么意思
24  開發 / 外掛程式 / [plugin]置頂文章外掛程式 於: 六月 02, 2005, 12:53:01 下午
是的,我要的是“置頂文章外掛程式”最新版本
25  建議 / 要求與建議 / plog的数据如何备份与恢复? 於: 六月 02, 2005, 12:49:26 下午
现在版本没有备份恢复数据功能,我在想那天如果服务器出问题了我们就一点办法都没了,请问这方面如何解决?
26  建議 / 要求與建議 / plog可以整合的程序有? 於: 六月 01, 2005, 09:41:01 上午
引用自: markwu
引用自: 关于整合
引用自: nba23
目前还没有...要自力更生了 開懷大笑


自立更生也需要推荐几个比较好的程序阿。 至少有人在往那个方向努力, 你说是吧? 眨眼睛


這可能要你自己決定了。

不管是什麼系統整合,都有三個步驟要作:

1. User Authentication:你必須決定要以哪一個系統的使用者資料庫為主,如果你已經有 discussZ, phpbb,那你可以用 DiscusZ 或 PHPBB 的使用者資料庫為主,只是你必須把 pLog 的 User Authenticaton 指向 Discusz 或 PHPBB 的 Table

2. Session/Cookie 整合。也就是我登入 PHPBB 後同樣也登入了 pLog,或是登陸了 pLog 後同時也登入 PHPBB。這必須要兩邊程式都要改,也就是當登入後,產生兩邊的 cookie 或是 session

3. 前後台介面統一,這應該是最不重要的。有時間在做。

所以你必須先知道你要整合哪些東西,把你的想法放上來才能繼續討論。

Mark


mark兄的观点很准确,给我们思路很清晰,但是现在我觉得你说的第二点很重要,如果解决了Session/Cookie 整合问题其实所有问题基本解决了,因为现在好多论坛系统都使用cookie方式,可是我们的plog使用session
27  開發 / 外掛程式 / [plugin]置頂文章外掛程式 於: 六月 01, 2005, 09:28:19 上午
hi  lss
你给的地址我去下载的时候需要用户名和密码,你还在别的地方放置了吗?
28  建議 / 要求與建議 / plog可以整合的程序有? 於: 五月 30, 2005, 04:05:39 下午
类似问题我也问过,至今也没有个解决方案,这是个非常实在的问题,希望各位能不能集思广益大家讨论解决一下吧?谢谢各位了
29  支援 / 使用與操作 / 博客注册的时候为何不接受中文名? 於: 五月 30, 2005, 02:13:03 下午
中文用户名的注册不知道各位有什么新的思路吗?我觉得既然博客名可以中文,为何用户名就不可以呢?
30  支援 / 安裝與設定 / 资源中心不能生产图片缩略图,各位请帮忙 於: 五月 30, 2005, 01:53:29 下午
参考我写的
http://forum.lifetype.org.tw/index.php?topic=708.0
頁: 1 [2] 3 4 ... 7