HTML表单不会将数据发送到数据库

时间:2017-12-22 00:27:04

标签: php html mysql database

我知道有类似的问题,但他们的答案并没有解决我的问题。

我的php运行没有错误(至少没有从导航器中运行),它甚至会返回我在脚本?register=success末尾设置的自定义网址,但它不会将数据发送给我数据库(本地)。

我真的不知道我应该让我的代码部分在哪里,因为正如我在开头说的那样,导航器中没有来自php的错误,所以我只是把所有主要的php(注册。 PHP)。

<?php

  if (isset($_POST["submit"])){        
    include_once "dbh_inc.php";        
    $first = mysqli_real_escape_string($conn, $_POST["first"]);
    $last = mysqli_real_escape_string($conn, $_POST["last"]);
    $nickname = mysqli_real_escape_string($conn, $_POST["nickname"]);
    $password = mysqli_real_escape_string($conn, $_POST["password"]);
    $email = mysqli_real_escape_string($conn, $_POST["email"]);

    //Birthdate
    $birthDay = mysqli_real_escape_string($conn, $_POST["birth-day"]);
    $birthMonth = mysqli_real_escape_string($conn, $_POST["birth-month"]);
    $birthAge = mysqli_real_escape_string($conn, $_POST["birth-age"]);
    $birthDate = $birthDay."-".$birthMonth."-".$birthAge;


    $speciality = mysqli_real_escape_string($conn, $_POST["speciality"]);
    $gender = mysqli_real_escape_string($conn, $_POST["gender"]);

    //Error handlers
    //Check for empty fields

    if (empty($first) || empty($last) || empty($email) || empty($last) || empty($last) || empty($last)) {
      header("Location: ../register.php?register=empty");
      exit();
    }else{
      //Check if input characters are valid
      if(!preg_match("/^[a-zA-Z]*$/", $first) || !preg_match("/^[a-zA-Z]*$/", $last)){
        header("Location: ../register.php?register=invalid");
        exit();
      }else{
        //Check if email is valid
        if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
          header("Location: ../register.php?register=email");
          exit();
        }else{
          //Check if birthdate is valid
          if (!checkdate ($birthMonth , $birthDay, $birthAge)) {
            header("Location: ../register.php?register=date");
            exit();
          }else{
            //Check if user exists
            $sql = "SELECT * FROM users WHERE user_nickname='$nickname'";
            $result = mysqli_query($conn, $sql);
            $resultCheck = mysqli_num_rows($result);
            //Entering to the database to check if username exists
            if ($resultCheck > 0) {
              header("Location: ../register.php?register=usertaked");
              exit();
            }else{
              //Hashing the password
              $hashedPwd = password_hash($password, PASSWORD_DEFAULT);
              //Insert user registration data into the database                  
              $sql = "INSERT INTO users (user_first, user_last, user_nickname, user_password, user_email, user_birth_date, user_speciality, user_gender) VALUES ('$first', '$last', '$nickname', '$password', '$email', '$birthDate', '$speciality', '$gender')";
              mysqli_query($conn, $sql);
              header("Location: ../register.php?register=success");
              exit();
            }
          }
        }
      }
    }
  }else{
    header("Location: ../register.php");
    exit();
  }

这是我与数据库建立连接的php(dbh_inc.php):

<?php

$dbServername = "localhost";//because there's running a local server
$dbUsername = "root";
$dbPassword = "";
$dbName = "login_system";

$conn = mysqli_connect($dbServername, $dbUsername, $dbPassword, $dbName) or die ("Conexion fallida");

0 个答案:

没有答案