将 ajax 结果存储到 PHP 会话中


storing ajax result into PHP session

我看到了如何将数据从php获取到ajax(并通过javascript显示)的示例。与登录示例一样,我们可以检查是否输入了有效的电子邮件和密码,我们可以简单地显示"您现在已登录"。直到这里,我理解并锻炼。但是,现在当用户登录时,我需要设置 php 会话。登录表单将数据发送到 ajax.php,后者只返回一条成功消息。在其他情况下,如果我只是使用 php 来检查有效的登录详细信息,我可以在脚本找到匹配数据后立即设置 php 会话。

我知道我可以通过URL将ajax数据发送到第二个php页面,在那里它可以通过$ _GET访问。但是我想将数据放入 SESSION 中,而不是通过 URL 发送。

我是怎么做到的?

session_start();
$_SESSION['somevar'] = $_GET['somevar'];

基本上是你想要的。如果要通过 JSON 数据发送,则

session_start();
$json = json_decode($_POST['jsonvar']);
$_SESSION['somevar'] = $json['somevar'];

$_SESSION 是一个数组,就像 PHP 中的任何其他数组一样 - 分配给它、从中读取、删除、推送、弹出等......它之所以特别,只是因为它是 a) 一个超全局 b) 如果您使用session_start(),它会自动为您持久化

包含表单详细信息的 ajax 请求

 $.ajax({
        type:"POST",
        url:"file.php",
        data:"your data string to pass",
        complete:function(data){
     response of ajax
          
        }
    });

包含一些代码的 PHP 文件

<?php
 session_start();
 $_SESSION['varable'] = $info_to_add;
 $_SESSION['varable2'] = $info_to_addother;
?>