Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我的PHP会话变量不起作用?_Php_Session - Fatal编程技术网

为什么我的PHP会话变量不起作用?

为什么我的PHP会话变量不起作用?,php,session,Php,Session,突然,我的PHP会话变量停止了存储。以前,它工作得很好,但是没有任何明显的变化,变量不再被存储 我尝试使用adminlogin.php上的代码来显示所有现有的会话变量,事实上,当使用登录表单时,它们没有被存储。重新加载页面后,它们将不再存储 我还创建了一个新文件random.php,其中存储了一个随机数到$\u SESSION['number']。完成后,我返回adminlogin.php,在该页面上填写表单,然后重新加载页面。同样,表单应该存储的会话变量不在会话数组中,但显示了随机数$\u s

突然,我的PHP会话变量停止了存储。以前,它工作得很好,但是没有任何明显的变化,变量不再被存储

我尝试使用adminlogin.php上的代码来显示所有现有的会话变量,事实上,当使用登录表单时,它们没有被存储。重新加载页面后,它们将不再存储

我还创建了一个新文件random.php,其中存储了一个随机数到$\u SESSION['number']。完成后,我返回adminlogin.php,在该页面上填写表单,然后重新加载页面。同样,表单应该存储的会话变量不在会话数组中,但显示了随机数$\u session['number']

connect.php(标题)


adminlogin.php

<?php include 'connect.php';
    if($_SESSION['LoggedIn'] == 1)
{
        echo "Welcome back! You are: " . $_SESSION['StudentID'] . " " . $_SESSION['Row']['FirstName'] . " " . $_SESSION['Row']['LastName'] . "<br>";
    }

else{

if(!($_SERVER["REQUEST_METHOD"] == "POST")){
?>

<form action="adminlogin.php" method="POST">
    Password: <input type="password" name="password" autofocus="autofocus"><br>
    sharkcard ID: <input type="text" name="id"><br>
    <input type="submit">
</form>

<?php
}

else if(empty($_POST['id']) || empty($_POST['password'])){
    echo "You left something blank! Reload the page and try again.";
}

else {

    $id = ($_POST['id']);
    $password = md5($_POST['password']);
    $checklogin = $connection->query("SELECT * FROM students WHERE StudentID = '".$id."' AND AdminPassword = '".$password."' AND AdminPrivileges = 1");
    $num = mysqli_num_rows($checklogin);
    if(mysqli_num_rows($checklogin) == 1)
    {
        $row = mysqli_fetch_array($checklogin);

        $_SESSION['StudentID'] = $id;
        $_SESSION['Row'] = $row; // added
        $_SESSION['LoggedIn'] = 1;


        echo "<h1><font color=\"green\">Success</font></h1>";

        echo "<b>Account Information</b><br>" . $_SESSION['StudentID'] . " " . $_SESSION['Row']['FirstName'] . " ". $_SESSION['Row']['LastName'];

    }
    else
    {
        echo "<h1><font color=\"red\">Failure</font></h1>";
        echo "<p>Sorry, your account could not be found. Please reload and try again.</a>.</p>";
    }
}
}
?>

密码:
sharkcard ID:

我认为问题出在adminlogin.php的第2行
if($\u会话['LoggedIn']==1)
如果($loggedin)


另外,
$\u SESSION['LoggedIn']
$\u SESSION['StudentID']
都不是数组,所以您应该在connect.php第19行使用
isset()
而不是
empty()

为什么要使用MD5来存储密码?我希望你不要接受这个。
<?php include 'connect.php';
    if($_SESSION['LoggedIn'] == 1)
{
        echo "Welcome back! You are: " . $_SESSION['StudentID'] . " " . $_SESSION['Row']['FirstName'] . " " . $_SESSION['Row']['LastName'] . "<br>";
    }

else{

if(!($_SERVER["REQUEST_METHOD"] == "POST")){
?>

<form action="adminlogin.php" method="POST">
    Password: <input type="password" name="password" autofocus="autofocus"><br>
    sharkcard ID: <input type="text" name="id"><br>
    <input type="submit">
</form>

<?php
}

else if(empty($_POST['id']) || empty($_POST['password'])){
    echo "You left something blank! Reload the page and try again.";
}

else {

    $id = ($_POST['id']);
    $password = md5($_POST['password']);
    $checklogin = $connection->query("SELECT * FROM students WHERE StudentID = '".$id."' AND AdminPassword = '".$password."' AND AdminPrivileges = 1");
    $num = mysqli_num_rows($checklogin);
    if(mysqli_num_rows($checklogin) == 1)
    {
        $row = mysqli_fetch_array($checklogin);

        $_SESSION['StudentID'] = $id;
        $_SESSION['Row'] = $row; // added
        $_SESSION['LoggedIn'] = 1;


        echo "<h1><font color=\"green\">Success</font></h1>";

        echo "<b>Account Information</b><br>" . $_SESSION['StudentID'] . " " . $_SESSION['Row']['FirstName'] . " ". $_SESSION['Row']['LastName'];

    }
    else
    {
        echo "<h1><font color=\"red\">Failure</font></h1>";
        echo "<p>Sorry, your account could not be found. Please reload and try again.</a>.</p>";
    }
}
}
?>