Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.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
检索用户->;从wordpress到另一个php站点的ID_Php_Wordpress - Fatal编程技术网

检索用户->;从wordpress到另一个php站点的ID

检索用户->;从wordpress到另一个php站点的ID,php,wordpress,Php,Wordpress,我在/var/www/httpdocs中有一个PHP应用程序自定义应用程序。 Wordpress安装在/var/www/httpdocs/new\u cms/Wordpress中的同一台服务器上 我需要使用custom\u appli的SESSION检索user->ID 我试图插入: require( './new_cms/wp-snapshots/wp-blog-header.php' ); global $user; $user = wp_get_current_us

我在
/var/www/httpdocs
中有一个PHP应用程序
自定义应用程序。
Wordpress安装在
/var/www/httpdocs/new\u cms/Wordpress
中的同一台服务器上

我需要使用
custom\u appli
SESSION
检索
user->ID

我试图插入:

    require( './new_cms/wp-snapshots/wp-blog-header.php' );
    global $user;
    $user = wp_get_current_user();
    echo "ID :".$user->ID;
wp-load
而不是
wp-blog-header
不会改变任何东西,无论我是使用
include
还是
require\u一次

您能给我一个如何从
会话
获取用户的链接或建议吗?

提前感谢

是wp-includes/pluggable.php中的一个函数,由wp-settings.php加载。我不确定WordPress引导本身到底有多准确,但我会尝试包括wp settings.php,如果有的话。

详细信息和信息很少,但我会这样做(我知道5种方法,它们是最不痛苦的):

如前所述,
wp\u get\u current\u user()
让您接近,但这通常只在页面上对用户可用,就像在“加载”中一样。因此,从WP服务页面,您可以获得用户ID(以及所有其他信息)和会话,并获得一些可用的信息。有很多方法可以使用这些数据来解决您的问题,但并不是一直都很顺利。会话数据是以太的,小心

另一种方法是使用
wp load.php
并将其封装在中间件中。此脚本引导WP,并允许在提供应用程序内部API的“引导”wordpress环境中进行查询和类似操作。我会考虑将WP加载以正确的方式添加到CuppApAPi中,并将其用作2个应用程序之间的中间件。在许多情况下,您仍然需要识别用户

如果没有更多的信息,很难指导您,但我可以从您的需求和帖子中的代码看出,您正在设置可能的依赖性问题、可能的名称间距冲突(
$user
可能会让您成为一个全局用户),以及无数其他方式来打发时间。如果custom_appli需要一个用户ID,请在页面加载或类似情况下从WP向用户发送该ID

你什么时候/为什么需要这些信息?流程是什么

您还可以通过会话ID信息(取决于配置)遍历很多

FWIW我已经成功地从不同服务器上的两个独立应用程序传递了用户信息,这很难做到正确,但这是可能的

澄清后更新 如前所述,“wordpress用户和Custom appli拥有相同的用户”可能是功能的复制,具体而言,运行两个表(?)或逻辑。只是一些反馈

基本上,您希望钩住WP用户的“登录”状态。我看不到有人提到:

  • FK/建立在用户基础上的关系(简单但多做一点工作)
  • 基于自定义应用程序的ACL/基于权限的访问
  • 不序列化数据或类似于WP用户(一般用户)
以上任何一项都可能让我改变解决方案。这是我为你写的一个非常干净的原型

它遵循wp的一些代码,本质上:

  • 确保通过theme functions.PHP初始化PHP会话
  • 使用WP登录(身份验证)成功将var添加到会话
  • 注销时取消变量(!重要!)
  • 另外,确保在未登录或密钥不存在时设置会话
  • 可通过会话(custom_appl.php)在WP之外轻松获取

我测试了这个,在我的一次安装中,它在本地运行得很好,我不认为它会给你带来任何问题。我想对此做进一步的阐述,但这只是一个原型,展示了如何使用PHP和WP中的关键工具。

非常感谢这些最初的方法。“工作流”是:非常感谢这些最初的方法。“工作流”是:1/用户登录wordpress。2/如果他是注册用户,他可以访问custom appli的功能,而custom appli只需要用户id。wordpress用户和custom appli有相同的用户,具有相同的id。3/custom appli获得用户id,之后..没有问题了它可以工作了。。。我想知道我是否必须将文件custom-appli\u identification.php放在wordpress目录中,然后重定向到custom\u appli?格式、语法、可读性改进的内容。@jan:谢谢这些改进。。。我的书面英语很差…我只是注意到有点困惑:“需要使用自定义应用程序会话检索用户->ID。”我确认我想从wordpress检索自定义应用程序中的用户->ID。第一次登录是在wordpress中,我想避免第二次识别。非常感谢这些第一次的方法。“工作流”是:1/用户登录wordpress。2/如果他是注册用户,他可以访问custom appli的功能,而custom appli只需要用户id。wordpress用户和custom appli有相同的用户,具有相同的id。3/custom appli获得用户id,之后..没有问题了它可以工作了。。。我想知道我是否必须将文件custom-appli_identification.php放在wordpress目录中,然后重定向到custom_appli的内容?我为您编写并测试了一个原型,添加到编辑的消息中。它工作起来很有魅力!你帮我省了很多工作时间。你的评论非常有用。为什么你不把这个评论放在一个答案中,这样我就可以投票给你,其他人也可以从这个代码中受益?接受这个答案,这是去@Gerard13007的最好方式,这将使每个人受益。谢谢,很高兴它起作用了。