未定义 index:logged

Undefined index:logged in

这是我的代码

<html>
<head>
<title>login page</title>
</head>
<body bgcolor="black" style="color:gray">
<form action="index.php" method=get>
<h1 align="center" style="color:gray" >Welcome to this simple application</h1>
<?php
session_start(); 
if(isset($_SESSION["logging"])&& $_SESSION["logged"])
{
     print_secure_content();
}
else {
    if(!$_SESSION["logging"])
    {  
    $_SESSION["logging"]=true;
    loginform();
    }
       else if($_SESSION["logging"])
       {
         $number_of_rows=checkpass();
         if($number_of_rows==1)
            {   
             $_SESSION[user]=$_GET[userlogin];
             $_SESSION[logged]=true;
             print"<h1>you have loged in successfully</h1>";
             print_secure_content();
            }
            else{
                print "wrong pawssword or username, please try again";  
                loginform();
            }
        }
     }

function loginform()
{
print "please enter your login information to proceed with our site";
print ("<table border='2'><tr><td>username</td><td><input type='text' name='userlogin' size'20'></td></tr><tr><td>password</td><td><input type='password' name='password' size'20'></td></tr></table>");
print "<input type='submit' >"; 
print "<h3><a href='registerform.php'>register now!</a></h3>";  
}

function checkpass()
{
$servername="localhost";
$username="root";
$conn=  mysqli_connect($servername,$username)or die(mysqli_error());
mysqli_select_db($conn,"test");
$sql="select * from users where name='$_POST[userlogin]' and password='$_POST[password]'";
$result=mysqli_query($conn,$sql) or die(mysqli_error());
return  mysqli_num_rows($result);
}

function print_secure_content()
{
    print("<b><h1>hi mr.$_SESSION[user]</h1>");
    print "<br><h2>only a logged in user can see this</h2><br><a href='logout.php'>Logout</a><br>"; 

}
?>

</form>
</body>
</html>  

我得到这 3 个错误

注意:未定义的索引:登录C:第10行 注意:未定义索引:第 51 行 C 中的 userlogin 注意:未定义索引:第 51 行的密码

我试过 isset() 但第 10 行没有任何变化。 结束错误 2 和 3 我不知道。 非常感谢。

我查看了参考主题,但没有解决我的问题。

  1. session_start() 函数作为 <html> 标记之前的第一件事。
  2. 在第 10 行,您忘记将 isset() 放在第二个条件上,就像 if(isset($_SESSION["logging"])&& isset($_SESSION["logged"]))
  3. 在第 28 行和第 29 行添加引号:$_SESSION['user']=$_GET['userlogin'];$_SESSION['logged']=true;
  4. 像这样连接变量print("<b><h1>hi mr" . $_SESSION[user] . "</h1>");

您的最终代码如下:

<?php
session_start(); 
?>
<html>
<head>
<title>login page</title>
</head>
<body bgcolor="black" style="color:gray">
<form action="index.php" method=get>
<h1 align="center" style="color:gray" >Welcome to this simple application</h1>
<?php
if(isset($_SESSION["logging"])&& isset($_SESSION["logged"]))
{
     print_secure_content();
}
else 
{
    if(!$_SESSION["logging"])
    {  
        $_SESSION["logging"] = true;
        loginform();
    }
    else if($_SESSION["logging"])
    {
        $number_of_rows = checkpass();
        if($number_of_rows == 1)
        {
            $_SESSION['user'] = $_GET['userlogin'];
            $_SESSION['logged'] = true;
            print"<h1>you have loged in successfully</h1>";
            print_secure_content();
        }
        else{
            print "wrong pawssword or username, please try again";  
            loginform();
        }
    }
}

function loginform()
{
    print "please enter your login information to proceed with our site";
    print ("<table border='2'><tr><td>username</td><td><input type='text' name='userlogin' size'20'></td></tr><tr><td>password</td><td><input type='password' name='password' size'20'></td></tr></table>");
    print "<input type='submit' >"; 
    print "<h3><a href='registerform.php'>register now!</a></h3>";  
}

function checkpass()
{
    $servername="localhost";
    $username="root";
    $conn=  mysqli_connect($servername,$username)or die(mysqli_error());
    mysqli_select_db($conn,"test");
    $sql="select * from users where name='$_POST[userlogin]' and password='$_POST[password]'";
    $result=mysqli_query($conn,$sql) or die(mysqli_error());
    return  mysqli_num_rows($result);
}

function print_secure_content()
{
    print("<b><h1>hi mr" . $_SESSION[user] . "</h1>");
    print "<br><h2>only a logged in user can see this</h2><br><a href='logout.php'>Logout</a><br>"; 

}
?>

</form>
</body>
</html>