我真的需要一些指导,因为对于像我这样的初学者来说,这个问题非常令人困惑和极不相同。
我正在运行具有最新CI版本的WAMP服务器。
在core / MY_Controller.php中我有:
public GeneralController extend CI_Controller {
public GeneralController() {
parent::__construct();
// Does some stuff
}
}
public AuthenticatedController extend GeneralController {
public AuthenticatedController() {
parent::__construct();
if(!loggedIn()) redirect("/login");
// Does some stuff
}
}
public UnauthenticatedController extend GeneralController {
public UnauthenticatedController() {
parent::__construct();
if(loggedIn()) redirect("/home");
// Does some stuff
}
}
我的登录控制器是:
class Login extends UnauthenticatedController {
所以基本上如果他们登录并加载“/ login”,他们将被路由到“/ home”。
这完全适用于我的本地环境。
一旦我将它上传到我的服务器并导航到“/ login”,我就会得到一个无限循环。调试后我发现Login控制器加载了AuthenticatedController而不是UnauthenticatedController,所以它会无限地重定向回“/ login”。
好吧,现在继承因某种原因被破坏所以我需要检查它是否同时调用Auth和Unauth控制器。不。只要调用Auth,即使它扩展了UnauthenticatedController。
我在这里不知所措,我已经尝试了我能想到的一切,但作为一个新的PHP程序员,我想我会选择一些你的大脑来尝试!
谢谢!
解决方案: 检查您的生产服务器php版本与本地
答案 0 :(得分:0)
我在扩展核心类时遇到了这个问题。我的问题是在我的本地服务器上工作,但不在我的生产服务器上。我在生产中收到了404错误,只在我使用类扩展的控制器上收到错误。经过一些研究后,我注意到我的本地服务器运行的是php版本5.3.x,而我的生产服务器运行的是5.2.x.要解决此问题,我必须将生产服务器升级到5.3。
要了解您的网站使用的是哪个版本的php,请将此命令放在您的视图中:
<?php echo phpversion() ?>