我真的必须重新加载我的页面两次吗


Do I really have to reload my page twice?

我目前正在进行一个包含Facebook SDK的项目。我已经使用javascript代码登录/注销了。

我使用AJAX POST请求来保存会话中响应的userID和名称。

这里的问题是,我实际上必须重新加载页面两次,第一次是获取POST参数并将其保存到$_SESSION中。需要第二次刷新才能加载会话。

有没有干净的方法可以避免这种情况?

javascript:$.post( "login.php", { id:userID, name:response.name } );

login.php:$_SESSION['name'] = $_POST['name'];$_SESSION['userID'] = $_POST['id'];

我感谢每一种帮助。非常感谢。

编辑:我想在我的网站上给使用facebook登录的用户额外的机会。我知道如何做到这一点的唯一方法是使用PHP中的Session。每当他登录时,我都会创建一个会话,他说有人登录了。

现在,我必须对facebook登录做同样的事情。它已经在本地使用了PHP SDK,但Web空间不支持这种SDK。这就是为什么我不得不回避javascript的原因。是否有其他方法可以确保一个人已登录?

您正在使用AJAX,
所以你可以避免重新加载页面,

<?php    
    session_start();
    if (isset($_GET['name'])) {$_SESSION['name'] = $_GET['name'];}
    if (isset($_GET['userID'])) {$_SESSION['userID'] = $_GET['userID'];}
    if(isset ($_POST['name']  ) && isset ($_POST['userID'])){
        $_SESSION['name']= $_POST['name']; 
        $_SESSION['userID']=  $_POST['userID'];
    }else{
        $_SESSION['userID'] = 0;
    } 
?>

javascript代码为:

$.post( "/login.php", { id:userID, name:response.name } );