Ошибки MYSQLI не могут обрабатывать запросы - PullRequest
0 голосов
/ 17 апреля 2020

Итак, сейчас у меня странная проблема. Я делаю систему регистрации / входа в систему с моей университетской базой данных. Однако, по некоторым причинам, аспект хеширования, кажется, полностью разрушает его. Без этого данные просто ВСТАВЛЯЮТСЯ в базу данных, однако, как только я пытаюсь выполнить хеширование для обеспечения безопасности, я получаю «500 серверов не могут обработать этот запрос». Это также применяется всякий раз, когда я хочу к escape_string для дополнительной безопасности. Любой совет?

    <?php
if (isset($_POST['register'])) {
    require "loginDB.php";


    $username = ($_POST['userID']);
    $email = ($_POST['userEMAIL']);
    $password = ($_POST['userPWD']);
    $password2 = ($_POST['userPWD2']);
    //  $encrypted = $mysqli->escape_string(password_hash($_POST['userPWD'], PASSWORD_DEFAULT));

    if (empty($username) || empty($email) || empty($password) || empty($password2)) {
        header("Location: ../index.php?error=emptyfields&userID=" . $username . "&email=" . $email);
        exit(); //If user makes a mistake they get sent back and have some of the fields filled in
    } else if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        header("Location: ../index.php?error=invalidemail&userID=" . $username);
        exit();
    } else if ($password != $password2) {
        header("Location: ../index.php?error=passwordcheck&userID=" . $username . "&email=" . $email);
        exit();
    } else {
        $sql = "SELECT username FROM users WHERE username=? ";
        $stmt = mysqli_stmt_init($conn);
        if (!mysqli_stmt_prepare($stmt, $sql)) {
            header("Location: ../index.php?error=sqlerror");
            exit();
        } else {
            mysqli_stmt_bind_param($stmt, "s", $username); //binds the data
            mysqli_stmt_execute($stmt); //runs the data inside the database
            mysqli_stmt_store_result($stmt); //takes result from database
            $check = mysqli_stmt_num_rows($stmt);
            if ($check > 0) {
                header("Location: ../index.php?error=usernametaken&email=" . $email);
                exit();
            } else {
                // $encryptPWD = password_hash($password, PASSWORD_DEFAULT);
                $sql = "INSERT INTO users (username, email, pwd) VALUES ('$username', '$email', '$password')";
                header("Location: ../index.php?registration=successful");
                $stmt = mysqli_stmt_init($conn);
                mysqli_stmt_prepare($stmt, $sql);
                mysqli_stmt_execute($stmt);
                exit();
                //  }
            }
        }
    }
    mysqli_stmt_close($stmt);
    mysqli_close($conn);
} else {
    header("Location: ../index.php");
    exit();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...