Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.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保护我的HTML页面?我犯了一个错误_Php - Fatal编程技术网

如何使用PHP保护我的HTML页面?我犯了一个错误

如何使用PHP保护我的HTML页面?我犯了一个错误,php,Php,我已经用php创建了会话,并限制了admin.php页面。如果用户未登录,他/她或任何外国人/机器人将无法访问该页面。登录后,它必须进入管理页面。但是它会转到check.php中提到的contact.php。如果我没有在admin.php中包含check.php。登录后会转到admin.php,但也可以在不登录的情况下访问admin.php。你能查一查我哪里错了吗 这是login.php- <?php include('connect.php'); // Include connect f

我已经用php创建了会话,并限制了admin.php页面。如果用户未登录,他/她或任何外国人/机器人将无法访问该页面。登录后,它必须进入管理页面。但是它会转到check.php中提到的contact.php。如果我没有在admin.php中包含check.php。登录后会转到admin.php,但也可以在不登录的情况下访问admin.php。你能查一查我哪里错了吗

这是login.php-

<?php
include('connect.php'); // Include connect for login Script
if ((isset($_SESSION['username']) != '')) 
{
header('Location: admin.php');
}
?>

<!DOCTYPE html>
<html>
<head>
<link href='http://fonts.googleapis.com/css?family=Montserrat:400,700' rel='stylesheet' type='text/css'>
<meta charset="UTF-8">

<title>Admin Login</title>

</head>

<body>

<div class="login-block">
<form action="" method="POST">
    <h1>Login</h1><span><img src="/img/loginlogo.png"/></span>
    <span id="invalid"><?php echo $error; ?></span>
    <input type="text" name="username" placeholder="Username" id="username" />
    <span><?php echo $usererror; ?></span>
    <input type="password" name="password" placeholder="Password" id="password" />
    <span><?php echo $pwderror; ?></span>
    <input id= "btn" name="submit" type="submit" value=" Login "/>

    <a href="register.php" id="frgt">Forgot Password</a>
    <a href="register.php" id="register">Register Now</a>

</form>
</div>
</body>

</html>
这是admin.php-

<?php
    include('check.php');
?>

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Home</title>
<link rel="stylesheet" href="style.css" type="text/css" />
</head>

<body>
<h1 class="hello">Hello, <em><?php echo $login_user;?>!</em></h1>
<br><br><br>
<a href="logout.php" style="font-size:18px">Logout?</a>
</body>
</html>
这是check.php-

<?php
include('db.php');
session_start();
$user_check=$_SESSION['username'];

$sql = mysqli_query($db,"SELECT username FROM credentials WHERE username='$user_check' ");

$row=mysqli_fetch_array($sql,MYSQLI_ASSOC);

$login_user=$row['username'];

if(!isset($user_check))
{
header("Location: contact.php");
}
?>
这是我的connect.php-

<?php
session_start();
include("db.php"); //Establishing connection with our database

$error = ""; //Variable for storing our errors.
if(isset($_POST["submit"]))
{
    if(empty($_POST["username"]) || empty($_POST["password"]))
    {
        $usererror = "Username can not be left blank";
        $pwderror = "Password can not be left blank";
    }

    else
    {
        // Define $username and $password
        $username=$_POST['username'];
        $password=$_POST['password'];

        // To protect from MySQL injection
        $username = stripslashes($username);
        $password = stripslashes($password);
        $username = mysqli_real_escape_string($db, $username);
        $password = mysqli_real_escape_string($db, $password);
        //$password = md5($password);

        //Check username and password from database
        $sql="SELECT id FROM credentials WHERE username='$username' and password='$password'";
        $result=mysqli_query($db, $sql);
        $row=mysqli_fetch_array($result, MYSQLI_ASSOC);

        //If username and password exist in our database then create a session.
        //Otherwise echo error.

        if(mysqli_num_rows($result) == 1)
        {
            $_SESSION['username'] = $login_user; // Initializing Session
            header("location: admin.php"); // Redirecting To Other Page
        }
        else
        {
            $error = "Incorrect username or password.";
        }

    }
}

?>

我可以帮助你,告诉你,你应该停止学习那个教程。它告诉你的关于如何使用HTML、PHP、MySQL的一切都是不推荐的,不是最好的实践,只是错误的。停止使用那个教程,扔掉你的工作,阅读准备好的SQL语句以及HTML5和PHP7

始终将模具或出口置于头部位置之后:。。。;打电话

您的登录正在检查会话值,因此,一旦您正确登录一次,会话值将被记住,您将始终登录。若要打破此循环,请清除此网站的浏览器数据。刷新页面


如果没有您的帮助,我无法提供更详细的帮助,并说明您是否能够正确登录

我已经解决了这个问题

我将connect.php中的代码替换为:

$_SESSION['username'] = $login_user; // Initializing Session
致:


谢谢大家。

您是否正在学习某种教程?是的。但它不起作用。你能帮个忙吗?我可以帮你,说你应该停止学习那个教程。它告诉你的关于如何使用HTML、PHP、MySQL的一切都是不推荐的,不是最好的实践,只是错误的。停止使用那个教程,扔掉你的工作,阅读准备好的SQL语句以及HTML5和PHP7。祝你好运,谢谢你,马丁。我一定会那样做。但是有点紧急,你能解决这个问题吗?必须重写整个内容。我在日志中看到:PHP通知:未定义变量:login.PHP第150行的usererror\n PHP通知:未定义变量:login.PHP第152行的pwderror PHP通知:未定义变量:login.PHP第150行的usererror PHP通知:未定义变量:第152行login.php中的pwderror未定义变量:第152行connect.php中的login\u用户37@RaviSharma这个错误涉及到一个文件login.php,在你的问题中甚至没有提到这个文件。你能查一下吗?
$_SESSION['username'] = $username; // Initializing Session