PHP文件无法跨页面恢复会话变量


PHP File cannot recover session variable across pages

好的,所以我试图早些时候发布这篇文章,尽管我的问题略有改变。我已经确定了问题在我的login.php(我分配$_SESSION值)和我的members.php页面(我试图再次捡起$_SESSION变量,但未能恢复它)之间。我识别这个问题的方法是在我的members.php文件中运行一个var dump会话,结果是0。在login.php中赋值之后我也这样做了,我得到了赋值作为结果。如果你能帮我,我会很感激的!

这是我的login.php页面:

<?php
session_start();
require('connect.php');
$username = $_POST['username'];
$password = $_POST['password'];
if (isset($username) && isset($password))
{
    $query = mysql_query("SELECT * FROM login WHERE username='$username' AND password='$password'");
    $result = mysql_num_rows($query);
    if($result > 0)
    {
        echo "You have been logged in. <a href='members.php'>Go to the members page</a>";
        $username = $_SESSION['login'];
    }
    else
    {
        echo "Password is incorrect. Try again.";
    }
}
else
{
    echo "You have to enter your username and password. Try again";
}
?>

这是我的members.php页面:

<?php
session_start();
if (isset($_SESSION['login']))
{
    echo "Welcome " .  $login . " | <a href='logout.php'>Logout</a>";
}
else
{
    header('Location: index.php');
}
?>

在聊天中解决:

  1. 显示var_dump(is_writable(session_save_path()));返回bool(false)

  2. session_save_path()/var/php_sessions/

  3. realpath(dirname(__FILE__));/hermes/bosoraweb124/b185/dom.gjertgjersundcom/public_html

我尝试移动会话保存路径-然而,由于某种原因,public_html内的文件夹无法写入,与读取相同(无法读取)。无论如何,把sessions放在公共文件夹中让每个人都能看到是一个坏主意。

我建议OP联系他们的主机提供商来运行chmod 766 -R /var/php_sessions/的命令。

解决:工作人员在他的网站主机应用的权限,它现在工作正常。

您的会话"login"变量没有设置,因为您从未在登录文件中设置它…

你应该特别设置$_SESSION['login'] = "blah";

我想你的问题是你的意思是设置登录,而不是用户名,当你登录用户…交换

if($result > 0)
    {
        echo "You have been logged in. <a href='members.php'>Go to the members page</a>";
        $username = $_SESSION['login'];
    }

if($result > 0)
    {
        echo "You have been logged in. <a href='members.php'>Go to the members page</a>";
        $_SESSION['login'] = $username;
    }

那么你应该能够从你的会员页面访问你的"login"会话变量。

在你的会员页面我也没有看到你设置$login变量。所以我假设这将是一个空白,你的意思是回显你的会话登录变量$_SESSION['login']。