Страницу можно посетить без входа

У меня есть страница "Логин". Когда люди входят в систему с правильной комбинацией имени пользователя и пароля из базы данных, они будут перенаправлены на другую страницу ('input.html'). Когда комбинация неправильная, они получают ошибку.

Без входа в систему я могу просто изменить имя веб-адреса (с "login.php" на "input.html") и получить доступ к странице. Я хочу, чтобы только администратор и пользователи посещали страницу, а не просто "посетители" без учетной записи.

Мой код для моего 'login.php'.

<?php
session_start();

$host = "localhost";
$user = "332547";
$pass = "cvEsbduv";
$db = "332547db";

mysql_connect($host, $user, $pass);
mysql_select_db($db);




if (!empty($_POST)) {
    $username = $_POST['username'];
    $password = $_POST['password'];
            $sql = "SELECT * FROM inloggen2 WHERE username='".$username."'      AND password='".$password."' LIMIT 1";




            $res = mysql_query($sql);
            if(mysql_num_rows($res) == 1) {
                header('location: input.html');
                exit ();
            }else {

                echo "Niet goed ingelogd. Keer alstubliefd terug naar de vorige pagina.";

                header('location: foumelding.php');
                exit();
            }
}
?>




<html>

<head>
<title>Inloggen</title>
</head>

<body>
<table border="1">
  <tr>
    <td align="center">Inlogggen</td>
  </tr>
  <tr>
    <td>
      <table>

        <form method="post" action="login.php">
    Gebruikersnaam: <input type="text" name="username" required/> <br /><br />
    Wachtwoord: <input type="password" name="password" required/> <br /><br />
<input type="submit" name="submit" value="Log in" />
</form>
        </table>
      </td>
    </tr>
</table>
</body>
</html>    

2 ответа

Вам необходимо преобразовать ваш index.html в файл php и добавить проверку для вошедшего в систему пользователя.

Вы должны прочитать немного больше о php и, возможно, прочитать некоторые учебные пособия о простой системе входа в систему по адресу php: https://www.google.de/search?q=php+simple+login+system

Вам нужно использовать php-код в индексе. HTML PHP

Более конкретно: сессии

Я вижу, вы уже используете session_start(); на этой странице. Также используйте его на index.php, а затем приступайте к изучению / использованию сессий.

НЕ ПО ТЕМЕ:

  • Вы открыты для MySQL инъекций.
  • Не используйте MySQL вместо MySQL или PDO
  • Не храните пароли в виде простого текста. Хэш их и т.д... (просто Google, как хранить пароли в базе данных).
  • У вас есть много опечаток (я полагаю), как:

    echo "Niet goed ingelogd. Keer alstubliefdtterug naar de vorige pagina.";

    и (возможно):

    header('location: foumelding.php'); не должно ли это быть: header('location: foutmelding.php');?

    а также:

    <td align="center">Inlogggen</td> не должно ли это быть: <td align="center">Inloggen</td>?

Другие вопросы по тегам