上周末我试图解决一个网站上没有在IE中保存会话的错误 - 今天我在笔记本电脑上的网站上做了进一步的工作,我再也无法登录了 - 我不知道做了一些非常愚蠢的事情。
我在Windows笔记本电脑上使用xampp,并在localhost上工作,这种情况发生在所有浏览器中。我对解决这些问题的方法不是很有经验 - 我已经能够确定以下内容:
所以,在我看来会话cookie没有被设置,但我已经没有想到为什么会这样。我没有更改任何与cookie相关的浏览器设置(在IE中启用Cookie之外),我已经仔细检查了我的Chrome Cookie设置。正如我所提到的,我还在AppController中编写了一些垃圾cookie,我可以看到它们被创建,并且它们的数据仍然存在。
如果我在login()之后调用$ _SESSION,一切看起来都很棒,但是如果我在登录前打印$ _SESSION,它就是空的。
我很确定我已经设法做了一些迟钝的事情,但我已经完成了关于它可能是什么的想法。我已将我的/app/core.php恢复为Cake默认值:
Configure::write('Session', array(
'defaults' => 'php'
));
我的login()函数基本上如下所示:
public function login() {
if ($this->request->is('post')) {
if ($this->Auth->login()) {
return $this->redirect($this->Auth->redirect());
} else {
$this->Session->setFlash(__('Invalid username or password, try again.'));
}
AppController中的身份验证设置:
class AppController extends Controller {
public $components = array(
'Session',
'Cookie',
'Acl',
'Email',
'Auth' => array(
'authenticate' => array(
'Form' => array(
'fields' => array('username' => 'email', 'password' => 'password')
)),
'authorize' => array(
'Actions' => array('actionPath' => 'controllers')
),
'loginRedirect' => array('controller' => 'users', 'action' => 'dashboard'),
),
);
在login()重定向之前打印$ this-> Auth-> user(),$ _SESSION的示例输出:
\app\Controller\UsersController.php (line 203)
array(
'id' => '10',
'name' => 'super',
'is_active' => '1',
'email' => 'super@test.com',
'group_id' => '3',
'address' => '3',
'phone' => 'xxxxx',
'category' => 'P',
'communication_in' => 'E',
'created' => '2014-11-29 16:27:19',
'modified' => '2014-11-29 16:27:19',
'Group' => array(
'id' => '3',
'name' => 'Administrators',
'created' => '2014-11-16 21:01:35',
'modified' => '2014-11-16 21:01:35'
)
)
\app\Controller\UsersController.php (line 204)
array(
'Config' => array(
'userAgent' => '4af162a3a94462226b6e93c6806203aa',
'time' => (int) 1417317929,
'countdown' => (int) 10,
'language' => 'eng'
),
'Auth' => array(
'User' => array(
'id' => '10',
'name' => 'super',
'is_active' => '1',
'email' => 'super@test.com',
'group_id' => '3',
'address' => '3',
'phone' => 'xxxx',
'category' => 'P',
'communication_in' => 'E',
'created' => '2014-11-29 16:27:19',
'modified' => '2014-11-29 16:27:19',
'Group' => array(
'id' => '3',
'name' => 'Administrators',
'created' => '2014-11-16 21:01:35',
'modified' => '2014-11-16 21:01:35'
)
)
)
)
上次创建的会话文件:
配置|一个:4:{S:9:"的userAgent&#34 ;; S:32:" 4af162a3a94462226b6e93c6806203aa&#34 ;; S:4:"时间&#34 ;;我:1417317929; S:9:"倒计时&#34 ;; I:10; S:8:"语言&#34 ;; S:3:"主机&#34 ;;}验证|一个:1:{S:4:"用户&#34 ;;一个:12:{S:2:" ID&#34 ;; S:2:" 10&#34 ;; S: 4:"名称&#34 ;; S:5:"超&#34 ;; S:9:" IS_ACTIVE&#34 ;; S:1:" 1&#34 ;; S:5:"电子邮件&#34 ;; S:14:" super@test.com" ;; S:8:" GROUP_ID&#34 ;; S:1:&#34 ; 3&#34 ;; S:7:"地址&#34 ;; S:1:" 3&#34 ;; S:5:"电话&#34 ;; S:10:& #34;为XXXXX&#34 ;; S:8:"类别&#34 ;; S:1:" P&#34 ;; S:16:" communication_in&#34 ;; S:1 :" E&#34 ;; s:7:"创建&#34 ;; s:19:" 2014-11-29 16:27:19&#34 ;; s:8:& #34;修改&#34 ;; s:19:" 2014-11-29 16:27:19&#34 ;; s:5:" Group&#34 ;; a:4:{s: 2:" ID&#34 ;; S:1:" 3&#34 ;; S:4:"名称&#34 ;; S:14:"管理员&#34 ;; s:7:"创建&#34 ;; s:19:" 2014-11-16 21:01:35&#34 ;; s:8:"修改&#34 ;; s: 19:" 2014-11-16 21:01:35&#34 ;;}}}
答案 0 :(得分:1)
当天的Facepalm: 几个小时后,我终于想到检查phpinfo(),当然,session.cookie-domain被设置为远程站点。我想上周我编辑了错误的PHP ini文件。