Вот эта строка абсолютно бессмысленная: $name = $password = "";
Объясни, зачем ты делаешь вот это: $name = $_POST["username"];
$password = $_POST["password"]; У тебя УЖЕ есть значения $_POST["username"] и $_POST["password"] - зачем ты их присваиваешь переменным?
Вот так делать не надо: global $name, $password; Всё, что можно делать без global, должно делаться без global.
Должно быть так: function correct_login(string $name, string $password) : void {
if ($name === CORRECT_USER) {
if ($password === CORRECT_PASS) {
echo "Hello, killcode!";
} else {
echo "Incorrect password, please try again";
}
} else {
echo "Incorrect username, please try again";
}
}
В дополнение к ответу от Андрей: не забывай, что поля могут быть не отправлены в запросе, потому лучше последнюю строку сделать так: correct_login($_POST["login"] ?? "", $_POST["password"] ?? "");