文件
mashangyoujiu/_ai_archive/scripts/test_final_flow.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";
?>