Php Can';是否读取$\u会话变量?

Php Can';是否读取$\u会话变量?,php,session,Php,Session,我不确定出了什么问题——我尝试通过会话全局变量将一个变量从一个php页面传递到另一个php页面,但它似乎不起作用。以下是我所做的: Flow:表单提交-->login.php,如果成功,则重定向到-->chat.php 基本上,我不能将会话变量从login.php传递到chat.php 代码如下: login.php <?php session_start(); // pass on variables // Pass on variables $_SESSION['username']

我不确定出了什么问题——我尝试通过会话全局变量将一个变量从一个php页面传递到另一个php页面,但它似乎不起作用。以下是我所做的:

Flow:表单提交-->login.php,如果成功,则重定向到-->chat.php

基本上,我不能将会话变量从login.php传递到chat.php

代码如下:

login.php

<?php
session_start(); // pass on variables

// Pass on variables
$_SESSION['username'] = $_POST['username'];

// some code here

if ( mysqli_num_rows($result) == 0 ) { 
    // some code here
} else {
    // some code here
        $url = "./chat.php";
        $js = "<script>window.location = '{$url}'</script>"; 
        echo $js;
}
<?php
session_start();

$username = $_SESSION['username'];

echo $username;
?>

以下是一些假设:

  • $\u POST['username]
    正确无误
  • login.php中未显示的其余代码将正确执行
  • echo“工作!”在chat.php中工作,当我在echo行之后添加它时,所以我很确定它只是变量出错
    
  • 除了
    标记之外,没有其他html代码
  • 如果你有什么想法,我将不胜感激


    谢谢

    在系统上运行的apache无法创建存储会话变量所需的文件的情况下,会话变量无法工作。 向其所在的相应文件夹授予权限,并将组所有者设置为www数据。 在php代码的末尾添加这个session_commit();
    或会话写入关闭()

    试试这段代码。我认为这将在chat.php中起作用

     <?php
    $username = $_SESSION['username'];
    echo $username;
    ?>
    
    
    

    您可以通过
    print\r($\u session)检查会话

    “这里有一些假设:“不要假设。检查!
    $\u POST['username']
    真的有值吗?您是否以任何方式调试过它?@GolezTrol-是的,我检查过,它可以工作。@blazonix是否在两个页面上都转储了会话数组?我试图指出问题在于缺少调试/变量内容信息。另外,当我说debug时,我指的是xdebug或类似的东西。如果xdebug太多,则从使用var_dump($varToInspect)开始;死亡检查变量,而不是echo。@RonniSkansing我可能忽略了一些东西,无论如何,感谢你接受了这样一个初学者的问题和一些实用的想法。:)对不起,你说的“apache”是什么意思?你在用什么系统?这只是事情失败的众多原因之一。如果从服务器拔出电源插头,会话变量也会失败。我应该指出,问题现在已经解决,但我使用的是hostgator,因此Linux CentOSi高度怀疑他在重定向之前拔出了插头。