我目前正在使用在 codeigniter 中创建的现有网站。每当用户进入一个页面时,他会被重定向到 frontpage.php,它会检查用户是否登录,如果没有,他会被重定向到登录页面。现在,我有一页不应该执行这个frontpage.php,任何用户都可以输入它。
任何帮助是极大的赞赏。
我目前正在使用在 codeigniter 中创建的现有网站。每当用户进入一个页面时,他会被重定向到 frontpage.php,它会检查用户是否登录,如果没有,他会被重定向到登录页面。现在,我有一页不应该执行这个frontpage.php,任何用户都可以输入它。
任何帮助是极大的赞赏。
有类似的问题并通过使用一些在线教程以这种方式解决
1:在“frontpage.php”之前创建一个单独的登录页面(例如 login.php)。
2:将登录名、密码和会话变量传递到首页。
3:重新编码“frontpage.php”以检查“login.php”传递的会话变量。
如果您通过正常方式进入页面,它将使用正常登录。如果您通过新的“login.php”页面进入该页面,它将被重新编码的“frontpage.php”拾取并绕过正常方式。
希望这可以帮助
格茨
制作新的控制器
class Newpage extends CI_Controller {
public function index(){
$this->load->view('newpage');
}
}
现在转到
yourhost.com/index.php/newpage
可能是您的默认控制器具有检查用户是否登录的编码。请删除或更改控制器中的代码。
我认为您需要删除控制器,它就是这样工作的!
将所有内容重新路由到您的页面控制器并将其用作您的默认值
$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();
}
}