为什么我的 Web 服务收不到来自 HTML 表单的任何数据?

Why does my web service not receive any data from my HTML form?

我有一个 HTML 表单,(应该)将用户输入数据发送到 Web PHP 服务:

<!DOCTYPE HTML>
<html>
<head>
  <title>Register Form</title>
</head>
<body>
 <form action="localhost/test.php" method="POST">
  <table>
   <tr>
    <td>Thema :</td>
    <td><input type="text" name="theme" required></td>
   </tr>
   <tr>
    <td>Jahr :</td>
    <td><input type="number" name="year" required></td>
   </tr>
   <tr>
    <td><input type="submit" value="Speichern"></td>
   </tr>
  </table>
 </form>
</body>
</html>

Web 服务会将数据输入 MySQL 数据库。这很好用。我知道这一点,因为如果我在浏览器中打开 Web 服务,它会在我的数据库中填充一行 NULL。但是,如果我单击 HTML 站点上的提交按钮,它既不会填充用户输入,也不会填充 NULL。这是我的网络服务:

<?php

    if(isset($_POST['theme']) && isset($_POST['year'])) {
        
        $theme = $_POST['theme'];
        $year = $_POST['year'];}
        $url = "127.0.0.1";
        $database = "songs";
        $username = "root";
        $password = "";
        
        $connect = mysqli_connect($url, $username, $password, $database);   
            
                    if(!$connect) 
                    {
                        die("Connection failed: ".$connect->connect_error);
                    }
            
                    //create a template
                    $sql = "INSERT INTO theme (theme, year) VALUES (?, ?);";
          
            
                    //create a prepared statement
                    $stmt = mysqli_stmt_init($connect);
            
            
                    //prepare the prepared statement
                    if (!mysqli_stmt_prepare($stmt, $sql)) {
                        echo "SQL statement failed";
                    } else {
                        //bind parameters to the placeholders
                        mysqli_stmt_bind_param($stmt, "si", $theme, $year);      //1 string, 1 integer, is equal to theme and year
                        //run parameters inside database
                        mysqli_stmt_execute($stmt);

                        mysqli_close($connect);
                    }
?>

我知道我的 HTML 网站正在运行,因为在 webhook.site 它向我显示了输入。 (请忽略遗漏的错误处理和我的网络服务上的所有内容,我知道。)

我做错了什么?

在表单标签中,如果 html 和文件在同一文件夹中,则 action 的值应为 test.php。否则放相对路径。不是 localhost/test.php.