114 行
3.6 KiB
PHP
114 行
3.6 KiB
PHP
<?php
|
|
// 完整的登录和权限测试流程
|
|
session_start();
|
|
|
|
echo "=== 开始完整流程测试 ===\n";
|
|
|
|
// 1. 清空现有session
|
|
session_destroy();
|
|
session_start();
|
|
echo "1. Session已重置\n";
|
|
|
|
// 2. 加载ThinkPHP框架
|
|
define('APP_PATH', './Application/');
|
|
define('RUNTIME_PATH', './Runtime/');
|
|
require './ThinkPHP/ThinkPHP.php';
|
|
|
|
echo "2. ThinkPHP框架已加载\n";
|
|
|
|
// 3. 模拟登录请求
|
|
$_POST['username'] = '13888888888';
|
|
$_POST['password'] = 'test123';
|
|
$_POST['type'] = '1'; // 商户登录
|
|
|
|
echo "3. 设置登录参数: username=13888888888, password=test123, type=1\n";
|
|
|
|
// 4. 实例化登录控制器并执行登录
|
|
try {
|
|
$loginController = new \Retail\Controller\LoginController();
|
|
|
|
// 捕获输出
|
|
ob_start();
|
|
$loginController->doLogin_v1();
|
|
$loginOutput = ob_get_clean();
|
|
|
|
echo "4. 登录方法执行完成\n";
|
|
echo "登录输出: " . $loginOutput . "\n";
|
|
|
|
// 解析登录响应
|
|
$loginResponse = json_decode($loginOutput, true);
|
|
|
|
if ($loginResponse && isset($loginResponse['status']) && $loginResponse['status'] == 1) {
|
|
echo "5. 登录成功,开始设置用户session\n";
|
|
|
|
// 获取用户数据
|
|
$userData = $loginResponse['list'];
|
|
echo "用户数据: " . print_r($userData, true) . "\n";
|
|
|
|
// 设置关键session
|
|
$_SESSION['jurisdiction_user'] = $userData;
|
|
$_SESSION['merchant_userinfo'] = $userData;
|
|
$_SESSION['login_user'] = $userData;
|
|
$_SESSION['merchant_id'] = $userData['merchant_id'];
|
|
|
|
// 如果是店长,设置店铺相关session
|
|
if ($userData['identity'] == 2) {
|
|
$_SESSION['store_userinfo'] = $userData;
|
|
$_SESSION['storeid'] = isset($userData['storeid']) ? $userData['storeid'] : 1;
|
|
$_SESSION['identity'] = 2;
|
|
echo "店长身份,已设置店铺session\n";
|
|
}
|
|
|
|
echo "6. 用户session设置完成\n";
|
|
|
|
// 7. 测试storeSet接口
|
|
echo "7. 开始测试storeSet接口\n";
|
|
|
|
// 设置POST参数
|
|
$_POST = array(
|
|
'store_name' => '测试门店名称',
|
|
'store_address' => '测试门店地址',
|
|
'store_phone' => '13800138000'
|
|
);
|
|
|
|
echo "POST参数: " . print_r($_POST, true) . "\n";
|
|
|
|
// 检查session状态
|
|
echo "当前session状态:\n";
|
|
echo "- jurisdiction_user: " . (isset($_SESSION['jurisdiction_user']) ? 'YES' : 'NO') . "\n";
|
|
echo "- merchant_id: " . (isset($_SESSION['merchant_id']) ? $_SESSION['merchant_id'] : 'NO') . "\n";
|
|
echo "- storeid: " . (isset($_SESSION['storeid']) ? $_SESSION['storeid'] : 'NO') . "\n";
|
|
|
|
// 实例化Xcx控制器
|
|
$xcxController = new \Retail\Controller\XcxController();
|
|
|
|
// 捕获storeSet方法的输出
|
|
ob_start();
|
|
$xcxController->storeSet();
|
|
$storeSetOutput = ob_get_clean();
|
|
|
|
echo "8. storeSet方法执行完成\n";
|
|
echo "storeSet输出: " . $storeSetOutput . "\n";
|
|
|
|
} else {
|
|
echo "5. 登录失败\n";
|
|
echo "登录响应: " . $loginOutput . "\n";
|
|
}
|
|
|
|
} catch (Exception $e) {
|
|
echo "执行过程中出现异常: " . $e->getMessage() . "\n";
|
|
echo "异常文件: " . $e->getFile() . " 第" . $e->getLine() . "行\n";
|
|
}
|
|
|
|
// 9. 最终session信息
|
|
echo "\n=== 最终Session信息 ===\n";
|
|
foreach ($_SESSION as $key => $value) {
|
|
if (is_array($value)) {
|
|
echo "$key: " . print_r($value, true) . "\n";
|
|
} else {
|
|
echo "$key: $value\n";
|
|
}
|
|
}
|
|
|
|
echo "\n=== 测试完成 ===\n";
|
|
?>
|