PHP与MySQL登录表单开发遇404错误,求解决方案
解决PHP注册表单提交后404错误及相关问题
一、404错误的直接原因
你的HTML表单中action属性设置为register.php,但实际处理表单提交的PHP文件是index.php,服务器找不到指定文件因此返回404。
解决方法二选一:
- 将
index.php重命名为register.php,保持表单action不变; - 修改HTML表单的
action属性为index.php,同时添加method="POST"属性(默认提交方式为GET,会导致PHP中POST请求判断失效):
<form action="index.php" id="registrationForm" method="POST">
二、数据库连接错误修复
你的数据库连接代码存在多处问题,修复后代码如下:
<?php // Database connection $servername = "localhost:3306"; $username = "root"; // 移除多余的@符号 $password = ""; $dbname = "你的数据库名称"; // 替换为你创建的实际数据库名 // Establish a database connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); }
三、SQL注入风险修复
直接拼接用户输入到SQL语句存在严重注入风险,改用预处理语句:
// Process form submission if ($_SERVER["REQUEST_METHOD"] == "POST") { $email = $_POST["email"]; $password = password_hash($_POST["password"], PASSWORD_DEFAULT); // 使用预处理语句插入数据 $sql = "INSERT INTO register (email, password) VALUES (?, ?)"; $stmt = $conn->prepare($sql); $stmt->bind_param("ss", $email, $password); if ($stmt->execute()) { echo "Registration successful!"; } else { echo "Error: " . $stmt->error; } $stmt->close(); } // Close the database connection $conn->close(); ?>
四、文件路径检查
如果HTML文件在/portal/文件夹下,确保处理提交的PHP文件与HTML文件处于同一目录,或调整action路径(比如PHP文件在上级目录时,写action="../register.php")。
内容的提问来源于stack exchange,提问作者user12696830
相关产品推荐
相关产品推荐

