繁体   English   中英

标头重定向后会话丢失

[英]Session lost after header redirect

我有两页:

  • page1.php
  • doLogin.php

page1有一个用于必须登录的社交平台的doLogin.php按钮。

Button 1: doLogin.php?social=twitter 
Button 2: doLogin.php?social=instagram

doLogin页面类似于:

session_start();
if($_REQUEST['social'] == 'twitter') {
$user->auth('twitter');
}

if($_REQUEST['social'] == 'instagram') {
$user->auth('instagram');
}

header('Location: page1.php');
exit();

auth()方法将用户名保存在会话中。 如果我在重定向之前对会话执行var_dump,则可以正确获取所有数据。 例:

var_dump($_SESSION);
die();
header('Location: page1.php');
exit();

如果我在完成instagram登录后在page1.php的开始处执行var_dump和死机,则会话为空。 如果登录名是twitter,则保留会话数据。 例:

<?php
var_dump($_SESSION);
die();

检查重定向URL。 重定向到相同的URL? 始终在使用会话之前使用session_start()。

http:// localhost上的会话注册与http://127.0.0.1不同。

我在if语句中使用了标头重定向,但没有退出函数。 头重定向后总是使用exit语句,否则将处理整个php页面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM