php - 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.php
ofc),xxx
它就不起作用。
当我检查cookie
使用 Chrome 开发工具时,它具有域.www.example.com
和路径/
此外,当我adminhtml
在根文件夹中检查是否存在时,我得到了true
返回,但是当我在子文件夹中检查它时,我得到了false
返回,即使路径看起来像/
Chrome 开发工具中的那样。
如果管理员已登录,我应该怎么做才能检查子文件夹,就像我可以在根文件夹中检查一样?
解决方案
如果您的脚本在根文件夹中有效,但在子文件夹中无效,您可能需要检查 Magento 管理面板中的设置:
管理面板 > 系统 > 配置 > Web(在常规下),然后选择会话 Cookie 管理
去掉Cookie 域前面的www(如果它在上面,因为 Magento 会在创建 cookie 时自动在 cookie 域前面添加一个. [dot] )并将Cookie Restriction Mode设置为No。
推荐阅读
- grpc - 如何在 gRPC 服务器存根中从 ctx 创建 OpenTelemetry span
- mysql - MySql2 - Nodejs - 如何构建复杂的查询?
- google-bigquery - BigQuery 的数据传输服务 - 已加载文件的列表
- go - GoLand,调试器在启动调试会话苹果 m1 时挂起
- java - 从另一个模块将对象映射到该对象的实体
- node.js - 如何使用节点 oidc 提供程序更改访问令牌格式
- reactjs - 错误:对象作为 React 子项无效。如果您打算渲染一组孩子,请使用数组。反应js
- react-native - 本地图像未在发布和 TestFlight 中呈现
- rust - 如何查看 serde 生成的反序列化实现?
- javascript - 替换选定 - 由 contenteditable div 中的所需 html