PHP:会话在标头重定向之前未保存 [英] PHP: session isn't saving before header redirect
问题描述
我已经阅读了有关此问题的 php 手册,这似乎是一个很常见的问题,但我还没有找到解决方案.我正在将会话保存在数据库中.我的代码如下:
I have read through the php manual for this problem and it seems quite a common issue but i have yet to find a solution. I am saving sessions in a database. My code is as follows:
// session
$_SESSION['userID'] = $user->id;
header('Location: /subdirectory/index.php');
然后在 session_start()
之后的 index.php 顶部,我已经 var_dump 了 $_SESSION 全局并且用户 ID 不在那里.正如我所说,我浏览了 PHP 手册 (http://php.net/manual/en/function.session-write-close.php
) 并且没有 session_write_close
或session_regenerate_id(true)
为我工作.有人知道解决方案吗?
Then at the top of index.php after the session_start()
, i have var_dumped the $_SESSION global and the userID is not in there. As i said ive looked through the PHP manual (http://php.net/manual/en/function.session-write-close.php
) and neither session_write_close
or session_regenerate_id(true)
worked for me.
Does anybody know a solution?
我的文件顶部有 session_start().当我在头重定向之前对会话全局进行 var_dump 时,我在那里看到用户 ID,但在另一个文件中没有看到,该文件位于此脚本的子目录中
I have session_start() at the top of my file. When i var_dump the session global before the header redirect, i see the userID in there, but not in the other file, which is in a subdirectory of this script
推荐答案
我知道这是一个老话题,但我找到了解决方案(对我来说).我在标题后面放了一个出口.
I know this is an old toppic but I found the solution (for me). I've put a exit after the header.
$_SESSION['session'] = 'this is a session';
header('location: apage.php');
exit;
这对我有用
这篇关于PHP:会话在标头重定向之前未保存的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!