【问题标题】:Session problem during refresh刷新期间的会话问题
【发布时间】:2009-05-28 13:14:51
【问题描述】:

当我刷新我的 flex 应用程序时,页面不会保持其状态并返回登录页面。我不确定为什么会发生这种情况,这是我的代码处理会话。

公共函数doLogin($username,$password) {

        include("connection.php");
        session_start();
        session_register("session");


        $query = "SELECT *
                  FROM users
                  WHERE username = '".mysql_escape_string($username)."'
                  AND password = '".mysql_escape_string($password)."'";
        $result = mysql_fetch_array(mysql_query($query));
        if(!$result) {
        session_unset();
        return 'no';
        }
        else 
            {
        $session['id']=session_id();
        $session['username']=$username;
        return 'yes';
            }
        }

    public function Logout() { 

    session_start();
    session_register("session");
    session_unset();
    session_destroy();
    return 'logout';        
    }

我应该在成功登录后加载的 Flex 窗格上做些什么吗?

【问题讨论】:

    标签: php mysql apache-flex


    【解决方案1】:

    你的问题来了

       else 
                        {
                $session['id']=session_id();
                $session['username']=$username;
                return 'yes';
                        }
                }
    

    $session 未定义...如果您想在会话数组中存储某些内容,请使用 $_SESSION

    【讨论】:

      【解决方案2】:

      成功登录后重定向回其他页面。

      例如

      if(doLogin($user,$pass) == 'yes')
      {
          Header("Location: index.php");
          exit;
      }
      

      【讨论】:

        【解决方案3】:

        刷新是指重新加载页面(F5)。如果是这样,那就是原因!重新加载/刷新将重新初始化所有内容。因此,当您重新加载/刷新时,将显示您的起始状态(登录)。

        如果您希望保持应用程序状态,那么每次状态更改时,您都必须将其详细信息保存到数据库,然后当用户点击起始页面时重新加载他们的会话。

        如果浏览器刷新/重新加载(或崩溃等),那么您无法让应用程序注销用户,因此您必须在登录页面被点击时恢复到最后知道的状态。如果用户没有正确登录,这当然会带来重大的安全问题。

        【讨论】:

          【解决方案4】:

          您是否在 flex 应用程序中维护会话 ID,并将其与新请求一起发送?

          您能否测试并确认您的 PHP 脚本在 Flex 中的每个请求都返回了相同的会话 ID?

          您是否将会话 ID 保存在 flex 应用程序之外的 cookie 中?如果没有,您将在页面刷新时丢失会话 ID。您需要存储在本地存储或 cookie 中,并在您的 flex 应用程序启动时访问它。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-08-16
            • 2012-01-26
            • 2011-09-27
            • 1970-01-01
            • 2017-04-27
            • 2013-12-22
            • 2012-03-03
            • 2016-08-31
            相关资源
            最近更新 更多