0
function User_CustomValidate(&$usr, &$pwd) {

     global $usr2; 
     $usr = $usr2;  
        $this->setCurrentUserName($usr); // Set the current user name 
        return TRUE;
} 

我有一个需要填充的简单函数。但是 $usr 不允许将任何变量传递给它。这将保存一个会话用户 ID。如果我将它设置为 $usr = '445' 它会使用用户 445 的凭据将每个人都登录到该站点 - 所以它可以工作。

但是起初我试图设置 $usr = $_SESSION['uid'] 来获取用户信息。uid 数据在代码中传递良好,但 $usr 却一无所获。

所以在收集会话 uid 之后,我添加了 $usr2 = $_SESSION['uid']。我所有的页面都可以显示 $usr2。但是 $usr 不会更新。我唯一能让 $usr 接受的是静态条目,它不适用于动态用户登录。

编辑:

下面的回声笔记 -

if (IsLoggedIn()) echo "logged in"; // it returns "logged in"
echo "userlevel:" . CurrentUserLevel(). "---"; // it returns nothing relies on username
echo "username:" .  CurrentUserName();  // it returns nothing relies on function
echo "userid:" .  CurrentUserID (); // it returns nothing relies on username
echo "usr:" . $usr;  //returns nothing
echo "usr2:" .  $usr2;  //returns uid
echo "session" .  $_SESSION['uid']; //returns uid

另一个注意事项 - 如果我在页面上的函数之外有 $usr = $usr2 ,那么它会将 uid 信息传递给 $usr... 但不会传递给需要它的函数。

4

0 回答 0