Итак, сейчас у меня странная проблема. Я делаю систему регистрации / входа в систему с моей университетской базой данных. Однако, по некоторым причинам, аспект хеширования, кажется, полностью разрушает его. Без этого данные просто ВСТАВЛЯЮТСЯ в базу данных, однако, как только я пытаюсь выполнить хеширование для обеспечения безопасности, я получаю «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();
}