强制重定向到CodeIgniter 3中的安装页面

问题描述

又是我。我这里遇到另一个问题://我有一个脚本来安装我的应用程序。一切正常,安装完成后,脚本将目录权限重置为600,以便无法重新安装该应用程序。我也想在没有安装程序文件夹且没有600权限的情况下执行此操作,将我带到安装页面。否则我无法解释。

这是重定向到安装页面的代码:

if(is_dir('../../install/') && substr(decoct(fileperms('../../install/')),-4) !== 600) {
    $base_url = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http");
    $base_url .= "://" . $_SERVER['HTTP_HOST'];
    $base_url .= str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']);
    $base_url = str_replace('admin/auth','',$base_url);
    sleep(1);
    header('Location:' . $base_url . '/install');
}

我将此代码添加到index.php的顶部,但是它不起作用。好像最后加载,好像先到。因为如果没有设置数据库,它将发出一个错误,提示它无法连接,并且仅在安装后才进行设置。如果存在包含安装程序文件的目录并且没有chmod 600,如何强制转移到安装页面?

谢谢您的帮助;)最好的问候

解决方法

您应该扩展CI_Controller

MY_Controller类扩展了CI_Controller

注意MY_都是大写的。确保将此文件另存为application / core / MY_Controller.php,再次注意大小写。

比将代码放入MY_Controller的__constructor

,

问题解决了。我将以下代码添加到index.php

if(is_dir('install/') && substr(decoct(fileperms('install/')),-4) !== 600) {
    $base_url = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "https" : "http");
    $base_url .= "://" . $_SERVER['HTTP_HOST'];
    $base_url .= str_replace(basename($_SERVER['SCRIPT_NAME']),"",$_SERVER['SCRIPT_NAME']);
    $base_url = str_replace('admin/auth','',$base_url);
    die('Instalator wykryty. Proszę przejść do <a href="' . $base_url . 'install">instalacji sklepu</a>');
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...