【问题标题】:Can i set session variables when posting data via javascript?通过javascript发布数据时可以设置会话变量吗?
【发布时间】:2015-06-07 07:03:25
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript php ajax session authentication


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      你可以这样做

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

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

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

      来源link

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-12-07
        • 1970-01-01
        • 2017-01-06
        • 2018-06-16
        • 2014-12-11
        • 2016-03-20
        • 1970-01-01
        相关资源
        最近更新 更多