我真的要重新加载我的页面两次吗?

时间:2016-04-10 19:22:04

标签: javascript php ajax facebook session

我目前正在开发一个包括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本地工作,但是webspace不支持那种SDK。这就是为什么我必须回避javascript的原因。 有没有其他方法可以确保一个人被记录?

1 个答案:

答案 0 :(得分:0)

您正在使用AJAX,
因此,您可以避免重新加载Page

<?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 } );