有更好的方法吗?我在初始代码中设置了一个会话,并在之后直接引用它,并且在第一次迭代时没有得到识别。
用户输入激活密钥,代码会对数据库进行检查,如果存在,则会将密钥放入会话中以供日后使用。它从浏览器首次打开时起作用,但此后一直有效......这很奇怪。
创建会话:
session_start();
....
$_SESSION['SESS_KEY'] = $member['key'];
session_write_close();
header("location: http://example1.com")
exit();
检查会话:
session_start();
if(!isset($_SESSION['SESS_KEY']) || (trim($_SESSION['SESS_KEY']) == '')) {
header("location: http://example2.com");
}
这可能是我使用session_start()和标题的方式,但我在砖墙上并且花了太长时间试图理解它。任何建议都将不胜感激。
答案 0 :(得分:0)
这是正常行为,一旦创建,就会在客户端浏览器的下一个请求中的请求标头中发送。您无法在同一页面上访问刚刚创建的会话变量值。在这种情况下,您可以创建一个变量并在需要时访问它,在PHP中的单个请求处理中,可以跨不同的文件访问变量。