45 行
1.2 KiB
PHP
45 行
1.2 KiB
PHP
<?php
|
|
// 调试权限验证逻辑
|
|
define('MODULE_NAME', 'Retail');
|
|
define('CONTROLLER_NAME', 'Xcx');
|
|
define('ACTION_NAME', 'storeSet');
|
|
|
|
$path = '/index.php/'.MODULE_NAME.'/'.CONTROLLER_NAME.'/'.ACTION_NAME;
|
|
echo "当前请求路径: {$path}\n";
|
|
|
|
// 模拟数据库查询
|
|
$dbPath = '/index.php/Retail/Xcx/manager,/index.php/Retail/Xcx/storeSet';
|
|
echo "数据库中的权限路径: {$dbPath}\n";
|
|
|
|
// 测试匹配逻辑
|
|
$map_string = "`path` LIKE '{$path},%' OR `path` LIKE '%,{$path}' OR `path` LIKE '%,{$path},%' OR `path` LIKE '{$path}'";
|
|
echo "\nSQL匹配条件: {$map_string}\n";
|
|
|
|
// 手动测试匹配
|
|
$patterns = [
|
|
"{$path},%",
|
|
"%,{$path}",
|
|
"%,{$path},%",
|
|
"{$path}"
|
|
];
|
|
|
|
foreach ($patterns as $pattern) {
|
|
$regex = str_replace('%', '.*', $pattern);
|
|
$regex = '/^' . str_replace('/', '\\/', $regex) . '$/';
|
|
echo "\n测试模式: {$pattern}";
|
|
echo "\n正则表达式: {$regex}";
|
|
if (preg_match($regex, $dbPath)) {
|
|
echo " -> 匹配成功!\n";
|
|
} else {
|
|
echo " -> 匹配失败\n";
|
|
}
|
|
}
|
|
|
|
// 直接测试LIKE逻辑
|
|
echo "\n\n直接LIKE测试:\n";
|
|
if (strpos($dbPath, $path) !== false) {
|
|
echo "路径包含匹配: 成功\n";
|
|
} else {
|
|
echo "路径包含匹配: 失败\n";
|
|
}
|
|
?>
|