【问题标题】:Session variables not carrying over会话变量未结转
【发布时间】:2013-08-12 19:26:03
【问题描述】:

我正在尝试编写一个登录脚本,该脚本将设置一个会话变量,然后将用户重定向到另一个页面。会话变量在设置它的页面上显示良好,但在下一页上根本不显示。我已经剥离了我的主页,所以它所做的只是回显会话变量。

登录.php:

    session_start();

    if(isset($_POST['process_login'])){
            include('php/db.php');

            $query = mysql_query("SELECT USERS.USERNAME, USERS.PASSWORD FROM USERS") or die (mysql_error());
            while ($result = mysql_fetch_array($query)){
                    if (strtoupper($_POST['username']) != $result['USERNAME'] || md5($_POST['password']) != $result['PASSWORD']){

                            echo "<center><font color=red>Incorrect username or password</font><center>";
                    }
                    else{
                            $_SESSION['username'] = $_POST['username'];
                            #echo $_SESSION['username'];
                            #printr ($_SESSION);
                            echo "<script> window.location = \"home.php\"; </script>";
                    }
                    //echo $result['username'];
            }
    }

home.php

session_start();
echo $_SESSION['username'];

【问题讨论】:

  • 是的。我在 Windows、OSX 和 iOS 上使用 Firefox、Chrome 和 Safari 进行了尝试。对其中任何一个都不起作用。
  • 我认为会话在没有 cookie 的情况下也可以工作?
  • 您是否尝试过传递会话 id 变量以查看是否是 cookie 问题?

标签: php session


【解决方案1】:

按照您的设置方式,它应该可以正常工作。这就是您拥有的所有代码吗?

【讨论】:

  • 对于 home.php 这就是它现在的全部内容。这是我的整个 login.php。 pastebin.com/Z5qTpnzN
  • 这可能是一条评论:)
  • 顺便说一句:session_start();必须是代码中的第一条语句!放入1号线!并且还尝试输入 error_reporting(E_ALL);到代码顶部以识别更多错误。
  • @T_01,不,它必须在任何输出之前,而不是代码中的第一件事。
  • 是的,我知道,但为了防止出现任何错误,最好将它放在顶部 ;)
猜你喜欢
  • 1970-01-01
  • 2012-05-25
  • 2012-07-13
  • 2014-02-07
  • 2012-04-10
  • 2016-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多