【问题标题】:PHP Session's not detectable after refresh刷新后无法检测到 PHP 会话
【发布时间】:2013-03-25 16:35:56
【问题描述】:

我正在开发一个需要使用会话的 PHP 应用程序。 我使用三层架构开发了我的应用程序。

我只使用一个 PHP 页面和虚拟表单来提交用户操作,所有处理都是通过实体/函数特定的类进行的。

第一次打开页面时,我会检查变量,如果之前从未打开过,我会显示登录表单。

当我收到来自此表单的帖子时,我会检查用户,如果用户正常,我会开始会话

    if(isset($_POST['login']))
{
    if($_POST['login']=='login')
    {
        //valida user
        $accoes=$du->login($_POST['username'],$_POST['password']);
        if($accoes===false)
        {
            echo "<SCRIPT LANGUAGE=\"JavaScript\" TYPE=\"text/javascript\">";
            echo "alert('Erro no Login');";
            echo "</SCRIPT>";
            unset($accoes);
        }
        else
        {
            //utilizador valido
            echo "<SCRIPT LANGUAGE=\"JavaScript\" TYPE=\"text/javascript\">";
            echo "alert('Utilizador válido');";
            echo "</SCRIPT>";
            session_start();
            $user="teste";
            $screen="logged";
            $_SESSION['user']=$user;
        }
    }
}

虽然通过用户操作刷新此页面时,我看不到会话 ID 或会话变量。

我是否遗漏了诸如 session_commit 或其他指令之类的内容?

在尝试检查会话变量之前是否也应该出现 session_start()?

可能是 PHP.ini 文件中缺少某些内容吗?

当我重新加载时,我要做的第一件事是检查会话变量

if(session_id() != '') {
    $user=$_SESSION['user'];
}

我知道我应该知道如何解决这个问题,但是直到现在我对 PHP 的体验还只是 Flex/Flash,所以实际上并不需要会话管理。

感谢您的帮助

【问题讨论】:

  • 你是否在每个页面的顶部调用了 session_start()?
  • 在尝试检查会话变量之前是否也应该出现 session_start()? 是的

标签: php session


【解决方案1】:

我可以肯定地指出一件事..您的 session_start() 应该是打开 php tahg 后的第一行

<?php
   session_start();

并且应该在每个要调用$_SESSION 的页面上调用它...... 否则会话将无法正常访问

【讨论】:

  • 我只在用户成功登录时使用它,因为在 POO 视觉中它似乎更符合逻辑!但是当它失败时,我开始认为它可能是它!但我需要确定!谢谢!
  • 但是我只想使用一个页面,并根据下面图层的处理更改其内容!即便如此,在通话之间我也需要保持会话控制!如果我在顶部使用 session_start(),我应该如何传递会话 ID?通过邮政?它是自动完成的吗?哈哈!这么笨!它是通过客户端 IP 和浏览器完成的!该会话甚至可以在登录之前存在!这一切都是由我放入其中的变量完成的!我已经厌倦了了解它,但我缺乏经验!
  • 你是对的..当你开始会话时,你不必担心 sessionId 的传输......当你需要检查用户是否登录时..不要检查session_id() 改为检查用户特定参数,如 $_SESSION['user'],它唯一标识用户..
猜你喜欢
  • 1970-01-01
  • 2013-12-22
  • 1970-01-01
  • 2019-03-30
  • 2013-01-17
  • 1970-01-01
  • 1970-01-01
  • 2018-07-16
  • 2015-07-02
相关资源
最近更新 更多