我目前正在使用codeigniter创建的现有网站。 每当用户进入页面时,他都会被重定向到frontpage.php,它会检查用户是否已登录,如果没有,则会被重定向到登录页面。 现在,我有一个页面,这个frontpage.php不应该被执行,任何用户都可以输入它。
非常感谢任何帮助。
答案 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();
}
}