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

标签 javascript php ajax facebook session

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

我正在使用 AJAX POST 请求保存用户 ID 和来自 session 响应的名称。

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

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

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

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

我感谢各种帮助。谢谢。

编辑: 我想在我的网站上为使用 facebook 登录的用户提供更多机会。我知道如何做到这一点的唯一方法是使用 PHP 中的 session 。每当他登录时,我都会创建一个 session ,表示有人已登录。

现在我必须对 facebook 登录做同样的事情。它已经在本地与 PHP SDK 一起工作,但网站空间不支持那种 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 } );

关于javascript - 我真的必须重新加载我的页面两次吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36534438/

相关文章:

javascript - 如何用静态数据预填充 AutoModelSelect2Field? (django-select2 库)

javascript - .removeClass ('visible' ).addClass ('invisible' );与 .hide() 或 .show()

javascript - 尝试在 IE9 中调用打印预览对话框时,对象不支持属性或方法 'ExecWB'

javascript - 写入列表时使用 JavaScript 屏蔽前 6 位数字

php - 发送电子邮件时更改 HELO 主机名

php - 使用 php (APNS) 在 iPhone 中检测应用程序安装状态?

javascript - 如何向 Google Forms 应用程序添加计时器元素

php - 根据共同好友推荐好友

jquery - 如何使用ajax添加简单的jquery加载器/旋转器?

javascript - 来自 ajax post 的 knockout 映射数据与静态数据