首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在HumHub中使用第三方应用程序获取用户详细信息

在HumHub中使用第三方应用程序获取用户详细信息
EN

Stack Overflow用户
提问于 2015-07-05 20:00:37
回答 2查看 1.7K关注 0票数 1

我正在为humhub构建一个自定义的网络研讨会。我正在使用Custom_pages模块(https://www.humhub.org/marketplace/details?id=13),如何在我的应用程序中获取当前登录用户的用户详细信息?

有人给了我这个代码让我试试

代码语言:javascript
复制
//plug in to Yii application
require_once('../protected/vendors/yii/yii.php');
Yii::createWebApplication('../protected/config/main.php');

//------------------

//print_r(Yii::app());

echo "<br />";

//check if user is logged in (not a guest)
if(!Yii::app()->user->isGuest)
{
    //if logged in, display the username and ID
    echo "<strong>Logged In.</strong>";
    echo "<br />";
    echo "Username: ".Yii::app()->user->name;
    echo "<br />";
    echo "User ID: ".Yii::app()->user->id;
}
else
{
    //if not logged in, display username (Guest)
    echo "<strong>Not Logged In.</strong>";
    echo "<br />";
    echo "Username: ".Yii::app()->user->name;
}

但由于某些原因,line 3使页面无法加载。如果我注释掉它,页面会加载,但Yii是空的。

有没有办法在我的第三方应用程序中获取登录用户的用户详细信息?

任何方法都将不胜感激

EN

回答 2

Stack Overflow用户

发布于 2015-09-06 02:55:53

我使用了你的代码,它对我来说工作得很好,但是我需要根据我的需要对它进行修改。也许我的修改对你有用。

代码语言:javascript
复制
    <?PHP
//this script gets the id and email "as name" from hum hub 
require_once('../humhub-master/protected/vendors/yii/yii.php');
Yii::createWebApplication('../humhub-master/protected/config/main.php');

//I create these vars to use in my custom pages
    $hum_uid=Yii::app()->user->id;
    $hum_name=Yii::app()->user->name;
    // this should get me a real username
$servername = "******";
$username = "******";
$password = "*****";
$dbname = "humhub";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT id, username FROM user WHERE id='$hum_uid'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        $hum_username =  $row["username"];
        echo $hum_username;
    }
} else {
    echo "0 results";
}
?>

我把它放在humhub中的一个iframe自定义页面的顶部。当您需要用户名时,只需使用$hum_username。

使用sql select,您可以从id='$hum_uid‘的数据库中的user表中获得所需的任何内容

票数 1
EN

Stack Overflow用户

发布于 2017-12-19 20:25:28

更简单:

代码语言:javascript
复制
$userUsername = Yii::$app->user->identity->username;

其他有用的完整变量:

代码语言:javascript
复制
$userDisplayName = Yii::$app->user->identity->getDisplayName();
$userAttributesArray = Yii::$app->user->identity->getSearchAttributes(); // all profile fields and groups      
$userIsGuest = Yii::$app->user->isGuest; // true = loggedOut, false = loggedIn
$userIsAdmin = \humhub\modules\admin\widgets\AdminMenu::canAccess();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31230098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档