Php 会话无法正常工作,自动会话丢失或刷新页面时内容丢失

Php 会话无法正常工作,自动会话丢失或刷新页面时内容丢失,php,session,Php,Session,我是新来的PHP,在学生成绩在线系统中做我的最后一年项目 在我的系统中,我在会话中出错,一旦用户/学生使用其用户名和密码登录,仪表板将正确显示其详细信息 但是,一旦页面重新加载,或者您单击查看其他内容,或者只需单击仪表板中的学生工具栏,页面就会丢失所有相关内容,并变为空闲或空白 我想防止自动会话被破坏或丢失,而用户在注销前仍保持在同一页面上。任何帮助都将不胜感激。有趣的是,这些代码在Localhost(Wamp服务器)中运行得非常好,但在Online(cpanel)中会丢失会话 我的代码页是:

我是新来的PHP,在学生成绩在线系统中做我的最后一年项目

在我的系统中,我在会话中出错,一旦用户/学生使用其用户名和密码登录,仪表板将正确显示其详细信息

但是,一旦页面重新加载,或者您单击查看其他内容,或者只需单击仪表板中的学生工具栏,页面就会丢失所有相关内容,并变为空闲或空白

我想防止自动会话被破坏或丢失,而用户在注销前仍保持在同一页面上。任何帮助都将不胜感激。有趣的是,这些代码在Localhost(Wamp服务器)中运行得非常好,但在Online(cpanel)中会丢失会话

我的代码页是: login.php

<?php
include('dbcon.php');
if (isset($_POST['login'])){
    session_start();
    $student_no = $_POST['student_no'];
    $password = $_POST['password'];
    $query = "SELECT * FROM students WHERE student_no='$student_no' AND    password='$password' and status = 'active' ";
    $result = mysql_query($query)or die(mysql_error());
    $num_row = mysql_num_rows($result);
    $row=mysql_fetch_array($result);
    if( $num_row > 0 ) {
        header('location:dasboard.php');
        $_SESSION['id']=$row['student_id'];
    }
    elae{
         header('location:access_denied.php');
    }
}
?>

代码
主题
单位
根大街。
学期
年度水平
评论

在以下代码中:

if( $num_row > 0 ) {
    header('location:dasboard.php');
    $_SESSION['id']=$row['student_id'];
}
是吗

header('location:dasboard.php');
在设置会话之前:

$_SESSION['id']=$row['student_id'];
这意味着您首先重定向,并且会话从未设置


当然应该是
else

蒂姆·德夫先生,谢谢你的回复,但还是有同样的问题,你的建议不能解决我的问题。我私下提到,我的代码在第一次登录时运行良好。唯一的问题是重新加载或刷新dasboard.php页面。(如果我刷新页面,或单击此页面内的其他链接,数据将丢失,并使用静态值保持空白)。可能是我没有正确理解你的解决方案。你让我更正Login.php页面的session.php页面?我两个都做了,但都没有解决。是的,我从来没有在header.php中包含header.php。是的,我还纠正了其他的问题。后天我将做最后一次演讲。亲爱的@Tim Dev,非常感谢你继续帮助我解决问题。正如你所建议的,我做了,但根本不工作。我认为,dasboard.php代码中有一些错误。因为在登录时,它会将我带到dashboard.php页面,显示数据库中的所有相关内容,但当我单击dashboard上的任何链接或刷新或重新加载dashboard.php页面时,它会丢失所有内容。我希望你明白我的问题是什么。否则,我可以解释得更多。关于更多的线索,我现在已经找到了。管理员可以添加新的学生。在此之后,管理员将添加分数的主题明智的,以该特定的学生。直到没有为该学生插入任何记录(他的dasboard.php(登录后)显示他的个人详细信息),dasboard.php显示他的信息,但在插入主题和他/她(管理员)获得的分数后,在这种情况下,在第一次登录后,他/她在dasboard.php中获得所有详细信息,但在刷新或重新加载或单击dasboard.php上的任何链接时,所有信息都消失/丢失/丢失。所以,解决这个错误对我来说很痛苦。请用您拥有的最新代码更新您问题中的login.php脚本。当试图找出错误的位置时,这是令人困惑的。此外,还包括一个“var\u dump($\u SESSION,$SESSION\u id);在'session.php'的末尾和header.php中的$query之前,顺便说一句,如果您将其命名为“$\u session['student\u id']”,对您自己来说会更容易,因为稍后会比较容易混淆。您可以检查一下,我在dasboard.php页面的代码中发现了问题:可以在这里找到我可以联系的电子邮件地址。这是非常公开的,但那里的任何电子邮件每隔几个小时就会被删除。我已经在你的邮件中给你发了一封电子邮件,你已经给我了。Regards@RyanVincent,我做了var_转储($会话,$会话id);正如您所说,在“session.php”的末尾和dasboard.php中的$query之前。它在页面上显示此消息打印的所有数据:array(4){[“is”]=>&NULL[“log”]=>&array(2){[“login”]=>bool(true)[“username”]=>string(5)“sunil”}[“image”]=>&string(54)“uploads/01df098be1598e67c4e4f2295bdcd825b20f35f5.jpg”[“id”=>&string(3)“687”}string(3)“687”
header('location:dasboard.php');
$_SESSION['id']=$row['student_id'];
elae{
     header('location:access_denied.php');
}