Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未写入CakePHP Auth.redirect_Php_Cakephp_Cakephp 2.1 - Fatal编程技术网

未写入CakePHP Auth.redirect

未写入CakePHP Auth.redirect,php,cakephp,cakephp-2.1,Php,Cakephp,Cakephp 2.1,我遵循了cakephp文档中的身份验证教程,创建了一个有效的登录系统 我尝试做的一件事是,在用户完成登录后,将其重定向到最初未登录时尝试访问的操作 我相信他们访问的页面应该通过Auth组件中的启动函数写入会话中的Auth.redirect,但是这似乎不起作用 在我的用户控制器中,我已将以下内容添加到beforefilter: $this->Auth->allow('add', 'login'); 因此,当尝试访问编辑操作时,我会自动重定向到登录操作 在登录操作中,我包括: debu

我遵循了cakephp文档中的身份验证教程,创建了一个有效的登录系统

我尝试做的一件事是,在用户完成登录后,将其重定向到最初未登录时尝试访问的操作

我相信他们访问的页面应该通过Auth组件中的启动函数写入会话中的Auth.redirect,但是这似乎不起作用

在我的用户控制器中,我已将以下内容添加到beforefilter:

$this->Auth->allow('add', 'login');
因此,当尝试访问编辑操作时,我会自动重定向到登录操作

在登录操作中,我包括:

debug($this->Session->read());
debug($this->referer());
这是输出会话信息,在此会话中没有提到Auth.redirect,因此Auth函数或我自己都无法使用它重定向用户

我尝试过使用$this->referer,但由于某些原因,当auth函数自动重定向时,也不会跟踪referer

有人知道为什么auth.redirect可能没有被写入,以及为什么在auth函数重定向时没有填充$this->referer吗

我必须注意,我在使用WAMP的windows计算机上。但是,我的添加操作在成功并调试后重定向到登录($this->referer());当发生这种情况时,会拾取重定向URL,因此标头必须正常工作

进一步说明:

通过查看存储在数据库中的会话,我发现了CakePHP的问题

似乎auth.redirect存储在会话中,但是由于某种原因,当用户被重定向以清除以前的数据时,会生成一个新会话


还有什么方法可以阻止CakePHP为用户创建新的会话ID吗?

我已经确定了auth.redirect不起作用的原因

我在core.php中设置了一个自定义会话cookie名称,由于某些原因,会话组件不能使用自定义cookie名称,因此在每个页面上创建一个新会话

如果您遇到会话问题,并且您有一个自定义会话cookie名称,请将其重置为默认值,它将正常工作

我将把它作为bug提交给CakePHP

进一步说明


我发现问题的发生是因为一个问题。在cookie名称中,不包含此项。自定义cookie名称按其应有的方式运行。

是否将LoginDirect设置为null(默认情况下应为null,因此您是否修改了该设置?)此外,在重定向到login后,
env('HTTP\u REFERER')
的输出是什么action@tigrang我已尝试设置和取消设置LoginDirect,但对编写Auth.redirect没有任何影响。env('HTTP\u REFERER')显示为空。
$\u SERVER
$\u env
是否为空?看看你的php.ini或
phpinfo()
,我试着用$this->set('env',$\u env('HTTP\u REFERER'))在一个旁注上的
变量的值是多少;和$this->set('env',$服务器('HTTP\u REFERER');但在我试图显示它们之前,它就产生了一个未定义的索引错误。