PHP 使用 Xampp : POST 是不允许的错误

PHP using Xampp : POST is not allowed error

当它尝试将表单内容提交到数据库时,出现以下错误: {"code":"MethodNotAllowedError","message":"POST is not allowed"}

我在 windows 10 上使用 Dreamweaver cc 2017 和 xampp v3.2.2 到 运行 Apache 和 Mysql。

html 形式 :

  <form action="register.php" id="form1" name="form1" method="post"> 

和register.php内容是:

<?php
$hostname_conn = "localhost";
$database_conn = "hotels";
$username_conn = "root";
$password_conn = "";
$conn = mysqli_connect($hostname_conn, $username_conn, $password_conn) or trigger_error(mysqli_error(),E_USER_ERROR); 

$db=mysqli_select_db($conn,$database_conn);
$q1= "insert into users(username,email,password,number)values('$_POST[textfield]','$_POST[email]','$_POST[password]','$_POST[number]')";
$q2=mysqli_query($conn,$q1);

if(mysqli_query($conn,$q1))
 {
    $msg = 'User information saved successfully.';
 }
 else
 {
    $msg = 'Error: We encountered an error while inserting the new record.';
 }
echo $msg;
mysqli_close($conn);
?>

</body>
</html>

问题出在语法上。无论如何,您应该使用良好的做法。检查这个 post How can I prevent SQL injection in PHP?

$username = $_POST["textfield"]; //unsafe
$username = mysql_real_escape_string($username); //safe

$email = mysql_real_escape_string($_POST["email"]);
$password = mysql_real_escape_string($_POST["password"]);
$number = mysql_real_escape_string($_POST["number"]);

$db=mysqli_select_db($conn,$database_conn);
$q1= "insert into users(username,email,password,number)values('".$username ."','".$email."','".$password."','".$number."')";
$q2=mysqli_query($conn,$q1);

使用 PDO:

        $servername = "localhost";
        $username = "root";
        $password = "";
        $dbname = "hotels";
        $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
        $stmt = $conn->prepare("INSERT INTO users (username, email, password, number) 
        VALUES (:username, :email, :password, :number)");
        $stmt->bindParam(':username', $username);
        $stmt->bindParam(':email', $email);
        $stmt->bindParam(':password', $password);
        $stmt->bindParam(':number', $number);
        $username = $_POST['textfield'];
        $email = $_POST['email'];
        $password = $_POST['password'];
        $number = $_POST['number'];
        $stmt->execute();