我可以在通过 javascript 发布数据时设置会话变量吗?

Can i set session variables when posting data via javascript?

我创建了一个简单的 PHP 登录身份验证脚本,现在我想覆盖 post 将数据从表单发送到身份验证脚本,以便它通过 ajax 完成.

我做到了 PHP returns JSON 格式的数据 {"success":[1 OR 0],"error";"ANY ERROR MESSAGE RELATED TO SUCCESS = 0"},这非常有效,当我尝试使用登录表单时 returns success:1 当我序列化表单并 post 使用正确的用户名+密码将其发送到 auth 脚本时 returns success:0 以及使用不正确的原因登录,在表单 posted 到 auth 脚本的原始方法上,然后在成功登录后将 auth 脚本重定向到受保护的页面我已将其替换为 javascript 更改 window它收到成功登录后的位置,唯一的问题是似乎会话变量尚未通过此方法从 posting 设置到 auth 脚本。

有没有一种方法可以使会话变量保持不变,而无需实际定向到页面?

使用 JavaScript

创建和访问会话变量

使用 JavaScript

创建会话变量
<?php session_start(); ?>
<html>
<head>
<script type='text/javascript'>
    function setSession(variable, value) {
        xmlhttp = new XMLHttpRequest();
        xmlhttp.open("GET", "setSession.php?variable=" + variable + "&value=" + value, true);
        xmlhttp.send();
    }
</script>
</head>
<body>
<?php
    if(isset($_SESSION['login']) && $_SESSION['login'] == "true")
      echo "Session Active. <a href=\"javascript:setSession('login', 'false')\"><input type='submit' value='De-Activate'></a>";
    else
      echo "Session Inactive. <a href=\"javascript:setSession('login', 'true')\"><input type='submit' value='Activate'></a>";
      echo "<a href=\"index.php\"><input type='submit' value='Re-Load Page'></a>";
?>
</body>
</html>

正在为其赋值

<?php
    session_start();
    if(isset($_REQUEST['variable']) && isset($_REQUEST['value']))
    {
        $variable = $_REQUEST['variable'];
        $value = $_REQUEST['value'];
        $_SESSION[$variable] = $value;
    }
?>

你可以这样做

<script src='javascript.php'></script>

然后在脚本中你可以写这个来访问会话变量

<?php header("Content-type: application/javascript"); ?>
$(function() {
    $( "#progressbar" ).progressbar({
        value: <?php echo $_SESSION['value'] ?>
    });

来源link