您好,感谢您抽出时间来解决我的问题。
我正在尝试为我的网站制作一个工作通讯表单,该表单应将一个人的姓名和电子邮件地址存储在数据库中。我不期望有太多数据要存储,所以我有点盲目地选择了SQLite。
我的文件夹包含一个 HTML 文件、一个 PHP 文件和一个 SQLite 数据库:
这是我的index.html文件:
<h1>Newsletter Signup</h1>
<form method="POST" action="./submit.php">
<label for="name">Name:</label>
<input type="text" name="name" id="name" required>
<label for="email">Email:</label>
<input type="email" name="email" id="email" required>
<input type="submit" value="Subscribe">
</form>
Run Code Online (Sandbox Code Playgroud)
这是我的submit.php文件:
<?php
$db = new SQLite3('mydb.db');
if (!$db) {
die("Error connecting to database.");
}
$name = $_POST['name'] ?? '';
$email = $_POST['email'] ?? '';
if (!$name || !$email) {
die("Name and email are required.");
}
$stmt = $db->prepare('INSERT INTO subscribers (name, email) VALUES (:name, :email)');
if (!$stmt) {
die("Error preparing statement.");
}
$stmt->bindValue(':name', $name);
$stmt->bindValue(':email', $email);
$result = $stmt->execute();
if (!$result) {
die("Error executing statement.");
}
$db->close();
exit();
?>
Run Code Online (Sandbox Code Playgroud)
mydb.db SQLite 数据库是使用以下代码行创建的:
CREATE TABLE subscribers (
id INTEGER PRIMARY KEY,
name TEXT,
email TEXT
);
Run Code Online (Sandbox Code Playgroud)
每当单击“订阅”按钮时,控制台中的 DevTools 就会显示以下消息:
(In red) Failed to load resource: the server responded with a status of 405 () chrome-error://chromewebdata/:1
(In yellow) VM491:161 crbug/1173575, non-JS module files deprecated.
(anonymous) @ VM491:161
Run Code Online (Sandbox Code Playgroud)
和网络 > 标头选项卡:
Status: (failed)net::ERR_HTTP_RESPONSE_CODE_FAILURE
Request Method: POST
Status Code: 405 Method Not Allowed
Referrer Policy: strict-origin-when-cross-origin
Allow: GET, HEAD, OPTIONS
Run Code Online (Sandbox Code Playgroud)
我一直无法找到解决这个问题的方法。当然,我是一个新手,真诚地感谢您的帮助,所以请详细说明!再一次感谢你。