为什么我的 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.
我有一个 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.