mickeyort 发表于 2020-10-29 22:47:36

Discuz dreferer 刷新重定向


/**
* 刷新重定向
*/

function dreferer($default = '') {
        global $_G;

        $default = empty($default) && $_ENV['curapp'] ? $_ENV['curapp'].'.php' : '';
        $_G['referer'] = !empty($_GET['referer']) ? $_GET['referer'] : $_SERVER['HTTP_REFERER'];
        $_G['referer'] = substr($_G['referer'], -1) == '?' ? substr($_G['referer'], 0, -1) : $_G['referer'];

        if(strpos($_G['referer'], 'member.php?mod=logging')) {
                $_G['referer'] = $default;
        }

        $reurl = parse_url($_G['referer']);

        if(!$reurl || (isset($reurl['scheme']) && !in_array(strtolower($reurl['scheme']), array('http', 'https')))) {
                $_G['referer'] = '';
        }

        list($http_host,)=explode(':', $_SERVER['HTTP_HOST']);

        if(!empty($reurl['host']) && !in_array($reurl['host'], array($http_host, 'www.'.$http_host)) && !in_array($http_host, array($reurl['host'], 'www.'.$reurl['host']))) {
                if(!in_array($reurl['host'], $_G['setting']['domain']['app']) && !isset($_G['setting']['domain']['list'][$reurl['host']])) {
                        $domainroot = substr($reurl['host'], strpos($reurl['host'], '.')+1);
                        if(empty($_G['setting']['domain']['root']) || (is_array($_G['setting']['domain']['root']) && !in_array($domainroot, $_G['setting']['domain']['root']))) {
                                $_G['referer'] = $_G['setting']['domain']['defaultindex'] ? $_G['setting']['domain']['defaultindex'] : 'index.php';
                        }
                }
        } elseif(empty($reurl['host'])) {
                $_G['referer'] = $_G['siteurl'].'./'.$_G['referer'];
        }

        $_G['referer'] = durlencode($_G['referer']);
        return $_G['referer'];
}

页: [1]
查看完整版本: Discuz dreferer 刷新重定向