歡迎光臨, 訪客. 請先 登入註冊一個帳號.
四月 19, 2024, 05:10:05 下午
19595 文章 在 3865 主題 由 4580 會員
最新註冊會員: aa123aa1
LifeType 中文開發論壇  |  開發  |  核心補強  |  请教一个问题在其它程序中调用plog的session « 上篇主題 下篇主題 »
頁: [1]
作者 主題: 请教一个问题在其它程序中调用plog的session  (閱讀 18483 次)
sunsoft
新手見習
*
文章: 7


檢視個人資料
« 於: 六月 05, 2006, 03:40:03 下午 »

我现在想要做的事情是整合一个论坛,但用户系统不是用论坛里的用户信息,而是用plog里的信息,因为我之前的plog信息已经可以正常使用了。且有很多的用户。
意思是在进入论坛时判断plog是否已经登录,若已经登录,则判断论坛的cookie是否与plog的session的用户名相同,若不相同,则重新用session中的信息登录。若相同什么都不做。当然我的自动注册已经做好了。
现在的问题是只有先进入plog才可以得到session的相关信息,若直接进入论坛,session为空。
我的代码是
<?php
include_once( PLOG_CLASS_PATH."class/controller/blogcontroller.class.php" );
include_once( PLOG_CLASS_PATH."class/net/http/session/sessionmanager.class.php" );
include_once( PLOG_CLASS_PATH."class/dao/userinfo.class.php" );
include_once( PLOG_CLASS_PATH."class/dao/bloginfo.class.php" );
    ini_set("arg_seperator.output", "&amp;");
    ini_set("magic_quotes_runtime", 0 ); 
    SessionManager::init();
   $session = HttpVars::getSession();
   print_r($session);
?>
得到的结果是
Array ( [SessionInfo] => sessioninfo Object ( [_objId] => [log] => [_props] => Array ( ) ) )

但我想要得到的结果应该是
Array ( [SessionInfo] => sessioninfo Object ( [_objId] => [log] => [_props] => Array ( [blogId] => 5914 [Year] => 2006 [Month] => 06 [Day] => 5 ) ) )
我不知道我还差哪些模块没有调用,或者是还需要执行什么函数

上面的程序,若先进入plog再进入这一页是没有问题的。
已記錄
sunsoft
新手見習
*
文章: 7


檢視個人資料
« 回覆文章 #1 於: 六月 06, 2006, 08:45:04 上午 »

为什么没有人回答啊。等着救命的呀。
已記錄
lss
我不是被~拉~~出來的,不要叫我大大!
總版主
超級會員
*****
文章: 1511



檢視個人資料 個人網站
« 回覆文章 #2 於: 六月 06, 2006, 08:52:30 上午 »

为什么没有人回答啊。等着救命的呀。

這代表:

1.有能力的人沒空回答你,請耐心等待。
2.沒能力的人不敢幫腔。
3.…(自己想,最好是不要有這種啦)

你等著救命,這裡的很多人也忙著救自己的命。若你真的很趕,也許尋求付費服務也是一個途徑。

lss
已記錄

沒找過 常見問題集或不知道 如何在 LifeType 中文開發論壇發問的人,恕不回答問題
markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #3 於: 六月 06, 2006, 09:44:38 上午 »

這裡有兩種狀況:

1. plog_session 已經存在,你當然是直接調用
2. plog_session 不存在,你必須產生 plog_session,然後才可以調用

產生 session 的方式,請參考:http://forum.lifetype.org.tw/index.php?topic=1109.0

Mark
已記錄

sunsoft
新手見習
*
文章: 7


檢視個人資料
« 回覆文章 #4 於: 六月 06, 2006, 10:52:36 上午 »

呵呵,已经解决。
现有我把我的最简化代码给出。
程式碼:
if (!defined( "PLOG_CLASS_PATH" )) {
define( "PLOG_CLASS_PATH", dirname(__FILE__)."/../");
}

include_once( PLOG_CLASS_PATH."class/controller/blogcontroller.class.php" );
include_once( PLOG_CLASS_PATH."class/net/http/session/sessionmanager.class.php" );
include_once( PLOG_CLASS_PATH."class/dao/userinfo.class.php" );

include_once( PLOG_CLASS_PATH."class/dao/bloginfo.class.php" );
include_once( PLOG_CLASS_PATH."class/plugin/pluginmanager.class.php" );
ini_set("arg_seperator.output", "&");
ini_set("magic_quotes_runtime", 0 );
SessionManager::init();
if (!$blogs)
$blogs=new BlogAction (0,HttpVars::getRequest());
$blogs->saveSession();
$session = HttpVars::getSession();
print_r($session);
已記錄
sunsoft
新手見習
*
文章: 7


檢視個人資料
« 回覆文章 #5 於: 六月 06, 2006, 10:53:34 上午 »

算了,我再开个,版猪帮我加精吧。
已記錄
markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #6 於: 六月 06, 2006, 12:22:10 下午 »

不行。這麼做是不對的!

BlogAction 中所 initial 的 session,裡面的 userInfo 與 blogInfo 是 "Default" Blog 的資料並非你這個用戶或是 blog 的資料。

所以如果你用這個方式 initial,取出來的資料是錯的!

你還是參考我給你的範例吧!

Mark
已記錄

sunsoft
新手見習
*
文章: 7


檢視個人資料
« 回覆文章 #7 於: 六月 06, 2006, 12:36:55 下午 »

呵呵,我并不是要要这个用户的blog只是要这个域名对应的分站点的blogs信息而已
已記錄
markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #8 於: 六月 06, 2006, 12:41:09 下午 »

呵呵,我并不是要要这个用户的blog只是要这个域名对应的分站点的blogs信息而已

如果是這樣,那根本不需要 initial session.

你需要透過 Blog() 來取得 blogInfo 的資料,就可以拿到 blog 對應的站點。

引用
include_once( PLOG_CLASS_PATH."class/dao/blogs.class.php" );

$blogId=你要取出資料的 blogid;
$blogs = new Blogs()
$blogInfo = $blogs->getBlogInfo( $blogId);

Mark
« 最後編輯時間: 六月 06, 2006, 12:43:42 下午 由 markwu » 已記錄

Tbreeze
初級會員
**
文章: 78


檢視個人資料
« 回覆文章 #9 於: 六月 06, 2006, 08:49:17 下午 »

嗯 还是这样好
已記錄
頁: [1]
LifeType 中文開發論壇  |  開發  |  核心補強  |  请教一个问题在其它程序中调用plog的session « 上篇主題 下篇主題 »
    前往: