我收到一条错误消息,指出使用 xampp 和 php 作为我的代码创建的登录页面。 “此页面现在无法工作。如果问题仍然存在,请联系网站所有者。HTTP 错误 405” 当我尝试登录该页面时,
我希望它打开另一个页面,显示“登录成功或登录失败”,它一开始可以工作,但是当我将登录页面从 git hub 转移到我的 vsCode 进行一些修改后,它就不再工作了。我不知道问题是来自我的代码还是来自我的服务器。如果它来自我的代码,我该如何修复它,如果它来自我的服务器,我又该如何修复它。
这是我的html代码:
<!-- Login form Code -->
<form action="POST" class="clearfix form-hidden" id="Register-form">
<h1>Register</h1>
<div class="col-md-12">
<div class="input-group blmd-form">
<div class="blmd-line">
<input type="text" name="username" autocomplete="off" id="username" class="form-control">
<label class="blmd-label">Email or Username</label>
</div>
</div>
<div class="input-group blmd-form">
<div class="blmd-line">
<input type="password" name="password" autocomplete="off" id="password" class="form-control">
<label class="blmd-label">Password</label>
</div>
</div>
<div class="input-group blmd-form">
<div class="blmd-line">
<input type="password" name="rePassword" autocomplet
e="off" id="password" class="form-control">
<label class="blmd-label">Repeat Password</label>
</div>
</div>
</div>
<div class="col-sm-12 text-center">
<button type="button" class="btn btn-blmd ripple-effect btn-warning btn-lg btn-block">Register</button>
</div>
<br/>
</form>`
这是登录方面的php代码
<?php
if($_SERVER["REQUEST_METHOD"] == "POST"){
//retrieve from data
$username = $_POST['username'];
$password = $_POST['password'];
//database connection
$host = "localhost";
$dbusername = "root";
$dbpassword = "";
$dbname = "auth0";
$conn = new mysqli($host, $dbusername, $dbpassword, $dbname);
if($conn->connect_error){
die("connection failed: ". $conn->connect_error);
}
//validate login authentication
$query = "SELECT * FROM login WHERE username='$username' AND password='$password'";
$result = $conn->query($query);
if($result->num_rows == 1){
//login success
header("location:success.html");
exit();
}
else{
//login failed
header("location:error.html");
exit();
}
// if (!$result) {
// die("Query failed: " . $conn->error);
// }
//$conn->close();
}
?>
下面是我登录成功或失败时想要重定向到的页面的 html 代码:
成功页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Success</title>
</head>
<body>
<h1>Success</h1>
</body>
</html>
错误页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Error</title>
</head>
<body>
<h1>Failed to login</h1>
</body>
</html>
我尝试卸载我的 xampp 并使用相同的设置再次重新安装。所以我希望它能解决这个问题,因为我认为我的网站将在本地主机管理中有一个新的数据库。
HTTP ERROR 405 表示方法(post 或 get)被拒绝。您的代码中有一些问题应该首先修复。
未指定方法 - html 表单默认方法是 GET。由于您没有正确指定方法,因此您的 html 表单正在使用 get 方法。要正确指定方法,请使用属性
method="POST"
而不是 action="POST"
。 action
属性用于指定将 HTTP 请求发送到的位置。
按钮类型 - 要提交表单,您可以使用按钮或输入。但是,您必须指定哪个按钮/输入将提交表单。您可以通过将
type
属性设置为 submit
来指定哪个元素将提交表单。示例:<button type="submit">Submit Form</button>
如果问题仍然存在,则您的服务器配置可能存在问题。检查以确保 Apache 服务器允许对脚本 URL 发出 POST 请求。这是包含更多信息的链接:apache http requests
如果仍有问题,请检查您的 PHP 文件权限。通常权限为 0644。以下是有关文件权限的一些信息:php 文件权限