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

时间:2015-04-02 10:46:32

标签: javascript php ajax session authentication

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

我这样做是为了让PHP以{"success":[1 OR 0],"error";"ANY ERROR MESSAGE RELATED TO SUCCESS = 0"}格式返回JSON数据,这非常有效,当我尝试使用登录表单时,它返回success:1,当我序列化表单并将其发布到使用正确的用户名+密码的auth脚本,它返回success:0以及登录错误的原因,在表单发布到auth脚本的原始方法上,然后auth脚本在成功后重定向到受保护的页面登录我已经用javascript更改窗口位置取代成功后登录成功登录,只有问题是看来会话变量没有通过这种方法发布到auth脚本中设置。

有没有办法让会话变量保持不变而不必直接到页面?

2 个答案:

答案 0 :(得分:0)

创造&使用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;
    }
?>

答案 1 :(得分:0)

你可以做这样的事情

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

然后在脚本中,您可以编写此文件以访问会话变量

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

来源link