2011-06-06 176 views
0

我有一个小问题。我试图从[user]中提取数据,但我似乎可以正确地做到这一点。有人可以请给我一个例子,如何提取用户ID,从那里我是金。这是$_SESSION数组(会话包含的内容),如果有帮助的话。从多维数组中提取特定数据

Array ([__default] => Array ( 
          [session.counter] => 3 
          [session.timer.start] => 1307209662 
          [session.timer.last] => 1307209693 
          [session.timer.now] => 1307209701 
          [session.client.browser] => Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1 
          [registry] => JRegistry Object ( 
                  [_defaultNameSpace] => session 
                  [_registry] => Array ( 
                        [session] => Array ( 
                             [data] => stdClass Object () 
                             ) 
                       ) 
                  [_errors] => Array () 
                  ) 
          [user] => JUser Object ( 
                [id] => 0 
                [name] => 
                [username] => 
                [email] => 
                [password] => 
                [password_clear] => 
                [usertype] => 
                [block] => 
                [sendEmail] => 0 
                [gid] => 0 
                [registerDate] => 
                [lastvisitDate] => 
                [activation] => 
                [params] => 
                [aid] => 0 
                [guest] => 1 
                [_params] => JParameter Object ([_raw] => 
                        [_xml] => 
                        [_elements] => Array () [_elementPath] => Array (                                        [0] => C:\xampp\htdocs\libraries\joomla\html\parameter\element) 
                                          [_defaultNameSpace] => _default 
                                          [_registry] => Array ( 
                                                [_default] => Array ( 
                                                     [data] => stdClass Object () 
                                                     ) 
                                               ) 
                                          [_errors] => Array () 
                        ) 
                [_errorMsg] => [_errors] => Array () 
                ) 
          [session.token] => 971893bd69fff85ea2a006788a28b15d 
         ) 
    [referrerid] => AUPRS-JOHNDOE 
    ) 
+0

欢迎使用堆栈溢出 - 帮助人们回答您的问题的最佳方法之一是在您的问题中很好地格式化任何代码。看看这里的帮助笔记:http://stackoverflow.com/editing-help – 2011-06-06 17:49:14

+0

如果这是一个Joomla会话,那么可能有包装函数可以完成获取一些用户信息。另外,*您究竟如何尝试访问数据? – mario 2011-06-06 17:51:41

+0

我想包括一些脚本到我的joomla为基础的网站,一个例子是从ajaxim.com ajaxim和我需要检查外部joomla如果用户登录,提取他的用户名,身份证,密码和其他相关信息关于他在ajaxim或未来的脚本中使用,我想集成。 – Aberatiu 2011-06-06 18:33:22

回答

1
$user = $_SESSION['user']; 
echo $user->id; 

这似乎是你所需要的。

0

这将输出的用户名(如果有任何)

print $_SESSION["__default"]["user"]->name; 

首先需要克服$ _SESSION数组中的__default关键指标。同样是user一个数组键。但是user条目包含的是一个对象,因此您需要使用对象箭头来最终访问name

此外,我不会依靠__default是给定的。对Joomla一无所知,但$ _SESSION数组结构可能更加灵活。因此,最好找到一个函数来取代你的用户对象。

+0

马里奥,我最终找到了一个解决方案,但它不像你的优雅和干净,所以我放弃了你的。你的解决方案是完美的对于参考,我不那么干净的解决方案是这个函数getvalue($ value,$ key,$ what) { \t $ info [$ key] = $ value; \t echo $ info [$ what]; } $ array = $ _ SESSION ['__ default'] ['user']; array_walk($ array,“getvalue”,“username”); – Aberatiu 2011-06-06 18:38:59