首页 > 解决方案 > PHP 无法检查 Magento 管理员是否使用在根文件夹中工作的脚本登录子文件夹

问题描述

我有一个var/www/html/安装了 a 的根文件夹,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文件夹中运行良好,但如果我在子文件夹中复制它(并将路径更改为Mage.phpofc),xxx它就不起作用。

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

此外,当我adminhtml在根文件夹中检查是否存在时,我得到了true返回,但是当我在子文件夹中检查它时,我得到了false返回,即使路径看起来像/Chrome 开发工具中的那样。

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

标签: phpmagentomagento-1.9

解决方案


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

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

去掉Cookie 域前面的www(如果它在上面,因为 Magento 会在创建 cookie 时自动在 cookie 域前面添加一个. [dot] )并将Cookie Restriction Mode设置为No


推荐阅读