Sander
Sander

Reputation: 3

ignoring frontpage.php in codeigniter

I'm currently working on an existing website created in codeigniter. Whenever a user enters a page, he gets redirected to frontpage.php, that checks if the user is logged in, if not he gets redirected to the login page. Now, I have one page where this frontpage.php shouldnt be executed, and any user can enter it.

Any help is greatly appreciated.

Upvotes: 0

Views: 96

Answers (5)

user2307426
user2307426

Reputation:

I think you need to delete the controller, it works like that!

Upvotes: 0

Philip
Philip

Reputation: 4592

Re-route everything to your pages controller and use this as your default

$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();

    }
}

Upvotes: 0

ThaBombMeister
ThaBombMeister

Reputation: 11

Had a similar problem and solved it this way by using some online tutorials

1: Make a seperate loginpage (ex login.php) prior to the 'frontpage.php'.

2: Pass the login, password and a session variable to the frontpage.

3: Recode you 'frontpage.php' to check for the session variable passed by 'login.php'.

If u entered the page trough the normal way it will use the normal login. if u entered the page trough the new 'login.php' page it will be picked up by the recoded 'frontpage.php' and bypass the normal way.

Hope this helps

Grtz

Upvotes: 1

Chandramohan
Chandramohan

Reputation: 46

May be your default Controller have a coding of checking whether user is logged or not. Please remove or change the code in controller.

Upvotes: 0

open source guy
open source guy

Reputation: 2787

make new controller

class Newpage extends CI_Controller {

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

now goto

yourhost.com/index.php/newpage

Upvotes: 0

Related Questions