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... 但不会传递给需要它的函数。