目前我正在使用Cakephp ......
此网页包含管理部分和"正常"部分...您可以使用" ... site / admin"。
访问管理部分如果用户在网址中写入" ... site / admin"然后它被禁止重定向到管理员登录部分......
然而,如果他试图去#34;网站"直接,然后他也将被重定向到另一个登录部分,但访问正常站点。
问题是......我的代码无效......如果我尝试访问管理站点,那么我将重定向到正常的登录部分,我必须写我的凭据......然后那,我能够进入管理站点(并提示输入管理员凭据,这没关系)
如果所有这些听起来令人困惑,你必须知道:
管理员部分 - >需要管理员凭据
正常部分 - >需要正常的凭证
但这就是现在正在发生的事情:
管理员部分 - >需要管理员凭证 - >需要正常的凭证
这是代码,它位于AppController上(程序直接指向重定向(site.com),我不明白为什么)
function beforeFilter()
{
session_start();
if($this->params['prefix'] == 'admin'){ //Si se quiere ir a la sección de admin...
if($this->Session->check('Admin.logged')){ //si esta logueado...
$this->layout = 'admin'; //Pone el layout de admin
}else{ //Si no esta logeado un admin...
$this->redirect(array('controller'=>'info','action'=>'login','admin'=>false)); //lo redirige al login.
}
}
else //si no está en admin, está en todas las demás páginas, a las cuales no debería poder entrar si no está logueado...
{
//si le ponés test=true te deja entrar igual y te llena los valores de sesión, esto es más que nada para poder hacer las pruebas de forma local...
$value = $this->request->query('test');
if (isset($value))
{
$_SESSION['web']['nombre'] = 'John';
$_SESSION['web']['apellido'] = 'Doe';
}
if(!isset($_SESSION['web']['nombre']))
$this->redirect('http://www.thesite.com.ar');
}
}
它基本上没有使用前缀" admin"来检测我。直到我用正常(测试)凭证记录(如果你这样做,它们会自动写入"网站?测试")
我希望这很清楚......