Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 注册后登录Moodle_Php_Authentication_Moodle - Fatal编程技术网

Php 注册后登录Moodle

Php 注册后登录Moodle,php,authentication,moodle,Php,Authentication,Moodle,我正在尝试做我的第一个Moodle auth扩展,我想在注册后直接确认和登录用户 我在“电子邮件”身份验证插件中更改了用户注册功能,如下所示: \core\event\user_created::create_from_userid($user->id)->trigger(); $DB->set_field("user", "confirmed", 1, array("id"=>$user->id)); $user = get_complete_user_dat

我正在尝试做我的第一个Moodle auth扩展,我想在注册后直接确认和登录用户

我在“电子邮件”身份验证插件中更改了用户注册功能,如下所示:

\core\event\user_created::create_from_userid($user->id)->trigger();

$DB->set_field("user", "confirmed", 1, array("id"=>$user->id));

$user = get_complete_user_data('username', $username);
$DB->set_field("user", "firstaccess", time(), array("id"=>$user->id));
$DB->set_field("user", "lastlogin", 0, array("id"=>$user->id));
update_user_login_times($user);

complete_user_login($user);
redirect("$CFG->wwwroot/enrol/index.php?id=2");
只要用户注册并确认,它就可以工作。但对于登录,我得到以下错误:

core\session\manager::login\u user()必须是给定的stdClass的实例


我在这里可能表现得很愚蠢,但我不知道如何在这里登录新用户。任何帮助都将非常感激。谢谢

创建用户帐户后,获取您输入的用户名和密码,然后像这样实现

if ($user = authenticate_user_login($username, $password)) {
/// Let's get them all set up.
        complete_user_login($user);
        redirect($CFG->wwwroot . 'URL you want');
}

有没有可能让任何使用moodle的学校的学生使用他们的moodle登录?例如,我有一个大学图书租赁应用程序,我想有一个“用moodle登录”按钮。可能吗?Moodle不提供此功能,但您可以为此创建自己的API以使用Moodle进行登录。谢谢Priye,但实际上我不知道如何获取用户名和密码。