0

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

任何帮助是极大的赞赏。

4

5 回答 5

1

有类似的问题并通过使用一些在线教程以这种方式解决

1:在“frontpage.php”之前创建一个单独的登录页面(例如 login.php)。

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

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

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

希望这可以帮助

格茨

于 2013-04-22T13:12:52.820 回答
0

制作新的控制器

class Newpage extends CI_Controller {

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

现在转到

yourhost.com/index.php/newpage

于 2013-04-22T12:21:28.657 回答
0

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

于 2013-04-22T12:25:05.800 回答
0

我认为您需要删除控制器,它就是这样工作的!

于 2013-04-22T12:38:11.160 回答
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();

    }
}
于 2013-04-22T13:04:01.010 回答