无法读取$ _SESSION变量?

时间:2014-05-25 09:25:39

标签: php session

我不确定是什么问题 - 我尝试通过SESSION全局变量将变量从一个php页面传递到另一个php页面,但它似乎没有用。这是我做的:

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

基本上,我无法将login.php中的SESSION变量传递给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;
}

chat.php

<?php
session_start();

$username = $_SESSION['username'];

echo $username;
?>

以下是一些假设:

  1. $_POST['username]是正确的。
  2. login.php 中未显示的其余代码正确执行。
  3. 当我在echo线之后添加它时,
  4. echo "works!";在chat.php中工作,所以我很确定它只是变量是错误的。
  5. <?php ?>标记之外没有其他HTML代码。
  6. 会欣赏一些想法。

    谢谢!

2 个答案:

答案 0 :(得分:1)

试试这段代码。我认为这可以在chat.php

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

您可以print_r($_SESSION);

查看会话

答案 1 :(得分:-1)

如果系统上运行的apache无法创建存储会话变量所需的文件,则会话变量无法正常工作。 授予对相应文件夹的权限,并将组所有者设置为www-data。 并在您的PHP代码结束时添加此session_commit(); 或session_write_close();