css 当我在另一个页面中使用$_SESSION时,它为空[已关闭]

tyky79it  于 2022-12-01  发布在  其他
关注(0)|答案(2)|浏览(118)

编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
昨天关门了。
这篇文章是昨天编辑并提交审查的。
Improve this question
我想为一个大学数据库系统做一个个人资料页面。我遇到了麻烦,当我把它从登录页面重定向到主页。
在下面的php代码中,我把表单连接到数据库,然后把用户ID信息赋给$_ SESSION ['userid '],这样我就可以检查ID和密码是否正确。下面是连接到登录表单的php:

<?php
session_start();

// mysql base configuration
define('DB_SERVER', 'localhost:3306');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', '');
define('DB_DATABASE', 'universitydatabse');
$db = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);

if($db===false)
{
    die("connection error");
}

if($_SERVER["REQUEST_METHOD"] == "POST") {
    //id and password sent from form

    $name = $_POST['bannerid']; // bannerid is the name in form
    
    $pass = $_POST['password']; //password is the name in form

    //check if input matches database
    $sql = "SELECT * FROM users WHERE user_ID = '$name' AND u_pass = '$pass'";
    $result = mysqli_query($db,$sql);
    $row = mysqli_fetch_array($result);

    //if result matched $id and $password, table row must be one row

        
        //check for type of user
    if($row["usertype"] == "student") {

        $_SESSION['userid'] == $name; //session to save id

        $_SESSION['usertype'] == "student"; //session to save type

        header("location:home.php");

    } elseif ($row["usertype"] == "instructor") {

        $_SESSION['userid'] == $name; //session to save id

        $_SESSION['usertype'] == "instructor"; //session to save type

        header("location:instructorhome.php");
    } 
    else {

        echo "ID or password do not match";

        header("location:login.php");
    }
}
?>

当我运行这个程序时,我可以告诉$_SESSION['username']工作,因为错误的用户ID或密码给我一个错误。
现在我想在正确输入后将用户从登录页面重定向到主页,所以我将此php代码放在home.php文件中的html代码之前:

<?php

session_start();

if(!isset($_SESSION['userid']))
    {
        header("location:login.php");   
    }
 elseif ($_SESSION['usertype'] == "student") 
    {
        header("location:login.php");   
    }
?>

当我尝试登录后,我使用这个php代码,它停留在登录页面.我用print_r检查,我看到$_SESSION['userid'] a是空的主页,我不知道如何解决这个问题.
I have tried including session_start(); at the top. I have gone to php.ini and I tried to change and verify everything I have seen online that people says could be causing the problem like regional globals, session.auto_inc, session.cookies, etc. I don't know what else to do.
如有任何建议,我们将不胜感激。

b09cbbtk

b09cbbtk1#

希望你一切顺利。
我想我找到你的问题了。
在此查询中:$sql = "SELECT * FROM studentview WHERE Student_ID = $_SESSION['username']";
您正在将$_SESSION ['username']值与学生标识进行比较。
例如,
学生姓名;&学生标识= 10;因此,在这种情况下,您要将您字段与其他值进行比较请重新检查您对用户名字段查询然后再比较您查询
SQL查询语句:“SELECT * FROM学生视图WHERE用户名字段= $_SESSION ['用户名']";
谢谢你的好意,

zfciruhq

zfciruhq2#

我觉得你需要这个

$sql = "SELECT * FROM studentview WHERE Student_ID = '{$_SESSION['username']}'";

如果仍然错误,尝试使用var_dump或print_r对变量$sql进行修改,希望能解决问题。

相关问题