Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.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 如何仅使用用户id登录Wordpress_Php_Wordpress_Wordpress Login - Fatal编程技术网

Php 如何仅使用用户id登录Wordpress

Php 如何仅使用用户id登录Wordpress,php,wordpress,wordpress-login,Php,Wordpress,Wordpress Login,有没有办法只给Wordpress用户的wp用户ID就可以登录 我向用户发送电子邮件以确认某些内容,当他们单击给定链接访问网站时,他们需要登录才能看到我带他们去的页面,因此我必须登录用户,然后执行标题重定向 我需要wordpress提供的一个php函数,我可以在php中使用它,你能不能给我一些关于如何实现它的额外细节(如果有的话)这是一个非常糟糕的想法。考虑一下: 您向用户A和B发送电子邮件,其中包含以下链接: http://wordpressblog.exp/fromemail?user_id=

有没有办法只给Wordpress用户的wp用户ID就可以登录

我向用户发送电子邮件以确认某些内容,当他们单击给定链接访问网站时,他们需要登录才能看到我带他们去的页面,因此我必须登录用户,然后执行标题重定向


我需要wordpress提供的一个php函数,我可以在php中使用它,你能不能给我一些关于如何实现它的额外细节(如果有的话)

这是一个非常糟糕的想法。考虑一下: 您向用户A和B发送电子邮件,其中包含以下链接:

http://wordpressblog.exp/fromemail?user_id=A;
http://wordpressblog.exp/fromemail?user_id=B;
如果用户B将其用户id替换为A的用户id,则他可以访问用户A的帐户。
您最好以这种方式构建一个用于记录用户的散列,这里有一个自动记录用户的函数(未测试):


创建单独的表以存储您发送的所有链接和相应的临时身份验证代码(可能仅在一段时间内有效),然后将该临时身份验证代码和电子邮件作为url参数传递-


编写一个基于临时身份验证代码的代码来验证用户,这样一旦用户单击电子邮件,您就可以重定向他。

您必须在wp\u登录钩子中传递2个参数。看


嗨,Vlad,ya,这个想法是给他们一个唯一的密钥,我可以用它来确定他们的wp用户id,我实际上想知道是否有一个wp预定义的方法来做这个操作…谢谢Sandeep,已经在做这个了,只需要wordpress方法来记录用户inNICE!声誉最低,答案最好,可惜我没有足够的代表投票支持你的答案,我现在就来测试一下。谢谢,伙计,我不知道来宾登录的事,但是谢谢BlueRat。马上给你回电话!好的,我接受这个答案,这是基于它与我的问题的相关性,我已经成功地使用了其他替代方案(使用wp_用户“ID”在单独的表中存储唯一的登录密钥)作为外键,使用我自己的实际密码散列,在验证登录密钥后解密,然后将表中名为“key_expired”的布尔字段设置为1,以便不再使用该密钥)但是,目前还没有一种方法可以让用户只使用自己的用户ID登录wordpress,而不必闯入wordpress并更改其核心。它在这里工作!当我运行函数is_user_logged_in()时,它工作正常。好吧,我是一个wordpress noob,但我的安全性并没有那么差。对于那些认为很容易突破的人,这是我正在生成的链接,此外:每个链接都是唯一的,一旦单击一个链接,用户登录,密钥就会过期,所以…您刚才回答了自己的问题:-)。CheersI要求php代码/函数使用用户的id登录,而不是我应该如何通过url传递变量,这就是为什么您的答案无助于解决问题。那么您的问题必须更具体。将为每个链接生成的哈希存储在数据库中,当用户单击该链接时,检查该链接是否存在于数据库中,并且日志是否知道该函数的名称;wp_登录,但我无法使用它仅使用用户ID登录用户。因此,我的问题措辞不同。问题解决了,我们能继续生活吗?谢谢,我来自乌克兰。。。如果这对你很重要,对不起。我不知道其中的区别(,,)。。。但这也解释了我对你的回答感到失望的原因,哈哈
function auto_login() {
    if (!is_user_logged_in()) {
        //determine WordPress user account to impersonate
        $user_login = 'guest';

       //get user's ID
        $user = get_userdatabylogin($user_login);
        $user_id = $user->ID;

        //login
        wp_set_current_user($user_id, $user_login);
        wp_set_auth_cookie($user_id);
        do_action('wp_login', $user_login);
    }
}
wp_set_current_user( $user_id, $user->user_login );
wp_set_auth_cookie( $user_id );
do_action( 'wp_login', $user->user_login, $user );