PHP 无法检查 Magento 管理员是否使用在根文件夹中运行的脚本登录子文件夹

PHP can't check if Magento admin is logged in subfolder with a script that works in the root folder

我有一个根文件夹 var/www/html/,我在其中安装了一个 Magento 1.9.2.4,然后我有一个子文件夹(在根文件夹中)var/www/html/xxx。在 root 文件夹中,我可以使用这个 PHP 脚本来检查管理员是否登录:

define('MAGENTO', realpath(dirname(__FILE__)));
require_once MAGENTO . '/app/Mage.php';

Mage::app('admin');
Mage::getSingleton('core/session', array('name' => 'adminhtml'));

$session = Mage::getSingleton('admin/session');

if($session->isLoggedIn()){
    $user = $session->getUser()->getUsername();
    echo 'Logged in as ' . $user;
} else{
    echo 'NOT logged';
}

此脚本在 root 文件夹中运行良好,但如果我在子文件夹 xxx 中复制它(并将路径更改为 Mage.php ofc),它不会工作。

当我使用 Chrome 开发工具检查 cookie 时,它具有域 .www.example.com 和路径 /

此外,当我在根文件夹中检查 adminhtml 是否存在时,我得到一个 true return 但是当我在子文件夹中检查它时,我得到一个 false return 即使路径在 Chrome 开发工具中看起来像 /

如果管理员已登录,我应该怎么做才能签入子文件夹,就像我能够在根文件夹中签入一样?

如果您的脚本在根文件夹中有效,但在您的 subfolder/s 中无效,您可能需要检查 Magento 管理面板中的设置:

管理面板 > 系统 > 配置 > Web(在常规下) 然后选择 Session Cookie Management

删除 www 前面的 Cookie 域(如果它在那里,因为 Magento 会自动添加一个 创建cookie时cookie域前面的[点])并设置Cookie限制模式.