我的本地主机或我的代码没有插入数据库

My localhost or my code doesnt insert into database

我正在使用 html 和 php 创建注册表单,当我点击 sing up 时出现错误:

http://localhost/quiz/SinginUp/singup.html?first=Calin&last=Onaca&email=onaca.calin%40gmail.com&age=20&uid=calinonaca1&pwd=qwerty1234&cpwd=qwerty1234&submit=

...&submit=

之后没有任何内容

我检查了我的代码,我无法意识到我做错了什么。

<form action="includes/signup.php" method="POST">

这是我的行动号召

这是我的 signup.php

<?php
  if(isset($_POST['submit']))
  {
      mysqli_connect('127.0.0.1', 'admin', 'admin', 'quiz');
      $conn=mysqli_connect('127.0.0.1', 'admin', 'admin', 'quiz');
      $first = mysqli_real_escape_string( $conn,$_POST['first']);
      $last = mysqli_real_escape_string( $conn ,$_POST['last']);
      $email = mysqli_real_escape_string( $conn,$_POST['email']);
      $age = mysqli_real_escape_string( $conn,$_POST['age']);
      $uid = mysqli_real_escape_string( $conn,$_POST['uid']);
      $pwd = mysqli_real_escape_string( $conn,$_POST['pwd']);



      if(empty($first)||empty($last)|| empty($email) ||empty($age)||empty($uid)||empty($pwd)||empty($cpwd))
      {
        header("Location: ../signup.html?signup=empty");
      exit();  
      }
      else {
           if(!preg_match("/^[a-ZA-Z]*$/", $first) || !preg_match("/^[a-ZA-Z]*$/", $last) ){
               header("Location: ../signup.html?singup=invalid");
      exit();
           }else
           {
               if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
                   header("Location: ../signup.html?singup=email");
      exit();

               }
               else  
               {
                   if(!preg_match("/^[0-9]*$/", $age)){
               header("Location: ../signup.html?singup=invalid");
      exit();
           }else{
                     $sql = "SELECT * FROM users WHERE user_uid='$uid'";
                       $result= mysqli_query($conn, $sql);
                       $resultCheck= mysqli_num_rows($result);
                       if($resultCheck > 0)
                       {
                           header("Location: ../signup.html?singup=userTaken");
      exit();
                       }

                           else
                           {
                               $hashedPwd = password_hash($pwd, PASSWORD_DEFAULT);
                               $sql="INSERT INTO users (user_first, user_last, user_email, user_age, user_uid, user_pwd) VALUES ('$first', '$last','$email','$age','$uid','$hashedPwd');";
                            mysqli_query($conn,$sql);
                               header("Location: ../index.html?singup=succes");
      exit();

                           }
                       }
                   }
               }
           }
      }

  } else
  {
      header("Location: ../signup.html?signup=failed");
      exit();
  }

?>

如果出现问题,我没有收到失败消息,浏览器编译器说一切正常..

看起来你的脚本只是在寻找 $_POST 数据,所以如果你尝试 link 到带有 URL 中的变量的页面(就像你的例子) , 那么脚本将找不到数据。

相反,脚本需要查看 $_GET(仅 URL 变量)或可以使用 $_REQUEST(包括 GET、POST 和 COOKIE 变量。

还会将一些调试代码添加到 else 语句中,如果请求中没有数据,该语句就会输出,这样您就可以验证它是否像您期望的那样解析信息。希望对您有所帮助。