Странный баг с отправкой формы для авторизации

Сделал авторизацию на сайте (две формы на странице которые переключаются с помощью двух кнопок и JS) и всё работает, на первый взгляд. Прикол в том, что при авторизации с использованием правильных данных, на сервер приходит пустая форма (абсолютно без ключей и значений), но с если написать неправильный логин либо пароль то всё ок, все поля доходят и сервер выдаёт ошибку. Код на сервере:

<?php
    ini_set("display_errors", true);
    echo "<pre>REQUEST_METHOD: " . $_SERVER["REQUEST_METHOD"] . "\nGET: " . var_export($_GET, true) . "\nPOST: " . var_export($_POST, true) . "\nCOOKIE: " . var_export($_COOKIE, true) . "</pre>";
// Код
if (empty($_POST["type"])) {
    echo "Чтобы пост не был слишком большим, я написал этот код в конце, полученный пользователем.";
} else if ($_POST["type"] == "login") {
    // Проверки
} else if ($_POST["type"] == "register") {
    // Проверки
} else {
    echo "То же самое что и выше, но с особым сообщением в div.";
}

Приходит пользователю когда ещё ничего не отправил:

<pre>REQUEST_METHOD: GET
GET: array (
  'page' => 'auth',
)
POST: array (
)
COOKIE: array (
)</pre><html lang="ru">

    <head>
        <meta charset="utf-8">
        <title>Мессенджер для Неки́тки</title>
        <style type="text/css" media="handheld, print">
            @media (orientation: landscape) {
                
            }
            @media (orientation: portrait) {
                
            }
        </style>
        <style type="text/css" media="screen, tv">
            
        </style>
    </head>
    <form method="post" id="auth_form">
        <input type="hidden" name="type" value="login">
        <input type="text" name="login" placeholder="Ваш логин" required><br>
        <input type="password" name="password" placeholder="Ваш пароль" required><br>
        <input type="submit" value="Войти">
    </form>
    <br></br>
    <div id="set_type_login" onclick="setFormType('login')" style="display: none;">Войти в аккаунт</div>
    <div id="set_type_register" onclick="setFormType('register')">Создать аккаунт</div>
    <script type="text/javascript">
        function setFormType(type) {
            if (type == "register") {
                document.getElementById("set_type_login").style.display = "block";
                document.getElementById("set_type_register").style.display = "none";
                document.getElementById("auth_form").innerHTML = "<form method=\"post\" id=\"auth_form\">\n        <input type=\"hidden\" name=\"type\" value=\"register\">\n        <input type=\"text\" name=\"name\" placeholder=\"Придумайте имя\" required><br>\n        <input type=\"text\" name=\"login\" placeholder=\"Придумайте логин (не обязательно)\"><br>\n        <input type=\"text\" name=\"password\" placeholder=\"Придумайте пароль\" required><br>\n        <input type=\"submit\" value=\"Создать\">\n    </form>";
            } else if (type == "login") {
                document.getElementById("set_type_login").style.display = "none";
                document.getElementById("set_type_register").style.display = "block";
                document.getElementById("auth_form").innerHTML = "<form method=\"post\" id=\"auth_form\">\n        <input type=\"hidden\" name=\"type\" value=\"login\">\n        <input type=\"text\" name=\"login\" placeholder=\"Ваш логин\" required><br>\n        <input type=\"password\" name=\"password\" placeholder=\"Ваш пароль\" required><br>\n        <input type=\"submit\" value=\"Войти\">\n    </form>";
            }
        }
    </script>
</html>

Приходит если ввести правильный логин и пароль:

<pre>REQUEST_METHOD: GET
GET: array (
  'page' => 'auth',
)
POST: array (
)
COOKIE: array (
)</pre><html lang="ru">

    <head>
        <meta charset="utf-8">
        <title>Мессенджер для Неки́тки</title>
        <style type="text/css" media="handheld, print">
            @media (orientation: landscape) {
                
            }
            @media (orientation: portrait) {
                
            }
        </style>
        <style type="text/css" media="screen, tv">
            
        </style>
    </head>
    <form method="post" id="auth_form">
        <input type="hidden" name="type" value="login">
        <input type="text" name="login" placeholder="Ваш логин" required><br>
        <input type="password" name="password" placeholder="Ваш пароль" required><br>
        <input type="submit" value="Войти">
    </form>
    <br></br>
    <div id="set_type_login" onclick="setFormType('login')" style="display: none;">Войти в аккаунт</div>
    <div id="set_type_register" onclick="setFormType('register')">Создать аккаунт</div>
    <script type="text/javascript">
        function setFormType(type) {
            if (type == "register") {
                document.getElementById("set_type_login").style.display = "block";
                document.getElementById("set_type_register").style.display = "none";
                document.getElementById("auth_form").innerHTML = "<form method=\"post\" id=\"auth_form\">\n        <input type=\"hidden\" name=\"type\" value=\"register\">\n        <input type=\"text\" name=\"name\" placeholder=\"Придумайте имя\" required><br>\n        <input type=\"text\" name=\"login\" placeholder=\"Придумайте логин (не обязательно)\"><br>\n        <input type=\"text\" name=\"password\" placeholder=\"Придумайте пароль\" required><br>\n        <input type=\"submit\" value=\"Создать\">\n    </form>";
            } else if (type == "login") {
                document.getElementById("set_type_login").style.display = "none";
                document.getElementById("set_type_register").style.display = "block";
                document.getElementById("auth_form").innerHTML = "<form method=\"post\" id=\"auth_form\">\n        <input type=\"hidden\" name=\"type\" value=\"login\">\n        <input type=\"text\" name=\"login\" placeholder=\"Ваш логин\" required><br>\n        <input type=\"password\" name=\"password\" placeholder=\"Ваш пароль\" required><br>\n        <input type=\"submit\" value=\"Войти\">\n    </form>";
            }
        }
    </script>
</html>

Приходит если ввести неправильный логин:

<pre>REQUEST_METHOD: POST
GET: array (
  'page' => 'auth',
)
POST: array (
  'type' => 'login',
  'login' => 't',
  'password' => 'test',
)
COOKIE: array (
)</pre><html lang="ru">

    <head>
        <meta charset="utf-8">
        <title>Мессенджер для Неки́тки</title>
        <style type="text/css" media="handheld, print">
            @media (orientation: landscape) {
                
            }
            @media (orientation: portrait) {
                
            }
        </style>
        <style type="text/css" media="screen, tv">
            
        </style>
    </head>
    <div>Нет аккаунта с таким логином!</div>
    <form method="post" id="auth_form">
        <input type="hidden" name="type" value="login">
        <input type="text" name="login" placeholder="Ваш логин" required><br>
        <input type="password" name="password" placeholder="Ваш пароль" required><br>
        <input type="submit" value="Войти">
    </form>
    <br></br>
    <div id="set_type_login" onclick="setFormType('login')" style="display: none;">Войти в аккаунт</div>
    <div id="set_type_register" onclick="setFormType('register')">Создать аккаунт</div>
    <script type="text/javascript">
        function setFormType(type) {
            if (type == "register") {
                document.getElementById("set_type_login").style.display = "block";
                document.getElementById("set_type_register").style.display = "none";
                document.getElementById("auth_form").innerHTML = "<form method=\"post\" id=\"auth_form\">\n        <input type=\"hidden\" name=\"type\" value=\"register\">\n        <input type=\"text\" name=\"name\" placeholder=\"Придумайте имя\" required><br>\n        <input type=\"text\" name=\"login\" placeholder=\"Придумайте логин (не обязательно)\"><br>\n        <input type=\"text\" name=\"password\" placeholder=\"Придумайте пароль\" required><br>\n        <input type=\"submit\" value=\"Создать\">\n    </form>";
            } else if (type == "login") {
                document.getElementById("set_type_login").style.display = "none";
                document.getElementById("set_type_register").style.display = "block";
                document.getElementById("auth_form").innerHTML = "<form method=\"post\" id=\"auth_form\">\n        <input type=\"hidden\" name=\"type\" value=\"login\">\n        <input type=\"text\" name=\"login\" placeholder=\"Ваш логин\" required><br>\n        <input type=\"password\" name=\"password\" placeholder=\"Ваш пароль\" required><br>\n        <input type=\"submit\" value=\"Войти\">\n    </form>";
            }
        }
    </script>
</html>

Приходит если ввести неправильный пароль:

<pre>REQUEST_METHOD: POST
GET: array (
  'page' => 'auth',
)
POST: array (
  'type' => 'login',
  'login' => 'test',
  'password' => 't',
)
COOKIE: array (
)</pre><html lang="ru">

    <head>
        <meta charset="utf-8">
        <title>Мессенджер для Неки́тки</title>
        <style type="text/css" media="handheld, print">
            @media (orientation: landscape) {
                
            }
            @media (orientation: portrait) {
                
            }
        </style>
        <style type="text/css" media="screen, tv">
            
        </style>
    </head>
    <div>Неправильный пароль!</div>
    <form method="post" id="auth_form">
        <input type="hidden" name="type" value="login">
        <input type="text" name="login" placeholder="Ваш логин" required><br>
        <input type="password" name="password" placeholder="Ваш пароль" required><br>
        <input type="submit" value="Войти">
    </form>
    <br></br>
    <div id="set_type_login" onclick="setFormType('login')" style="display: none;">Войти в аккаунт</div>
    <div id="set_type_register" onclick="setFormType('register')">Создать аккаунт</div>
    <script type="text/javascript">
        function setFormType(type) {
            if (type == "register") {
                document.getElementById("set_type_login").style.display = "block";
                document.getElementById("set_type_register").style.display = "none";
                document.getElementById("auth_form").innerHTML = "<form method=\"post\" id=\"auth_form\">\n        <input type=\"hidden\" name=\"type\" value=\"register\">\n        <input type=\"text\" name=\"name\" placeholder=\"Придумайте имя\" required><br>\n        <input type=\"text\" name=\"login\" placeholder=\"Придумайте логин (не обязательно)\"><br>\n        <input type=\"text\" name=\"password\" placeholder=\"Придумайте пароль\" required><br>\n        <input type=\"submit\" value=\"Создать\">\n    </form>";
            } else if (type == "login") {
                document.getElementById("set_type_login").style.display = "none";
                document.getElementById("set_type_register").style.display = "block";
                document.getElementById("auth_form").innerHTML = "<form method=\"post\" id=\"auth_form\">\n        <input type=\"hidden\" name=\"type\" value=\"login\">\n        <input type=\"text\" name=\"login\" placeholder=\"Ваш логин\" required><br>\n        <input type=\"password\" name=\"password\" placeholder=\"Ваш пароль\" required><br>\n        <input type=\"submit\" value=\"Войти\">\n    </form>";
            }
        }
    </script>
</html>

P.s.Пробовал запускать и на локалке, и на сервере, даже просил протестить друга, но это ничего не дало.
P.s.s.Хочу заранее сказать, код идущий до if ни коим образом не трогает переменную $_POST.
P.s.s.s.Не предлагайте мне средства отладки/отлова ошибок в PHP, посмотрите код и поймите что в нём их нет (а если всё таки есть, то сообщите об этом).
P.s.s.s.s.Спустя несколько часов махинаций, я понял что при отправке именно ПРАВИЛЬНОГО логина и ПРАВИЛЬНОГО пароля, post почему-то превращается в get (но с неправильным логином/паролем и при регистрации всё нормально работает)...


Ответы (0 шт):