使用Windows服务器搭建ECSHOP网店的朋友,如果后台URL中目录大小写和/data/config.php中ADMIN_PATH的路径声明不一致,虽能访问到登录页面,但输入用户名和密码却无法登录,有些朋友会误认为密码错误了,其实这是由于Windows目录不区分大小写,而在PHP是区分大小写的。
/admin/includes/init.php中管理员身份验证:
if ($_REQUEST['act'] != 'login' && $_REQUEST['act'] != 'signin' &&
$_REQUEST['act'] != 'forget_pwd' && $_REQUEST['act'] != 'reset_pwd' && $_REQUEST['act'] != 'check_order')
{
$admin_path = preg_replace('/:\d+/', '', $ecs->url()) . ADMIN_PATH;
if (!empty($_SERVER['HTTP_REFERER']) &&
strpos(preg_replace('/:\d+/', '', $_SERVER['HTTP_REFERER']), $admin_path) === false)
{
if (!empty($_REQUEST['is_ajax']))
{
make_json_error($_LANG['priv_error']);
}
else
{
ecs_header("Location: privilege.php?act=login\n");
}
exit;
}
}
解决办法:保证URL中目录大小写和/data/config.php中ADMIN_PATH常量一致