Php 我如何使我的假登录页面显示;“已授予访问权限”;成功登录后没有其他内容?

Php 我如何使我的假登录页面显示;“已授予访问权限”;成功登录后没有其他内容?,php,html,forms,authentication,Php,Html,Forms,Authentication,我有一个任务,需要我创建一个简单的登录页面,要求输入用户名和密码。一旦输入,它会检查一个文本文件,如果用户名和密码与文件上的匹配,它应该显示“已授予访问权限”字样,页面上没有其他内容 如何使我的表单在加载时正常显示,然后当尝试登录失败时,它会在同一页面上显示“拒绝访问”,但当尝试登录成功时,会显示“授予访问权限”,而不会显示其他内容 这是我的密码: <?php $fs = fopen('includes/users.txt', 'r'); $contents = fread

我有一个任务,需要我创建一个简单的登录页面,要求输入用户名和密码。一旦输入,它会检查一个文本文件,如果用户名和密码与文件上的匹配,它应该显示“已授予访问权限”字样,页面上没有其他内容

如何使我的表单在加载时正常显示,然后当尝试登录失败时,它会在同一页面上显示“拒绝访问”,但当尝试登录成功时,会显示“授予访问权限”,而不会显示其他内容

这是我的密码:

<?php
    $fs = fopen('includes/users.txt', 'r');
    $contents = fread($fs, filesize('includes/users.txt'));
    $words = explode('||>><<||', $contents);
    $msg = "";
    if(isset($_POST['Submit']))
    {
        foreach($words as $word)
        {
            $names = explode(",", $word);
            for($x = 0; $x < sizeof($names); $x++)
            {
                if($x == 0)
                {
                    $username = $names[$x];
                }               
                else
                {
                    $password = $names[$x];
                }           
                
            }
            
            if($_POST['user'] == $username && $_POST['pass'] == $password)
            {
                $msg = "<p>Access Granted!</p>";
                break;
            }
            else
            {
                $msg = "<p>Access Denied!</p>";
                break;
            }
        }
    }       
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <title>Insecure</title>
    <link rel="stylesheet" href="css/style.css">
</head>
<body>
    <div>
        <form method="post">
            <input placeholder="Username" type="text" name="user"><br>
            <input placeholder="Password" type="password" name="pass"><br><br>
            <input type="submit" value="Log In" name="Submit">
            <input type="reset">
        </form><br><br>
    </div>
    <?php echo $msg; ?>
</body>
</html>

不安全的





您可以使用Die(“”);或退出(“”)

像这样:

Die("Access granted");
骰子会杀死整个页面,您可以设置一条消息

为了获得更好的结果:

die("<div class='YOUR CLASSES'>Your message</div>");
die(“你的信息”);
退出真的是死哈哈

exit("MESSAGE");
exit("<div class='YOUR CLASSES'>Your message</div>");
退出(“消息”);
退出(“您的邮件”);
您可以使用Die(“”);或退出(“”)

像这样:

Die("Access granted");
骰子会杀死整个页面,您可以设置一条消息

为了获得更好的结果:

die("<div class='YOUR CLASSES'>Your message</div>");
die(“你的信息”);
退出真的是死哈哈

exit("MESSAGE");
exit("<div class='YOUR CLASSES'>Your message</div>");
退出(“消息”);
退出(“您的邮件”);

在if和else语句中声明$msg变量时,立即回显该变量,而不是在表单之后

为了确保$msg回音后屏幕上不会打印其他内容,一种简单的方法是使用“die()”

这样,表单就不会显示,因为脚本在if或else语句中回显$msg后被终止

<?php
$fs = fopen('includes/users.txt', 'r');
$contents = fread($fs, filesize('includes/users.txt'));
$words = explode('||>><<||', $contents);
$msg = "";
if(isset($_POST['Submit']))
{
    foreach($words as $word)
    {
        $names = explode(",", $word);
        for($x = 0; $x < sizeof($names); $x++)
        {
            if($x == 0)
            {
                $username = $names[$x];
            }               
            else
            {
                $password = $names[$x];
            }           
            
        }
        
        if($_POST['user'] == $username && $_POST['pass'] == $password)
        {
            $msg = "<p>Access Granted!</p>";
            break;
        }
        else
        {
            $msg = "<p>Access Denied!</p>";
            break;
        }
        
        //Print the $msg variable and kill the script 
        die($msg);
    }
}       

您的HTML变成:

<form method="post">
        <input placeholder="Username" type="text" name="user"><br>
        <input placeholder="Password" type="password" name="pass"><br><br>
        <input type="submit" value="Log In" name="Submit">
        <input type="reset">
    </form>





在if和else语句中声明$msg变量时,立即回显该变量,而不是在表单之后

为了确保$msg回音后屏幕上不会打印其他内容,一种简单的方法是使用“die()”

这样,表单就不会显示,因为脚本在if或else语句中回显$msg后被终止

<?php
$fs = fopen('includes/users.txt', 'r');
$contents = fread($fs, filesize('includes/users.txt'));
$words = explode('||>><<||', $contents);
$msg = "";
if(isset($_POST['Submit']))
{
    foreach($words as $word)
    {
        $names = explode(",", $word);
        for($x = 0; $x < sizeof($names); $x++)
        {
            if($x == 0)
            {
                $username = $names[$x];
            }               
            else
            {
                $password = $names[$x];
            }           
            
        }
        
        if($_POST['user'] == $username && $_POST['pass'] == $password)
        {
            $msg = "<p>Access Granted!</p>";
            break;
        }
        else
        {
            $msg = "<p>Access Denied!</p>";
            break;
        }
        
        //Print the $msg variable and kill the script 
        die($msg);
    }
}       

您的HTML变成:

<form method="post">
        <input placeholder="Username" type="text" name="user"><br>
        <input placeholder="Password" type="password" name="pass"><br><br>
        <input type="submit" value="Log In" name="Submit">
        <input type="reset">
    </form>