忽略codeigniter中的frontpage.php

时间:2013-04-22 12:13:16

标签: php codeigniter

我目前正在使用codeigniter创建的现有网站。 每当用户进入页面时,他都会被重定向到frontpage.php,它会检查用户是否已登录,如果没有,则会被重定向到登录页面。 现在,我有一个页面,这个frontpage.php不应该被执行,任何用户都可以输入它。

非常感谢任何帮助。

5 个答案:

答案 0 :(得分:1)

有一个类似的问题并通过使用一些在线教程

这样解决了

1:在'frontpage.php'之前创建一个单独的登录页面(ex login.php)。

2:将登录名,密码和会话变量传递到首页。

3:重新编码'frontpage.php'以检查'login.php'传递的会话变量。

如果您通过正常方式进入页面,它将使用正常登录。 如果您通过新的“login.php”页面进入该页面,它将被重新编码的“frontpage.php”拾取并绕过正常方式。

希望这有帮助

Grtz

答案 1 :(得分:0)

制作新的控制器

class Newpage extends CI_Controller {

  public function index(){
    $this->load->view('newpage');
  }
}

现在转到

<强> yourhost.com/index.php/newpage

答案 2 :(得分:0)

可能是您的默认控制器具有检查用户是否已记录的编码。请删除或更改控制器中的代码。

答案 3 :(得分:0)

我认为你需要删除控制器,就像这样!

答案 4 :(得分:0)

将所有内容重新路由到您的网页控制器并将其用作默认

$route['default_controller'] = 'pages';

$route['(.*)'] = 'pages/index/$1';

-

class Pages extends CI_Controller
{
    protected $currentUser = null;

    public function __construct()
    {
        parent::__construct();
        $this->currentUser = Auth::getCurrentUserObject(); //check user is logged in
    }

    public function index($uri='home')
    {

        $sizeOfSegments = sizeof($this->uri->rsegments);

        if ($sizeOfSegments >= 3)
        {       
            $uri = $this->uri->rsegments[3];
        } 
        else
        {
            $uri = 'home';
        }

        $pageFound = Page::find($uri); //query the database

        if (!$pageFound)
        {
            return show_404($uri); // find out where there were headed 
        }

        unset($sizeOfSegments, $uri);

        if(is_null($this->currentUser) OR !$this->currentUserHasPermissionToViewThisPage OR !$pageIsNotPublic)
        {
            return redirect('login');
        }

        $this->load->view();

    }
}