您好,感谢您抽出时间来阅读我的问题.

我正在努力使我的网站的工作通讯形式,应该存储一个人的名字和邮箱地址在数据库中.我不希望存储太多数据,所以我 Select 了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>

这是我的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();

?>

mydb.db SQLite数据库是用以下几行代码创建的:

CREATE TABLE subscribers (
    id INTEGER PRIMARY KEY,
    name TEXT,
    email TEXT
);

只要点击订阅按钮,控制台中的DevTool就会显示以下消息:

(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

和网络&gt;标题选项卡:

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

我还没能找到解决这个问题的方法.当然,我是一个新手,非常感谢您的帮助,所以请一定要详细说明!再次感谢您.

推荐答案

判断变量enable_post_data_reading是否在php.ini中设置为on,以验证是否需要接受POST

如果不起作用,请在这个答案中 comments ,我将乐于更新我的答案.

Php相关问答推荐

无法添加ProxyClass__setInitialized()上的忽略

MariaDB 11.3.2+PHP:服务器向客户端发送未知的字符集(0).请向开发人员报告

Laravel集合块()方法

中继器内置中继器的ACF WordPress组

PHP MySQL求和子树并与父树累加

如何实现对数据库表中多列的唯一约束?

根据选定的字段值显示或隐藏WooCommerce注册字段

只收取WooCommerce中最高的运费

如果日期是过go 日期,则隐藏事件发布类型

Laravel Http::get not working on controller

WordPress:今天的计数';修改和发布的帖子

execute_query 和prepare+execute 有什么区别?

显示 woocommerce 中所选变体的属性术语描述

对产品/库存结果集进行分组和计数,形成多维分层数组

过滤会员计划标题和标签

根据支付网关选项更改 WooCommerce Checkout 上的立即付款按钮文本

基于WooCommerce中的产品变体自定义感谢页面跳转

PHP:如何将多列sql查询结果转换成数组

计算组合指数

PHP 中的正则表达式,具有字符范围,但不包括特定字符