会话变量未结转
Posted
技术标签:
【中文标题】会话变量未结转【英文标题】: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 问题? 【参考方案1】:按照您的设置方式,它应该可以正常工作。这就是您拥有的所有代码吗?
【讨论】:
对于 home.php 这就是它现在的全部内容。这是我的整个 login.php。 pastebin.com/Z5qTpnzN 这可能是一条评论:) 顺便说一句:session_start();必须是代码中的第一条语句!放入1号线!并且还尝试输入 error_reporting(E_ALL);到代码顶部以识别更多错误。 @T_01,不,它必须在任何输出之前,而不是代码中的第一件事。 是的,我知道,但为了防止出现任何错误,最好将它放在顶部 ;)以上是关于会话变量未结转的主要内容,如果未能解决你的问题,请参考以下文章