Php 会话变量从一页更改为另一页

Php 会话变量从一页更改为另一页,php,Php,我在一页上有以下代码 <?php // Account for the possibility of time out session_start(); $_SESSION['LoggedIn']=$_GET['LoggedIn']; $_SESSION['SetName']=$_GET['SetName']; $setName=$_SESSION['SetName']; $_SESSION['UserName']=$_GET['UserName']; if (!isset($_S

我在一页上有以下代码

<?php
// Account for the possibility of time out
session_start();
$_SESSION['LoggedIn']=$_GET['LoggedIn'];
$_SESSION['SetName']=$_GET['SetName'];
    $setName=$_SESSION['SetName'];
$_SESSION['UserName']=$_GET['UserName'];
if (!isset($_SESSION['LoggedIn']) || !$_SESSION['LoggedIn']) header("Location: Home.php");
    php var_dump($_SESSION); 
    header("Location: uploadFiles.php"); // DEBUG
?>
uploadFiles.php有以下代码

<?php
// Account for the possibility of time out
session_start();
if (!isset($_SESSION['LoggedIn']) || !$_SESSION['LoggedIn']) {
    php var_dump($_SESSION);
    ?>
    <script type="text/javascript">
    alert("Not logged in.  Session log in=<?php echo $_SESSION['LoggedIn'] ?>");
    document.location.href="Home.php";
    </script>
    <?php
}
?>

您不会在uploadFiles.php中看到会话数据,因为您实际上并没有将它们打印出来。调试时需要使用
echo
或更好的方法,
var\u dump
,因为这将突出显示空变量。此外,您的JS语法不正确-PHP的输出必须在引号内,否则将导致语法错误。请记住,如果会话变量包含语音标记,它们将需要转义:

<?php
// Account for the possibility of time out
session_start();
if (!isset($_SESSION['LoggedIn']) || !$_SESSION['LoggedIn']) {
    ?>
    <script type="text/javascript">
    alert("Not logged in.  Session log in=<?php var_dump( $_SESSION['LoggedIn'] ); ?>");
    document.location.href="Home.php";
    </script>
    <?php
}
?>

警报(“未登录。会话登录=”);
document.location.href=“Home.php”;

我没有提到我在用台灯,这是失职。我也疏忽了没有检查

/var/log/apache2/error.log
它传达了这个信息

PHP Warning:  Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php5) in Unknown on line 0, referer: http://whatever.com/uploadFiles.php
以下步骤修复了该问题

sudo chown www-data /var/lib/php5

您调用第一页的URL是什么,因此
$\u GET['LoggedIn']
?echo''中有什么。“document.location.href=\”“。”&SetName=“.$SetName.”&UserName=“.$\u会话['UserName'].\”“”。 "";我做了更改,并在上面进行了适当的编辑,但仍然得到相同的结果。谢谢,好的,你能用
var\u dump
来发现你的第一个文件中
$\u GET['LoggedIn']
中有什么吗?它返回字符串(4)“TRUE”好的,在这两个文件中,请执行并编辑你的问题以包括结果(输出可能太长,无法发表评论)。我编辑了上面的问题。前一个文件给出数组(3){[“LoggedIn”]=>string(4)“TRUE”[“SetName”]=>string(4)“test”[“UserName”]=>string(5)“OtagoHarbour”},而后一个文件给出数组(0){}
PHP Warning:  Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/lib/php5) in Unknown on line 0, referer: http://whatever.com/uploadFiles.php
sudo chown www-data /var/lib/php5