使用外部数据库中的信息在登录时在WordPress网站上创建用户帐户

阿尔伯特

我有一个PHP网站,在MySQL数据库中拥有自己的用户。该网站是“活跃的”,因此将在未定义的时间内继续创建新的用户帐户。

现在,我必须使用WP创建另一个具有以下2个特殊性的网站:

  • 仅当用户登录网站时,才能访问网站的某些部分
  • 可以访问此WP网站的用户是第一个网站使用的用户表中的一些用户。这很重要,因为并非所有这些用户都可以访问,只有具有该表中的字段之一且具有某些值的用户才可以访问。

我想到的实现此目的第一种方法是创建一个自定义登录功能来执行所有处理,而无需让wordpress自行为这些用户创建任何类型的用户帐户。我不是WP开发人员,但我想通过一些研究,我可以找到解决方法。

该选项的问题是,我计划包括一个论坛以及实际上可能需要WP中的用户帐户来跟踪评论,帖子等的其他功能。

所以我想寻求建议的是如何处理所有这些理想情况下,我需要的是以下实现:

  • 当用户想要访问网站的某些部分时要求登录
  • 使用自定义功能在登录时检查外部数据库中的用户凭据,该功能不仅验证用户名和密码,还验证第三个(甚至第四个)字段
  • 登录时(如果是第一次),则使用该用户在另一个网站中拥有的信息为该用户在WP中创建一个帐户,但会阻止任何典型的帐户管理功能(更改配置文件信息,密码等)

我知道只要编写一些代码就可以完成所有工作,我只是对Wordpress不太了解,所以我不知道这些事情是否太复杂了。

我想到的另一种选择是在创建原始网站中的帐户时立即在WP中创建用户帐户,但是我不知道是否甚至可以“合法”方式创建帐户(另一个网站的WP)。

对此主题的任何建议将不胜感激

jnhghy-亚历山德鲁·扬提亚

一种解决方案是通过将信息从旧网站推送到wordpress来在wordpress中创建帐户。我确定您有一个触发器(当您决定需要在wordpress中创建用户时),该触发器需要触发时,请让您的网站将用户信息发送到wordpress站点中的wordpress脚本中您需要创建一个新的php文件,该文件将为用户创建以下内容:

您的PHP网站决定拥有一个用户,该用户检查所有在WordPress网站上开设帐户的原因,因此它将生成wget或curl(用于直接解决方案),并将所有需要传递给WordPress的信息作为参数。就像是

yourWPwebsite.com/createUser.php?username=<?php echo the username ?>&email=<?php echo the user email; ?>&...

然后createUser.php在WordPress网站的根目录中创建一个文件(根据您的设置,您可能需要修改.htaccess,但在大多数设置中它应该都可以工作)

在该文件中(createUser.php)首先包括WordPress,其中包括休闲的wp-load.php:

require( 'wp-load.php' ); //if you put this script in another place then root you need to make sure you change the path for this file.

之后,您可以使用任何WordPress功能,例如安全性,我建议您仅从其他站点ip接受对此的视图,或者包括某种令牌来认证信息的来源,如果未通过身份验证,则重定向到404或主页或您想要的任何消息,然后阅读get变量(您可能希望对其进行一些清理)

然后使用休闲的wp函数创建用户: <?php wp_create_user( $username, $password, $email ); ?>

您可能使用的代码如下所示:

$user_id = username_exists( $user_name );
if ( !$user_id and email_exists($user_email) == false ) {
    $random_password = wp_generate_password( $length=12, $include_standard_special_chars=false );
    $user_id = wp_create_user( $user_name, $random_password, $user_email );
} else {
    $random_password = __('User already exists.  Password inherited.');
}

如果您希望用户具有特定角色,则可以添加一个角色管理/编辑插件并创建一个新角色,然后将该角色设置为默认角色。如果您想为用户强制使用某个角色,则需要在上述代码之后添加以下代码:

$user_id = wp_update_user( array( 'ID' => $user_id, 'role' => "DesiredRoleHere" ) );

使用用户管理插件,您可以删除用户的配置文件权限,也可以删除其他(很多)东西,例如使用Multisite User Management这样的插件来了解一个主意(其他想法可能更好),这样,用户就会在您的帐户上拥有一个帐户使用您设置的密码的wordpress网站,如果您想验证用户身份,可以采取类似的步骤,但是auth脚本将调用wp_authenticate并具有类似于以下内容的脚本:

 $logging = wp_authenticate ($username, $password);
 //then redirect to the page you want to redirect users when they log in

它不是很多编码,但是您需要深入研究它,以确切了解每个步骤都有哪些限制。

另一个解决方案可能使用的是WP API之类的API,但是我没有使用过它,我不知道您可以做什么来验证用户身份并将其重定向到所需的wp页面(不确定)...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用firebase数据库创建单独的登录帐户?

来自分类Dev

如何在我的网站上显示数据库信息?

来自分类Dev

与使用哈希的网站数据库中的用户一起登录Winforms应用

来自分类Dev

goDaddy网站上的数据库用户访问被拒绝

来自分类Dev

goDaddy网站上的数据库用户访问被拒绝

来自分类Dev

用户登录时使用PHP代码从数据库中获取特定数据

来自分类Dev

如果用户帐户已从数据库中删除但用户已登录,则销毁会话

来自分类Dev

如何使用php将用户信息从facebook sdk提取到我网站的数据库中

来自分类Dev

管理整个网站上使用的数据库查询

来自分类Dev

使用数据库中的信息创建 Excel 文件

来自分类Dev

使用数据库中的信息动态创建子域

来自分类Dev

在 wordpress 多站点数据库中删除具有零阶值的用户帐户

来自分类Dev

在整个网站上使用WordPress登录系统?

来自分类Dev

Spring MVC:如何从Thymeleaf每个页面的数据库中重新加载登录的用户信息?

来自分类Dev

从数据库模型中向登录用户显示他们自己的信息

来自分类Dev

在使用struts2的网站设计中,当用户登录时,如何保持不同网站之间的用户信息?

来自分类Dev

使用Java在MongoDB中创建数据库用户

来自分类Dev

无法使用execBatch()在Hana数据库中创建用户

来自分类Dev

作为使用Wordpress的网站上的授权用户?

来自分类Dev

我应该在网站上使用 JavaScript 数组来存储数据库中的项目数据吗?

来自分类Dev

如果帐户处于非活动状态或从数据库中删除,ASP.NET用户仍可以登录

来自分类Dev

错误:在网站上显示数据时未选择数据库

来自分类Dev

如何为数据库中的登录用户创建配置文件?

来自分类Dev

使用Azure AD创建Azure SQL数据库登录名/用户

来自分类Dev

在Owin中检测登录信息以更新数据库

来自分类Dev

添加信息以登录到FeathersJS中的数据库

来自分类Dev

如何使用 php 和 mysql 从网站上抓取日期并将该日期存储在数据库中?

来自分类Dev

为在网站上注册的每个用户动态创建一个数据库表,这可能是解决方案吗?

来自分类Dev

尝试使用数据库验证用户信息时,Codeigniter函数不起作用

Related 相关文章

  1. 1

    如何使用firebase数据库创建单独的登录帐户?

  2. 2

    如何在我的网站上显示数据库信息?

  3. 3

    与使用哈希的网站数据库中的用户一起登录Winforms应用

  4. 4

    goDaddy网站上的数据库用户访问被拒绝

  5. 5

    goDaddy网站上的数据库用户访问被拒绝

  6. 6

    用户登录时使用PHP代码从数据库中获取特定数据

  7. 7

    如果用户帐户已从数据库中删除但用户已登录,则销毁会话

  8. 8

    如何使用php将用户信息从facebook sdk提取到我网站的数据库中

  9. 9

    管理整个网站上使用的数据库查询

  10. 10

    使用数据库中的信息创建 Excel 文件

  11. 11

    使用数据库中的信息动态创建子域

  12. 12

    在 wordpress 多站点数据库中删除具有零阶值的用户帐户

  13. 13

    在整个网站上使用WordPress登录系统?

  14. 14

    Spring MVC:如何从Thymeleaf每个页面的数据库中重新加载登录的用户信息?

  15. 15

    从数据库模型中向登录用户显示他们自己的信息

  16. 16

    在使用struts2的网站设计中,当用户登录时,如何保持不同网站之间的用户信息?

  17. 17

    使用Java在MongoDB中创建数据库用户

  18. 18

    无法使用execBatch()在Hana数据库中创建用户

  19. 19

    作为使用Wordpress的网站上的授权用户?

  20. 20

    我应该在网站上使用 JavaScript 数组来存储数据库中的项目数据吗?

  21. 21

    如果帐户处于非活动状态或从数据库中删除,ASP.NET用户仍可以登录

  22. 22

    错误:在网站上显示数据时未选择数据库

  23. 23

    如何为数据库中的登录用户创建配置文件?

  24. 24

    使用Azure AD创建Azure SQL数据库登录名/用户

  25. 25

    在Owin中检测登录信息以更新数据库

  26. 26

    添加信息以登录到FeathersJS中的数据库

  27. 27

    如何使用 php 和 mysql 从网站上抓取日期并将该日期存储在数据库中?

  28. 28

    为在网站上注册的每个用户动态创建一个数据库表,这可能是解决方案吗?

  29. 29

    尝试使用数据库验证用户信息时,Codeigniter函数不起作用

热门标签

归档