如何解决强制重定向到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>');
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。