我有两页:
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和die,则会话为空。如果使用twitter登录,则会保留会话数据。例如:
<?php
var_dump($_SESSION);
die();
答案 0 :(得分:1)
检查重定向网址。重定向到相同的URL? 在使用会话之前始终使用session_start()。
http://localhost上的会话注册与http://127.0.0.1不同。
答案 1 :(得分:1)
我在if语句中使用了标题重定向,后面没有退出函数。总是在标题重定向后使用exit语句,否则将处理整个php页面。